Что такое список меток и переменных Prometheus, которые можно использовать в шаблоне предупреждения

Я пишу несколько проверок для Prometheus, и мне хотелось бы узнать, какие переменные я могу использовать в шаблонах. Я использую $labels.container, но $labels.service и $labels.instance не работают. Например, я использую экземпляр в запросах Prometheus, но не могу использовать его в шаблоне. Как я могу узнать все ярлыки или другие переменные, которые я могу использовать в шаблоне? Я реализовал собственный экспортер, написанный на python, который контролирует, какие контейнеры в docker swarm продолжают перезапускаться.

Я новичок в Prometheus и Alertmanager, и документация, на мой взгляд, не очень понятна. Спасибо.


person dorinand    schedule 28.08.2020    source источник


Ответы (1)


Доступные метки - это метки, возвращаемые запросом предупреждения. Итак, если ваш запрос выглядит так:

sum ( something_here ) > 0

у вас не будет никаких ярлыков.

Если у вас есть

sum by (label_foo)(...) > 0

тогда вам будет доступен только label_foo.

Если вы это сделаете:

metric_name

Тогда вы получите все ярлыки, доступные для метрики metric_name.

Просто выполните свой запрос на оповещение прямо в prometheus (убедившись, что запрос действительно что-то возвращает - удалите любой порог и т. Д.), И вы увидите доступные ярлыки.

person bjakubski    schedule 28.08.2020
comment
Спасибо, я обнаружил пропавшие ярлыки из-за by в моих запросах. - person dorinand; 09.09.2020
comment
Как получить фактический label_foo, который вызвал предупреждение? Например, для предупреждения в форме sum by (label_foo) (...) > 0, как я могу получить доступ к label_foo, которое было инициировано? Что-то вроде {{ label_foo }}? - person exAres; 03.11.2020
comment
@exAres использует {{ $labels.label_foo }} в вашем шаблоне - person bjakubski; 03.11.2020