Тест правила оповещения Prometheus завершается неудачно с длинными интервалами
У меня есть правило оповещения:
groups:
- name: somename
rules:
- alert: CertificateExpiry
expr: certificate_expires_in_days < 20
for: 1h
labels:
severity: critical
annotations:
summary: Certificate for {{ $labels.instance }} will expire in {{ $value }} days.
и тест:
rule_files:
- 'path/to/alert_rules.yml'
evaluation_interval: 15m
tests:
- interval: 15m
input_series:
- series: 'certificate_expires_in_days{instance="foo"}'
values: '5 5 5 5 5 5 5 5'
alert_rule_test:
- eval_time: 2h
alertname: CertificateExpiry
exp_alerts:
- exp_labels:
severity: critical
instance: foo
exp_annotations:
summary: Certificate for foo will expire in 5 days.
Тест не пройден, что указывает на то, что предупреждение вообще не было активировано:
$ promtool test rules certificates.yml
Unit Testing: certificates.yml
FAILED:
alertname:CertificateExpiry, time:2h,
exp:"[Labels:{alertname=\"CertificateExpiry\", instance=\"foo\", severity=\"critical\"} Annotations:{summary=\"Certificate for foo will expire in 5 days.\"}]",
got:"[]"
Однако если я изменю время оценки и серии, например:
- alert: CertificateExpiry
expr: certificate_expires_in_days < 20
for: 8m
labels:
severity: critical
annotations:
summary: Certificate for {{ $labels.instance }} will expire in {{ $value }} days.
и
rule_files:
- 'path/to/alert_rules.yml'
evaluation_interval: 1m
tests:
- interval: 1m
input_series:
- series: 'certificate_expires_in_days{instance="foo"}'
values: '5 5 5 5 5 5 5 5'
alert_rule_test:
- eval_time: 8m
alertname: CertificateExpiry
exp_alerts:
- exp_labels:
severity: critical
instance: foo
exp_annotations:
summary: Certificate for foo will expire in 5 days.
тест проходит успешно. Так что проблема в разах, опечатки в других местах можно исключить.
Видимо, это какая-то глупая ошибка внимания с моей стороны, но я этого не вижу. Может кто-нибудь помочь, пожалуйста?