#prometheus #prometheus-alertmanager
#prometheus #prometheus-alertmanager
Вопрос:
Я пытаюсь запустить Prometheus на Nomad. Все выглядит нормально, но когда я добавляю правило оповещения с шаблоном в annotations
, происходит сбой.
вот простое правило предупреждения:
groups:
- name: alertmanager.rules
rules:
- alert: AlertmanagerDown
expr: up{job="alertmanager"} == 0
for: 1s
labels:
severity: critical
annotations:
description: 'Alertmanager on {{ $labels.role }} instance {{ $labels.node }} has not produced any metrics for 5 minutes'
summary: 'Alertmanager is down on {{ $labels.role }} instance {{ $labels.node }}'
Контейнер завершается ошибкой с Template: (dynamic): parse: template: :10: undefined variable "$labels"
Если я удалю annotations
раздел, он запустится без каких-либо проблем.
Ответ №1:
Пришлось установить для left_delimiter
and right_delimiter
значение, отличное от {{
and }}
https://www.nomadproject.io/docs/job-specification/template.html#left_delimiter
Комментарии:
1. Не могли бы вы отправить изменение, которое вы указали, я получил ту же ошибку?
Ответ №2:
Я столкнулся с той же проблемой при развертывании Prometheus. При развертывании Prometheus через диаграмму helm возникнет проблема, поскольку одни и те же разделители ({{
и }})
используются как шаблонами helm, так и шаблонами оповещения в Prometheus.
В моем случае решение таково:
recordType: ALARM
managedObjectInstance: "Namespace={{ "{{" }} $labels.app_kubernetes_io_instance }},Instance={{ "{{" }} $labels.instance }}"
Еще один пример можно найти здесь.