Live :telemetry emission for run events.
Every committed transition emits one telemetry event per Docket.Event
it produced, so live UIs and instrumentation can observe runs without
parsing checkpoint payloads. Emission is observability-only: production
emits after the backend commit, handlers run via :telemetry.execute/3
with its usual failing-handler detachment, and delivery never affects the
run.
Event catalog
| Event name | From event type |
|---|---|
[:docket, :run, :initialized] | :run_initialized |
[:docket, :run, :completed] | :run_completed |
[:docket, :run, :failed] | :run_failed |
[:docket, :checkpoint, :committed] | :checkpoint_committed |
[:docket, :node, :completed] | :node_completed |
[:docket, :node, :failed] | :node_failed |
[:docket, :channel, :updated] | :channel_updated |
[:docket, :edge, :triggered] | :edge_triggered |
[:docket, :interrupt, :requested] | :interrupt_requested |
[:docket, :interrupt, :resolved] | :interrupt_resolved |
Measurements: %{step: non_neg_integer(), seq: pos_integer()}.
Metadata: %{run_id, graph_id, graph_hash, node_id, channel_id, task_id, payload, event} — event is the full Docket.Event; the ID keys are
nil when the event does not carry them, and payloads never contain
channel values (matching the event contract).
Summary
Functions
Emits one telemetry event per run event.
Returns the bounded metadata projection safe to use as metric labels.
Functions
@spec emit_events(Docket.Run.t(), [Docket.Event.t()]) :: :ok
Emits one telemetry event per run event.
Unknown event types are skipped rather than raised: telemetry must never take down a run.
Returns the bounded metadata projection safe to use as metric labels.