LINUX.ORG.RU
ФорумAdmin

Prometheus, Alerts and more metrics

 


0

2

Что ни как не соображу как в alert в summary можно показать контекст метрики (или хз как правильно это назвать).

К примеру есть:

 SerialName{SerialName="SN235"} 1
 Level{SuppliesType=""} 1891
 MaxLevel{SuppliesType=""} 3100

В

expr: MaxLevel - Level > 0

Но как в summary (или в description) мне выдать имя SN235 ?

★★★★★

Ты хочешь метку (label) из метрики передать в текст алерта, так? В таком случае у тебя два пути:

  1. сам запрос алерта должен эту метку возвращать.
  2. можешь повесить дополнительные лейблы через поле labels: в yaml-е алерта.

И потом ты просто используешь его через {{ $labels.labelname }}.

AnDoR ★★★★★
()
Ответ на: комментарий от AnDoR

Извините не совсем понимаю как это сделать, кучу доки перерыл и не увидел ничего подобного.

  1. Как мешать запросы не понятно, делаю OR валится все, если делаю AND то плюет на запрос.

  2. Labels кажый раз разные в зависимости от строки.

Дело в том что каждая эта строчка состоит из нескольких параметров. К примеру :

Level{SuppliesType="",SuppliesIndex="1"} 1891
Level{SuppliesType="",SuppliesIndex="2"} 1590
Level{SuppliesType="",SuppliesIndex="3"} 300

Это количество меняется, в зависимости от устройства, но в пределах устройства одинаковое.

Т.е. expr: пробегает по всем и там где неправильно дает АЛЕРТ. Но в description это цифры (1..3) а это не очень понятно. Вот я и хочу чтобы там возвращалось имя.

Что только не добавлял в expr: ни как не катит и не понятно почему запросы нельзя мешать.

Пытался через в добавление в description еще запроса через : {{ printf … .Labels.SuppliesIndex коряво все и толком не пашет. У SerialName возвращается значение, как вернуть Labels.SerialName не понятно.

mx__ ★★★★★
() автор топика
Ответ на: комментарий от mx__

Т.е тебе по условию по значению одной метрики надо выводить метку из другой метрики, так?

Для этого надо их например сджойнить через group_left()/group_right() с той метрикой лейбл из которой тебе интересен.

Они как-нибудь друг с другом вообще? Приведи пару примеров.

AnDoR ★★★★★
()
Ответ на: комментарий от AnDoR

Извините не совсем ВАС понимаю. Если по http сделать запрос, то видим такую картину:

...
SerialName{SerialName="SN235",SuppliesType="",SuppliesIndex="1"} 1
SerialName{SerialName="SN433",SuppliesType="",SuppliesIndex="2"} 1
SerialName{SerialName="SN835",SuppliesType="",SuppliesIndex="3"} 1
...
Level{SuppliesType="",SuppliesIndex="1"} 1891
Level{SuppliesType="",SuppliesIndex="2"} 2031
Level{SuppliesType="",SuppliesIndex="3"} 1025
...
MaxLevel{SuppliesType="",SuppliesIndex="1"} 3100
MaxLevel{SuppliesType="",SuppliesIndex="2"} 5100
MaxLevel{SuppliesType="",SuppliesIndex="3"} 4200

Правило alert выглядит так: expr: MaxLevel - Level > 0

mx__ ★★★★★
() автор топика