Есть ли способ уменьшить этот код выражений предупреждений Prometheus? У меня есть несколько похожих выражений, только исходный экземпляр отличается

Предположим, я получаю метрики от службы в теге event_processing_bucket, где экземпляр похож на source = ONE, source = TWO, source = THREE ...... TEN

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

Есть ли способ уменьшить этот повторяющийся код. чтобы я мог написать только одно правило оповещения, и оно будет оповещать обо всех отдельно в зависимости от соответствующего значения

Вот выражения предупреждений Прометея,

- alert: ONE_SLA_GREATER_THAN_5DAYS
  expr: sum(rate(event_processing_bucket{source="ONE"}[1m])) > 5
  for: 1m
  labels:
    severity: warning
    team: mySlackChannel
  annotations:
    description: ONE_SLA is GREATER_THAN_5DAYS
    summary: ONE_SLA is GREATER_THAN_5DAYS
- alert: TWO_SLA_GREATER_THAN_5DAYS
  expr: sum(rate(event_processing_bucket{source="TWO"}[1m])) > 5
  for: 1m
  labels:
    severity: warning
    team: mySlackChannel
  annotations:
    description: TWO_SLA is GREATER_THAN_5DAYS
    summary: TWO_SLA is GREATER_THAN_5DAYS
.
.
.

- alert: TEN_SLA_GREATER_THAN_5DAYS
  expr: sum(rate(event_processing_bucket{source="TEN"}[1m])) > 5
  for: 1m
  labels:
    severity: warning
    team: mySlackChannel
  annotations:
    description: TEN_SLA is GREATER_THAN_5DAYS
    summary: TEN_SLA is GREATER_THAN_5DAYS

Пожалуйста, помогите мне написать код с одним выражением, если это возможно. если нет, укажите.

Заранее спасибо!!


person Lokesh Kumar    schedule 14.06.2021    source источник


Ответы (1)


Один из способов - сгруппировать по

histogram_quantile(0.95, sum(increase(event_bucket[5m])) by (le, source)) > 5 

более поздние значения результатов могут использоваться для запуска этих многих предупреждений

person Lokesh Kumar    schedule 14.06.2021