Отправка настраиваемых полей в оповещениях Прометея в pagerduty - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть сценарий, в котором мне нужно отправить отметку текущего времени от Прометей до Pagerduty .Мне нужно получить доступ к текущей отметке времени из пользовательских данных в Pagerduty , чтобы написать Правила событий на основе текущего времени.

В настоящее время я вижу три поля внутри Пользовательские данные в Pagerduty ["срабатывание", "num_firing", "num_resolved"] .Все детали, связанные с оповещением, находятся внутри «стрельбы» поля, но в виде одной строки.

Я думал добавить метку времени к меткам в пределах Правила событий Prometheus , но проблема в том, что я не смогу получить это значение из поля «выстрел» , поскольку оно не имеет структурированного формата.

Сведения о событиив Pagerduty получено от Prometheus :

{
 "client": "AlertManager",
 "client_url": "http://********/",
 "description": "[FIRING:1] **************",
 "event_type": "trigger",
 "incident_key": "********",
 "service_key": "********",
 "details": {
  "firing": "Labels:\n - alertname = ******\n - datacenter = *****\n - instance = ******\n - instance_id = ******\n - instance_type = ******\n - job = ******\n - metrics = ******\n - node = ******\n - pod = ******\n - private_ip = ******\n - public_ip = ******\n - service = ******\n - severity = critical\nAnnotations:\n - description = ******\n - summary = ******\nSource: ******\n",
  "num_firing": "1",
  "num_resolved": "0",
  "resolved": ""
 }
}

Мне нужно добавить текущую метку времени на том же уровне, что и «Увольнение» поле.Есть ли способ сделать это через Диспетчер предупреждений Prometheus или через Правила оповещения ?

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019
- alert: Alert
  for: 5m
  expr: ...
  annotations:
    timestamp: >
      time: {{ with query "time()" }}{{ . | first | value | humanizeTimestamp }} {{ end }}

Я решил ту же проблему, что и выше.Приветствия.!

0 голосов
/ 03 апреля 2019

Вы можете напрямую добавить это как пользовательскую деталь в alertmanager.yaml.

details:
  time: {{ query "time()" }}

Обратите внимание, что это добавляет время с точки зрения alertmanager, поэтому может содержать небольшую задержку.

0 голосов
/ 27 ноября 2018

Стандартный способ Прометея для добавления дополнительных метаданных к оповещениям - через аннотации.

- alert: Alert
  for: 5m
  expr: ...
  annotations:
    timestamp: >
      time: {{ query "time()" }}

Это должно добавить аннотацию метки времени к инициируемому оповещению.

...