rule_files: - rules.yaml evaluation_interval: 1m group_eval_order: ["group4", "group2", "group3"] tests: - interval: 1m name: "basic test" input_series: - series: "test" values: "_x5 1x5" alert_rule_test: - eval_time: 1m groupname: group1 alertname: SameAlertNameWithDifferentGroup exp_alerts: - {} - eval_time: 1m groupname: group2 alertname: SameAlertNameWithDifferentGroup exp_alerts: [] - eval_time: 6m groupname: group1 alertname: SameAlertNameWithDifferentGroup exp_alerts: [] - interval: 1m name: "basic test2" input_series: - series: 'up{job="vmagent1", instance="localhost:9090"}' values: "0+0x1440" - series: "test" values: "0+1x1440" metricsql_expr_test: - expr: count(ALERTS) by (alertgroup, alertname, alertstate) eval_time: 4m exp_samples: - labels: '{alertgroup="group1", alertname="AlwaysFiring", alertstate="firing"}' value: 1 - labels: '{alertgroup="group1", alertname="InstanceDown", alertstate="pending"}' value: 1 - expr: t1 eval_time: 4m exp_samples: - value: 4 labels: '{__name__="t1", datacenter="dc-123"}' - expr: t2 eval_time: 4m exp_samples: - value: 4 labels: '{__name__="t2", datacenter="dc-123"}' - expr: t3 eval_time: 4m exp_samples: # t3 is 3 instead of 4 cause it's rules3 is evaluated before rules1 - value: 3 labels: '{__name__="t3", datacenter="dc-123"}' alert_rule_test: - eval_time: 10m groupname: group1 alertname: InstanceDown exp_alerts: - exp_labels: job: vmagent1 severity: page instance: localhost:9090 datacenter: dc-123 exp_annotations: summary: "Instance localhost:9090 down" description: "localhost:9090 of job vmagent1 has been down for more than 5 minutes." - eval_time: 0 groupname: group1 alertname: AlwaysFiring exp_alerts: - exp_labels: datacenter: dc-123 - eval_time: 0 groupname: alerts alertname: InstanceDown exp_alerts: [] external_labels: datacenter: dc-123