# OpentelemetryStatifier v0.3.0 - Table of Contents

> OpenTelemetry instrumentation for the Statifier family of statechart packages

## Pages

- [OpentelemetryStatifier](readme.md)
- [Changelog](changelog.md)

## Modules

- [OpentelemetryStatifier](OpentelemetryStatifier.md): OpenTelemetry instrumentation for the Statifier family of statechart
packages.
- [OpentelemetryStatifier.Application](OpentelemetryStatifier.Application.md): 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.

- [OpentelemetryStatifier.Attributes](OpentelemetryStatifier.Attributes.md): 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.
- [OpentelemetryStatifier.Config](OpentelemetryStatifier.Config.md): 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).
- [OpentelemetryStatifier.Handler](OpentelemetryStatifier.Handler.md): The `:telemetry` handler attached to every name
`Statifier.Session.Telemetry.events/0` returns.
- [OpentelemetryStatifier.Oban](OpentelemetryStatifier.Oban.md): 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`.
- [OpentelemetryStatifier.Oban.Handler](OpentelemetryStatifier.Oban.Handler.md): The `:telemetry` handler attached to every name
`OpentelemetryStatifier.Oban.events/0` returns.
- [OpentelemetryStatifier.Persistence](OpentelemetryStatifier.Persistence.md): 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`.
- [OpentelemetryStatifier.Persistence.Handler](OpentelemetryStatifier.Persistence.Handler.md): The `:telemetry` handler attached to every name
`OpentelemetryStatifier.Persistence.events/0` returns.
- [OpentelemetryStatifier.Sibling](OpentelemetryStatifier.Sibling.md): 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.
- [OpentelemetryStatifier.SiblingEntry](OpentelemetryStatifier.SiblingEntry.md): 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).
- [OpentelemetryStatifier.SpanEntry](OpentelemetryStatifier.SpanEntry.md): 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.
- [OpentelemetryStatifier.SpanTable](OpentelemetryStatifier.SpanTable.md): Owns the ETS table that holds open macrostep spans and, per session,
the last span context ots-j82's links read.

