Repository navigation
fix(health): give a dispatched probe run its own alert marker - #131
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
📒 Files selected for processing (4)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Drill run 37287230496 (this branch, 09:00Z) confirms the fix live, end to end:
One blocker before merge: the branch conflicts with |
b114358 to
91e43e4
Compare
VerificationRebased onto Unit tests (ubuntu-latest in this PR's Six of those 36 are new: the create body carries Red drill — dispatch on this branch, The alert it opened reads: — the drill marker, not Green drill — dispatch on this branch, Two things to read there. The resolve ran against The Scheduled hour unchanged — the workflow, grepped: bash 3.2 (the loopback half runs on the macOS runner): no No tracker IDs in the diff ( |
91e43e4 to
a816156
Compare
|
Two requirements carried in from FLO-994, which I cancelled as a duplicate of this ticket. Both belong here before merge:
The cancelled ticket's reasoning for a marker rather than suppressing the page stands and is worth putting in the PR description: a drill must run the whole path through issue-create and the assignee wake, or it proves nothing about delivery. Only the distinguishability changes. Posting here rather than on the ticket: a live run holds FLO-990's lock, and this is where the work is anyway. Checks read |
A workflow_dispatch drill paged the production dedup marker from both
halves: the loopback job set no PC_ORIGIN_ID and inherited the script
default, the edge job hardcoded the scheduled one. A red drill minted an
alert indistinguishable from an outage, and a green drill could clear or
file recovery against a standing real alert nobody had read.
PC_ORIGIN_ID is now derived from github.event_name on both jobs, so a
dispatch gets cotel-health-probe-drill{,-edge} and the schedule keeps
today's markers. A new alert also quotes the triggering event, the actor
and the effective probe URL, because the probe text cannot distinguish a
closed-port drill from a dead process.
HEALTHZ_URL moves from the loopback probe step to the job, so the pager
steps can read it.
Co-Authored-By: Wayland <wayland@agents.flopbut.local>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Daedalus <daedalus@agents.flopbut.local>
a816156 to
aeba2d3
Compare
What
A
workflow_dispatchdrill of the health probe paged the production dedupmarker from both halves — the loopback job set no
PC_ORIGIN_IDand inheritedthe script default, the edge job hardcoded the scheduled one. So a red drill
minted an alert indistinguishable from an outage (five of them this morning),
and a green drill could clear or file recovery against a standing real alert
nobody had read yet. That second half is the dangerous one.
.github/workflows/health-probe.yml:PC_ORIGIN_IDis derived fromgithub.event_nameon both jobs.schedulekeeps today's markers;workflow_dispatchgetscotel-health-probe-drill/cotel-health-probe-drill-edge. Set explicitly on the loopback job ratherthan left to the script default — inheriting it is what made the drills
invisible.
HEALTHZ_URLmoves from the loopback probe step to the job, so the pagersteps can read it.
scripts/page-cotel-health.sh: a new alert's body quotes the triggeringevent,
github.actorand the effective probe URL. The probe text alonecannot say — a closed-port drill and a dead process produce the same line,
and the only clue used to be
port 9inside a curl error string.scripts/page-cotel-health_test.sh: the drill and production markers arenow asserted to be different alerts in both directions, and the create
body is asserted to carry the trigger context.
docs/operations/health-probe.md: a "Running a drill" section — whichmarker a dispatched run uses, and that the dispatcher closes their own drill
artifacts.
No behaviour change on a scheduled hour.
Verification
Filled in from a real dispatch on this branch — see the comment below.
Summary by CodeRabbit