fix(monitoring): align alert queries to dashboard panels#9562
Conversation
…shboard Panel IDs 42/43/45/69 no longer exist in Omi Services Overview dashboard. Remap to current panels (75/77/79/86) and align label filters from pod=~ to job="pusher-metrics" to match dashboard query patterns. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…filter Remap backend-listen panel 19→17 (RPS, not error rate) and pusher panel 43→86. Align pusher WS query from namespace+pod filter to job="pusher-metrics" matching dashboard pattern. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Alerts use LB-level stackdriver metrics but pointed to app-level panels. Remap 5XX→122 (LB Request Rate), latency→123 (LB Latency), RPS→122 (LB Request Rate), OOMKill 113→21 (Container Restarts). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Link enqueue_failed alert to resilience-fallbacks dashboard panel 3 so Grafana shows the relevant panel when the alert fires. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Link LLM gateway fallback alert to resilience-fallbacks dashboard panel 5 so Grafana shows the relevant panel when the alert fires. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change perSeriesAligner from ALIGN_SUM to ALIGN_NONE matching Omi Services Overview Panel 27 (uses preprocessor=rate with ALIGN_NONE). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change perSeriesAligner from ALIGN_SUM to ALIGN_NONE matching Omi Services Overview Panel 34 (uses preprocessor=rate with ALIGN_NONE). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change all 5 forwarding_rule_name selectors from exact match to regex pattern (forwarding_rule_name=~".*prod-omi-parakeet.*") matching Parakeet ASR dashboard Panels 122/123. Resilient to rule ID changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change __dashboardUid__ from 855b2e16 (Backend-listen) to 6d3d0897 (Omi Services Overview) and __panelId__ from 9 (Memory) to 21 (Replica count) for semantic correctness. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Review response — annotation alignment rationaleAddressing 3 reviewer concerns about alert-to-panel mismatches: 1. Pusher LB alerts (panels 75/77): Prometheus vs Stackdriver datasource 2. Pusher max concurrent (panel 86): 3. Backend-listen ready pods (panel 21): All 53 by AI for @beastoin |
Panel 88 (Pusher WS per pod) shows raw per-pod series matching the alert's max() aggregation, better than panel 86 (aggregate sum). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Round 2 fixesFixed: Pusher max-concurrent alert annotation changed from panel 86 ( Acknowledged: Pusher LB alerts use Prometheus-exported Commit: 6d9fc5e by AI for @beastoin |
CP8.1 Test Detail Table
Cross-cutting validation:
by AI for @beastoin |
CP9 Changed-path coverage checklist
L1 synthesis: All 13 changed paths (P1-P13) verified via JSON validation, structural checks, targeted assertions, and dashboard annotation resolution. Non-happy-path coverage: annotation verifier catches missing UIDs/panels (0 found). All L2 synthesis: Full validation suite re-executed after all commits, verifying integration of all changes together. All 53 alert annotations resolve across 19 dashboards. All assertions pass. 0 by AI for @beastoin |
✅ All checkpoints passed — PR ready for merge
Awaiting manager merge approval. by AI for @beastoin |
Summary
Aligns all 53 alerting rules from PR #9554 against the two source-of-truth dashboards:
6d3d0897, 67 panels)07e4c65f, 46 panels)Changes by file (6 files, 10 commits)
backend-integration.json — 5XX error rate alert
perSeriesAlignerchanged fromALIGN_SUMtoALIGN_NONE(matching Panel 27 withpreprocessor=rate)backend-sync.json — Same
perSeriesAlignerfix (matching Panel 34). Added dashboard annotation to enqueue_failed alert.parakeet.json — All 5
forwarding_rule_nameselectors changed from exact match to regex=~".*prod-omi-parakeet.*"(matching Parakeet dashboard Panels 122/123). Panel IDs realigned.pusher.json — Panel IDs realigned to match dashboard (77, 75, 79, 88). Label filters aligned to
job="pusher-metrics"(max concurrent + degraded session). Panel 88 (per-pod) used for max() alert instead of panel 86 (aggregate sum).resilience.json — Added dashboard annotation to LLM gateway fallback alert.
traffic-zero.json — Backend-listen pods annotation corrected: UID → Omi Services Overview, panel → 21 (Replica count). Pusher WS label aligned to
job="pusher-metrics". Backend-listen LB panel realigned.Alignment audit
All 53 rules reviewed. 13 changed paths across 6 files. All
__dashboardUid__+__panelId__annotations verified (53 pairs, 0 missing across 19 dashboards).Design decisions documented
backend_latencies_count; dashboard uses native Stackdriverbackend_request_count— closest contextual panel, not same metricmax()(per-pod overload); panel 88 shows per-pod series (closest match)replicas_readyalert links to panel 21 (replicas) — noreplicas_readypanel existsTest plan
json.load()grizzly applyand verify 0 firing false positives (mon)Workflow checkpoints
CP0-CP9B all passed. CP9C not required (config-only, no cluster infra).
🤖 Generated with Claude Code