Запускать оповещение только тогда, когда ярлык соответствует ярлыку в другой метрике
Так что я не люблю promQL.:)
Я читал о том, что возможно или нет, но это становится довольно сложно, и я не уверен, возможно ли это вообще (то, что я хочу).
Итак, я использую ресничку. Ресничка имеет метрику, называемуюcilium_drop_count_total
. Это указывает на наличие незаконного доступа к ресурсу ИЛИ наличие проблемы с политикой. Теперь это проблематично, потому что мы используем настоящие политики ресничек для запрета доступа к определенным ресурсам, и счетчик увеличивается, даже если доступ идет изнутри кластера.
Теперь у нас есть такое предупреждение:
irate(cilium_drop_count_total{reason="Policy denied"}[5m]) > 0.05
Это все нормально, однако мне нужно отфильтровать те, которые являются внутренними доступами. У этого показателя есть поле под названиемinstance
который содержит IP-адрес отправителя.
Есть еще одна метрика - cilium_ip_addresses. Эта метрика содержит IP-адрес на основе метки модуля, который также имеет другая метрика... Теперь.:)
Я хотел бы изменить приведенное выше предупреждение, чтобы оно срабатывало только в том случае, если IP в поле экземпляра НЕ является IP-адресом модуля, который соответствует значению модуля в другой метрике.:)
В основном ->
Пример общего количества капель ресничек (за исключением некоторых других полей, которые не представляют интереса):
| pod | instance |
|-------------|---------------|
| cilium-1234 | 10.1.1.1:9090 |
Примеры ip-адресов ресничек (исключая некоторые другие поля, которые не представляют интереса):
| pod | instance |
|-------------|---------------|
| cilium-1234 | 10.1.1.1:9090 |
Надеюсь, в этом есть смысл.
Также приветствуются любые указатели на то, что читать и где, чтобы заставить это работать.
Благодарность!