# OpentelemetryStatifier v0.1.0 - Table of Contents

> OpenTelemetry instrumentation for the Statifier family of statechart packages

## Pages

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

- Architecture Decision Records
  - [Architecture Decision Records](adr-index.md)
  - [ADR-0001: Record architecture decisions](0001-record-architecture-decisions.md)
  - [ADR-0002: This package is bound by the upstream bridge contract](0002-adopts-the-upstream-bridge-contract.md)
  - [ADR-0003: Handler attach and span table mechanism](0003-handler-attach-and-span-table-mechanism.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.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.

