Генерировать оповещение, если процентное снижение составляет более 70% для metricX в любой момент времени в течение 5 минут

#prometheus #prometheus-alertmanager #promql #prometheus-operator

#prometheus #prometheus-alertmanager #promql #prometheus-оператор

Вопрос:

Я хотел бы сгенерировать оповещение, например, когда счетчик metricX падает более чем на 70% в любой момент времени в течение 5 минут.

Ниже будет мой файл правил YAML для генерации оповещения:

 groups:
- name: MetricX dip
  rules:
  - alert: MetricX dip by more than 70%
    expr: 
    for: 0m
    labels:
      severity: warning
    annotations:
      descriptions: MetricX has been dropped by more than 70%
 

Я хотел бы увидеть некоторое руководство о том, как я могу писать promQL выражения в файле правил для измерения процентного падения metricX в любой момент времени в течение 5 минут.

Ответ №1:

После promql тщательного понимания это то, что я реализовал в простой форме, которая удовлетворяет моим требованиям.

 (-100 * rate(MetricX[2m]) / rate(MetricX[5m] offset 1m)) > 70 
 

MetricX является счетчиком. Итак, я использовал rate при вычислении процентного снижения. Мой prometheus scrape_interval составляет 1 минуту. Таким образом, падение вычисляется в течение 2 минут
, которые следуют за 5 минутами.

Я надеюсь, что это поможет другим людям.

Ответ №2:

Попробуйте выполнить следующий запрос:

 rate(metricX[2m]) < 0.7 * (rate(metricX[2m] offset 5m))
 

Комментарии:

1. Ваш ответ неверен, поскольку вы не включили rate функцию. Без этого вы не знаете изменения значения с течением времени. В этом случае среднее значение. скорость увеличения в секунду. Если метрика является калибровочной, вы должны использовать delta или idelta .

2. Спасибо за указатель! Добавлено rate() к ответу!