Skip to content

Alert when a cell can't tell which location it serves - #903

Merged
scotwells merged 1 commit into
mainfrom
claude/project-thread-nageha
Nov 11, 2026
Merged

scotwells merged 1 commit into
mainfrom
claude/project-thread-nageha

Conversation

@scotwells

@scotwells scotwells commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

A cell that can't work out its location allocates no interface addresses and publishes no workload records to the edge, so HTTP proxies from other locations can't reach its workloads. Until now the record publishing side waited on this silently. It now logs an error and reports the existing waiting metric, and a new warning alert fires when a cell has been unable to name its location for 10 minutes, with a runbook explaining the two causes and the fix. This is the follow-up promised on #896.

Test plan

  • Alert rule tests pass with promtool (fires after 10 minutes, stays quiet when the cell recovers)
  • Controller tests for the record publishing path pass locally
  • CI lint, unit and e2e suites pass
  • After merge, staging cells report the metric at 0 and the alert is silent

Related to datum-cloud/enhancements#884

@scotwells
scotwells requested a review from a team as a code owner November 11, 2026 14:40
@scotwells
scotwells requested review from ecv and kevwilliams November 11, 2026 14:40
@cla-assistant

cla-assistant Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@cla-assistant

cla-assistant Bot commented Nov 11, 2026

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

A cell that cannot work out its location allocates no interface addresses
and publishes no workload records, but the write-back said nothing about it.
It now logs an error and reports the waiting metric, and a new alert fires
when the metric stays set for 10 minutes.

Key changes:
- vpc write-back reports location identity and logs while unresolved
- CellLocationUnresolved alert with promtool tests and a runbook
@scotwells
scotwells force-pushed the claude/project-thread-nageha branch from 5150238 to 0ef4da8 Compare November 11, 2026 14:53

@kevwilliams kevwilliams 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.

Verified reportLocationIdentity resets the gauge each call, so a recovered cell clears its old reason series and the alert resolves.

@ecv ecv 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.

Approve. The alert reads a gauge the code emits (nso_cell_location_identity_waiting, internal/controller/metrics.go:175, set by reportLocationIdentity), and both callers resolve the same identity, so the shared reset does not flap. The reason values match the locations module constants, and the runbook's fix matches the resolver.

Follow-ups:

  • The test rules file is a hand copy of the shipped alert, byte-identical today, with nothing keeping them equal. A check across all alerts under test/prometheus-rules would close that.

@scotwells
scotwells merged commit 2748747 into main Nov 11, 2026
10 checks passed
@scotwells
scotwells deleted the claude/project-thread-nageha branch November 11, 2026 18:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants