feat: structured JSON logging substrate (observability foundation per operator engagement) #159
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#159
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
The toolkit emits naturally-metric-able events during the cut path (cut decision, mode, idempotency-skip, failure step + cause, token-fallback usage, path-α-vs-γ disposition, re-pin discipline timing). Today they're scattered across unstructured runner logs; root-causing intermittent failures means log-scrolling instead of querying.
Structured JSON logging would:
The "Grafana integration" idea operator surfaced was substantively larger; this tracker is the foundation layer that the larger substrate would compose ON.
What it looks like
A new helper in
scripts/lib/:Used like:
Output (one event per JSON line on stderr):
Loki ingest
The Forgejo-runner already runs in docker; Promtail (or Alloy) can scrape its container stdout/stderr. The JSON lines parse natively in LogQL:
No new pushgateway / sidecar / instrumentation surface needed for the consumer.
Scope
In scope
scripts/lib/events.sh— the helperrelease-decide.sh,release-prep.sh,manifest-precheck.sh,draft-release.sh(decision points, failure paths, API calls)examples/grafana/(basic cut-cadence + decision-mode-mix)Out of scope (explicit)
Event taxonomy (initial)
cut_decidedmanifest_skipmanifest_proceedapi_callerrorrepin_checkcut_completePre-1.0 release should ship the first ~10 events; more can land post-1.0.
Composition
event_emit); cleaner audit boundaryWhat this PR does NOT do
Refs
engineer referenced this issue2026-06-27 15:45:42 +02:00
engineer referenced this issue2026-06-27 15:46:32 +02:00
engineer referenced this issue2026-06-28 14:29:29 +02:00