# promtool rule-unit tests for the wave-2 per-app `-down` SLI rule (seerr). # Manifest under test: apps/wave-2/seerr.yaml. Discovered by the SUITE convention; the flattened # manifest is the RENDERED one Flux applies. # # Run with: platform/monitoring/tests/run.sh apps/wave-2/tests/app-slis.test.yaml # # seerr (Jellyseerr/Overseerr) exports NO Prometheus metrics of its own, so its `up` SLI could never # have been met by scraping the app — see apps/wave-0/tests/app-slis.test.yaml for the full history # of the inert `up{job="seerr"} == 0` rule this replaces. Pinned in both directions plus the # signal-vanishes case. rule_files: - generated.rules.yaml evaluation_interval: 1m tests: - interval: 1m name: wave-2 healthy - seerr has an available replica - quiet input_series: - series: 'kube_deployment_status_replicas_available{namespace="seerr", deployment="seerr"}' values: '1+0x20' alert_rule_test: - eval_time: 10m alertname: seerr-down exp_alerts: [] - interval: 1m name: wave-2 seerr has no available replica - seerr-down fires input_series: - series: 'kube_deployment_status_replicas_available{namespace="seerr", deployment="seerr"}' values: '0+0x20' alert_rule_test: - eval_time: 10m alertname: seerr-down exp_alerts: - exp_labels: severity: critical service: seerr namespace: seerr deployment: seerr exp_annotations: summary: "seerr is down" description: "seerr: its Deployment has no available/ready replica for 5m, or the signal is gone entirely (SLI: up, via kube_deployment_status_replicas_available)." # Under `for: 5m` a 2m-old condition must NOT yet be a firing alert, but the expression must # already be selecting — the distinction an inert rule cannot make. promql_expr_test: - expr: 'kube_deployment_status_replicas_available{namespace="seerr", deployment="seerr"} == 0 or absent(kube_deployment_status_replicas_available{namespace="seerr", deployment="seerr"})' eval_time: 2m exp_samples: - labels: 'kube_deployment_status_replicas_available{deployment="seerr", namespace="seerr"}' value: 0 - interval: 1m name: wave-2 seerr liveness series ABSENT - seerr-down still fires input_series: - series: 'up{job="kube-state-metrics"}' values: '1+0x20' alert_rule_test: - eval_time: 10m alertname: seerr-down exp_alerts: - exp_labels: severity: critical service: seerr namespace: seerr deployment: seerr exp_annotations: summary: "seerr is down" description: "seerr: its Deployment has no available/ready replica for 5m, or the signal is gone entirely (SLI: up, via kube_deployment_status_replicas_available)."