Modules
OpenTelemetry instrumentation for the Statifier family of statechart packages.
Starts OpentelemetryStatifier.SpanTable so the ETS table it owns
exists before any handler OpentelemetryStatifier.setup/1 attaches can
fire, and survives every session process. This is the package's only
supervised process; a host that never calls setup/1 pays the cost of
one idle process, the normal shape for instrumentation packages.
The uniform measurement/metadata-to-attribute mapping the design note
(statifier-ex docs/opentelemetry.md, "Attribute mapping") fixes, applied
to span events rather than re-decided per event name.
The validated result of OpentelemetryStatifier.setup/1's options,
carried through :telemetry.attach/4 as the handler Config argument
(the family's unanimous pattern for setup-time options - see the plan's
Key Discoveries).
The :telemetry handler attached to every name
Statifier.Session.Telemetry.events/0 returns.
The bridge half for statifier_oban's event family,
[:statifier_oban, ...] - what happens between a chart's delayed send
or invoke and the durable job row, frozen by that package's
docs/adr/0006-telemetry-events-for-the-durable-seams.md and tabulated
in its docs/telemetry.md.
The :telemetry handler attached to every name
OpentelemetryStatifier.Oban.events/0 returns.
Declares the span that encloses a session's macrostep spans, for a durable driver this package knows nothing about.
A declared enclosing span row held in
OpentelemetryStatifier.SpanTable, written by
OpentelemetryStatifier.Parent.register/2 and removed by
OpentelemetryStatifier.Parent.unregister/1.
The bridge half for statifier_persistence's own event family,
[:statifier_persistence, ...] - the durable stepper's storage
phases, frozen by that package's docs/adr/0009-telemetry-events-for-the-durable-stepper.md
and tabulated in its docs/telemetry.md.
The :telemetry handler attached to every name
OpentelemetryStatifier.Persistence.events/0 returns.
The span mechanics the two sibling families share, so
OpentelemetryStatifier.Persistence.Handler and
OpentelemetryStatifier.Oban.Handler decide only what their own
contracts decide - which event is an interval, which is a point, and
where a point belongs - and nothing about how a span is opened.
An open sibling span row held in OpentelemetryStatifier.SpanTable
between a sibling package's :start event and the :stop whose
span_ref matches - today only
[:statifier_persistence, :run, :step, :start | :stop], the one
start/stop pair the sibling contracts define (sp-ADR-0009's step seam;
sob-ADR-0006 deliberately has no pairs).
The bridge's keyed (session_id, macrostep) span-context read: the
public lookup a wire-format producer needs to stamp OTel correlation
ids onto the messages it emits.
An open macrostep span row held in OpentelemetryStatifier.SpanTable
between the macrostep :start event that creates it and the :stop
event whose span_ref matches.
Owns the ETS table that holds open macrostep spans and, per session, the last span context ots-j82's links read.