Am o regulă de alertă:
grupuri:
- nume: un nume
reguli:
- alertă: CertificateExpiry
expr: certificate_expires_in_days < 20
pentru: 1h
etichete:
severitate: critică
adnotari:
rezumat: certificatul pentru {{ $labels.instance }} va expira în {{ $value }} zile.
si un test:
rule_files:
- „path/to/alert_rules.yml”
interval_evaluare: 15m
teste:
- interval: 15m
input_series:
- seria: „certificate_expires_in_days{instance="foo"}”
valori: '5 5 5 5 5 5 5 5'
alert_rule_test:
- timp_eval: 2h
alertname: CertificateExpiry
exp_alerts:
- exp_labels:
severitate: critică
exemplu: foo
exp_annotations:
rezumat: Certificatul pentru foo va expira în 5 zile.
Testul eșuează, indicând că alerta nu a fost declanșată deloc:
$ promtool reguli de testare certificates.yml
Testare unitară: certificates.yml
A EȘUAT:
alertname:CertificatExpiry, time:2h,
exp:"[Labels:{alertname=\"CertificateExpiry\", instance=\"foo\", severity=\"critical\"} Adnotări:{summary=\"Certificatul pentru foo va expira în 5 zile.\"} ]",
a primit:"[]"
Dacă, totuși, schimb timpii de evaluare și de serie, cum ar fi:
- alertă: CertificateExpiry
expr: certificate_expires_in_days < 20
pentru: 8m
etichete:
severitate: critică
adnotari:
rezumat: certificatul pentru {{ $labels.instance }} va expira în {{ $value }} zile.
și
rule_files:
- „path/to/alert_rules.yml”
interval_evaluare: 1m
teste:
- interval: 1m
input_series:
- seria: „certificate_expires_in_days{instance="foo"}”
valori: '5 5 5 5 5 5 5 5'
alert_rule_test:
- timp_eval: 8m
alertname: CertificateExpiry
exp_alerts:
- exp_labels:
severitate: critică
exemplu: foo
exp_annotations:
rezumat: Certificatul pentru foo va expira în 5 zile.
testul reuseste. Deci, problema este cu vremurile, greșelile de scriere în altă parte pot fi excluse.
Aparent, este un fel de greșeală stupidă de atenție din partea mea, dar nu o văd. Poate cineva să ajute, vă rog?