Skip to content

feat(observability): deploy PrometheusMetricsAbsentPerCluster dead-man's-switch (AROSLSRE-1551) - #6186

Merged
openshift-merge-bot[bot] merged 1 commit into
Azure:mainfrom
raelga:raelg/aroslsre-1549-prom-resilience
Jul 22, 2026
Merged

feat(observability): deploy PrometheusMetricsAbsentPerCluster dead-man's-switch (AROSLSRE-1551)#6186
openshift-merge-bot[bot] merged 1 commit into
Azure:mainfrom
raelga:raelg/aroslsre-1549-prom-resilience

Conversation

@raelga

@raelga raelga commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Why

When the prom-agent PrometheusAgent on int-uksouth-mgmt-1 OOM-crashlooped, the cluster stopped shipping all metrics for ~37h and no alert paged. Investigation showed the dead-man's-switch we would want — PrometheusMetricsAbsentPerClusteralready exists and is unit-tested in observability/alerts/prometheus-prometheusRule.yaml (group prometheus-wip-rules):

count by (cluster) (count_over_time(up{job="prometheus/prometheus",namespace="prometheus"}[7d]))
  unless count by (cluster) (count_over_time(up{...}[10m]))

It fires (severity critical, for: 10m) precisely when a cluster reported within the last 7 days but has gone silent for 10 minutes — exactly the INT scenario. But the group was never added to includedAlertsByGroup in alerts-msft-services.yaml, which is the explicit allowlist controlling what the generator emits into generatedMsftPrometheusAlertingRules.bicep. So it was excluded from the deployed Azure Monitor / IcM rules and never paged.

What

  • Add PrometheusMetricsAbsentPerCluster (group prometheus-wip-rules) to includedAlertsByGroup in observability/alerts-msft-services.yaml.
  • Regenerate dev-infrastructure/modules/metrics/rules/generatedMsftPrometheusAlertingRules.bicep (make -C observability alerts). The alert now emits as Azure group msft-prometheus-wip-rules with IcM actions, for: PT10M, Sev2, runbook docs/alerts/Prometheus.md.

Scope is intentionally limited to the single total-absence dead-man's-switch. The remaining prometheus-wip-rules alerts (uptime SLO, pending/failed rate, etc.) stay WIP and can be graduated separately.

Jira: AROSLSRE-1551 (sub-task of AROSLSRE-1549, INT Prometheus resilience).

…n's-switch (AROSLSRE-1551)

The PrometheusMetricsAbsentPerCluster alert already exists and is unit-tested
in observability/alerts/prometheus-prometheusRule.yaml (group prometheus-wip-rules),
but it was never listed in includedAlertsByGroup in alerts-msft-services.yaml, so
the generator excluded it from generatedMsftPrometheusAlertingRules.bicep and it
was never deployed to Azure Monitor / IcM.

As a result, when the prom-agent on int-uksouth-mgmt-1 OOM-crashlooped, the cluster
went dark for ~37h with no page. This adds the alert to the MSFT allowlist so the
per-cluster total-absence detector (up absent 10m while present within 7d) is
generated into the deployed bicep and pages at Sev2.
Copilot AI review requested due to automatic review settings July 21, 2026 12:02

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR makes the existing, unit-tested PrometheusMetricsAbsentPerCluster “dead-man’s-switch” alert actually deploy to the Microsoft Azure Monitor/IcM alerting stack by allowlisting it for MSFT rule generation. This closes the gap where a cluster could go completely silent on metrics without paging.

Changes:

  • Add PrometheusMetricsAbsentPerCluster from the prometheus-wip-rules group to includedAlertsByGroup in observability/alerts-msft-services.yaml.
  • Regenerate the MSFT Prometheus alerting Bicep so the alert is emitted as a new Azure Monitor Prometheus rule group (msft-prometheus-wip-rules) with for: PT10M and Sev2 mapping.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
observability/alerts-msft-services.yaml Allowlists PrometheusMetricsAbsentPerCluster so it gets emitted into the MSFT-generated Azure Monitor/IcM rules.
dev-infrastructure/modules/metrics/rules/generatedMsftPrometheusAlertingRules.bicep Adds the generated msft-prometheus-wip-rules rule group containing PrometheusMetricsAbsentPerCluster with IcM actions and runbook link.

@janboll

janboll commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

/lgtm
/approve

@openshift-ci

openshift-ci Bot commented Jul 21, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: janboll, raelga

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 59c33d5 and 2 for PR HEAD 6955d4b in total

@raelga

raelga commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator Author

/test e2e-parallel

@openshift-merge-bot
openshift-merge-bot Bot merged commit 7d0609c into Azure:main Jul 22, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants