# OpentelemetryStatifier v0.10.0 - Table of Contents > OpenTelemetry instrumentation for the Statifier family of statechart packages ## Pages - [OpentelemetryStatifier](readme.md) - [Changelog](changelog.md) - How-to guides - [How to see a chart execution as a trace](how-to-see-a-chart-execution-as-a-trace.md) - Explanation - [Why spans and links are shaped this way](why-spans-and-links-are-shaped-this-way.md) - Upgrading - [Upgrading a host from 0.6 to 0.10](upgrading.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 the options `OpentelemetryStatifier.setup/1`, `OpentelemetryStatifier.Persistence.setup/1` and `OpentelemetryStatifier.Oban.setup/1` take, carried through `:telemetry.attach/4` as each handler's `Config` argument (the family's pattern for setup-time options). - [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.Parent](OpentelemetryStatifier.Parent.md): Declares the span that encloses a session's macrostep spans, for a durable driver this package knows nothing about. - [OpentelemetryStatifier.ParentEntry](OpentelemetryStatifier.ParentEntry.md): A *declared* enclosing span row held in `OpentelemetryStatifier.SpanTable`, written by `OpentelemetryStatifier.Parent.register/2` and removed by `OpentelemetryStatifier.Parent.unregister/1`. - [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, :execution, :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.SpanContext](OpentelemetryStatifier.SpanContext.md): 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. - [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.