У меня есть правило оповещения:
группы:
- имя: некое имя
правила:
- оповещение: Срок действия сертификата
выражение: certificate_expires_in_days < 20
за: 1ч
этикетки:
серьезность: критическая
аннотации:
сводка: Срок действия сертификата для {{ $labels.instance }} истекает через {{ $value }} дней.
и тест:
файлы_правил:
- 'путь/к/alert_rules.yml'
оценка_интервал: 15 м
тесты:
- интервал: 15м
input_series:
- серия: 'certificate_expires_in_days{instance="foo"}'
значения: «5 5 5 5 5 5 5 5»
alert_rule_test:
- оценочное_время: 2 часа
имя_уведомления: CertificateExpiry
exp_alerts:
- exp_labels:
серьезность: критическая
экземпляр: фу
exp_annotations:
резюме: Срок действия сертификата для foo истекает через 5 дней.
Тест завершается неудачно, указывая на то, что оповещение вообще не было запущено:
$ правила тестирования promtool certificates.yml
Модульное тестирование: certificates.yml
НЕУСПЕШНЫЙ:
alertname:CertificateExpiry, время:2 часа,
exp:"[Ярлыки:{alertname=\"CertificateExpiry\", instance=\"foo\", серьезность=\"критическая\"} Аннотации: {summary=\"Срок действия сертификата для foo истекает через 5 дней.\"} ]",
получил:"[]"
Однако, если я изменю оценку и время серии, например:
- оповещение: Срок действия сертификата
выражение: certificate_expires_in_days < 20
для: 8м
этикетки:
серьезность: критическая
аннотации:
сводка: Срок действия сертификата для {{ $labels.instance }} истекает через {{ $value }} дней.
и
файлы_правил:
- 'путь/к/alert_rules.yml'
оценка_интервал: 1 м
тесты:
- интервал: 1м
input_series:
- серия: 'certificate_expires_in_days{instance="foo"}'
значения: «5 5 5 5 5 5 5 5»
alert_rule_test:
- оценочное_время: 8 м
имя_уведомления: CertificateExpiry
exp_alerts:
- exp_labels:
серьезность: критическая
экземпляр: фу
exp_annotations:
резюме: Срок действия сертификата для foo истекает через 5 дней.
тест проходит успешно. Так что со временем проблема, опечатки в других местах можно исключить.
Видимо, это какая-то глупая ошибка внимания с моей стороны, но я этого не вижу. Может кто-нибудь помочь, пожалуйста?