Skip to content

fix(0222): record the deploy and the FILL induction - #250

Merged
karczuRF merged 3 commits into
developfrom
fix/0222_deploy-and-fill-induction-record
Aug 26, 2026
Merged

fix(0222): record the deploy and the FILL induction#250
karczuRF merged 3 commits into
developfrom
fix/0222_deploy-and-fill-induction-record

Conversation

@karczuRF

Copy link
Copy Markdown
Collaborator

Summary

  • Records the production deploy of the FILL(invocations, 0) fix (Prices-production-Observability alone, 2026-08-25 17:32 UTC) — all six -no-invocations alarms verified on metric math, ledger-processor at 2/2, cleanup rule DISABLED before and after
  • Ticks AC 4 on an induced OK → ALARM at 17:46:28, the first evidence that an alarm built on FILL transitions rather than only that FILL returns zeros to get-metric-data
  • Restates AC 4's Period=900 to the 300 actually run: at 900 the third empty bucket completes exactly at :30, racing the next sweep run — a less reliable test, not a stricter one
  • Adds three findings read from stateReasonData: evaluation windows are query-anchored and slide (falsifying the earlier control run's bucket arithmetic), FILL detects silence ~8× faster than the raw form, and a bucket closed 28 s before being read as zero — the first support for the flap risk behind 2/2
  • Logs 0220 soak day 2 (24 clean hourly datapoints) and corrects its stale ~27,000 ms baseline, which predates 0218 splitting the ~21 s coarse sweep out of that Lambda

⚠️ AC 7 is still open — the ledger-processor flap watch is a single describe-alarm-history read on 2026-08-26. Keeping this PR open until it lands, then the task moves to completed and archives on this branch.

Prices-production-Observability deployed alone at 17:32 UTC; all six
no-invocations alarms now evaluate FILL(invocations, 0), and the
ledger-processor alarm moved to 2/2.

AC 4 induced the same hour: a temp alarm with no actions went OK to ALARM
at 17:46:28 on a trailing gap, which is the first evidence that an alarm
built on FILL transitions rather than only that FILL returns zeros to
get-metric-data.

Run at Period=300 rather than the 900 the AC specified. At 900 the third
empty bucket completes exactly at :30, racing the next sweep run, so it
is a less reliable test rather than a stricter one. AC restated, not
silently substituted.

Two findings from stateReasonData outrank the tick: evaluation windows
are query-anchored and slide rather than aligning to the clock, which
falsifies the bucket arithmetic used for the earlier control run; and on
the corrected baseline FILL detects silence roughly an order of magnitude
faster than the raw single-metric form. A third observation - the newest
evaluated bucket had closed only 28 seconds before being read as zero -
is the first supporting evidence for the flap risk that motivated 2/2.

AC 7 remains open: the ledger-processor flap watch is a single
describe-alarm-history read, deferred to 2026-08-26 because history
persists and no attended watch is needed.
24 consecutive hourly datapoints, no gaps: Duration max 6,057-10,807 ms
against a 240,000 ms threshold, Invocations 1/hour, Errors 0/hour. The
alarm's StateUpdatedTimestamp is unchanged since the hand-off, so it has
not flapped in between.

The baseline recorded at hand-off is stale and would mislead a later
check. It quotes ~27,000 ms with a stage split including a ~21 s coarse
sweep; task 0218 moved that sweep into its own Lambda on 2026-08-24, so
the remaining 6-11 s matches the 1m-pass and historical-sweep figures.
The drop is the split showing up in the metric, not a change to chase.

Notes the demonstrated-write-load criterion as still outstanding: it
needs to land in only one of the six remaining checks, but a quiet week
does not count as a soak.
The 2/2 ledger-processor flap did not materialise. Zero state transitions
in the 13.5 h since the 17:32 deploy; StateUpdatedTimestamp is still
2026-07-09 and the only retained history item is the ConfigurationUpdate
at 17:31:40, so the metric-math conversion did not even reset the state.

The OK was checked for substance rather than taken at face value: 56 of 56
expected 900 s buckets over 17:00-07:00, 155-161 invocations each, and
FILL output byte-identical to raw with no filled buckets.

Adds Finding 4 — a hand-run get-metric-data FILL query whose window ends in
the future fabricates a trailing gap. A 12:00Z end-time against a 07:02Z
clock returned 19 consecutive zero buckets that read exactly like a 4h45m
ingestion halt. Bound the window at now. It also strengthens the 2/2
judgement call: if future buckets fill as zeros, so does an incomplete
current one.

7 of 7 criteria resolved — 5 ticked as written, AC 4's Period and AC 5
restated with the reasoning recorded. Follow-up 0223 already spawned for
the NOT_BREACHING siblings.
@karczuRF
karczuRF merged commit 7649f21 into develop Aug 26, 2026
3 checks passed
@karczuRF
karczuRF deleted the fix/0222_deploy-and-fill-induction-record branch August 26, 2026 07:14
adamkoot added a commit that referenced this pull request Aug 27, 2026
0222 was already taken on develop by the no-invocations alarm bug
(PR #250) before this branch merged it in; two backlog files shared
the id and [[0222]] resolved to both. 0226 is the next free id; the
two code comments that cited it are re-pointed.
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.

1 participant