# otel v0.4.1 - Table of Contents

Pure Elixir, OpenTelemetry-compatible

## Pages

- [README](readme.md)

- Legal
  - [LICENSE](license.md)
  - [NOTICE](notice.md)

## Modules

- [Otel.Baggage](Otel.Baggage.md): OTel Baggage (spec `baggage/api.md`, Status: **Stable**).
- [Otel.Baggage.Percent](Otel.Baggage.Percent.md): W3C Baggage percent-encoding codec (W3C Baggage spec
§value L64-L69, §property L82-L100).
- [Otel.Common.Types](Otel.Common.Types.md): Macro module injecting shared OTel type aliases into consumer
modules.
- [Otel.Ctx](Otel.Ctx.md): OTel Context (spec `context/README.md`, Status: **Stable**).
- [Otel.InstrumentationScope](Otel.InstrumentationScope.md): Identity of the code that produced telemetry (spec
`common/instrumentation-scope.md`, Status: **Stable**).
- [Otel.LoggerHandler](Otel.LoggerHandler.md): Bridges Erlang's `:logger` to the OpenTelemetry Logs API
(OTel `logs/api.md` + `logs/supplementary-guidelines.md`
§How to Create a Log4J Log Appender).
- [Otel.Logs](Otel.Logs.md): Logs API facade — emit entry point and shared types
(`logs/api.md` §LoggerProvider L62-L97 + `logs/data-model.md`
§Severity Fields L234-L363).
- [Otel.Logs.LogRecord](Otel.Logs.LogRecord.md): LogRecord data model (`logs/data-model.md` §"Log and Event
Record Definition" L155-L451; Status: **Stable**).
- [Otel.Logs.LogRecordExporter](Otel.Logs.LogRecordExporter.md): Logs export pipeline — timer-driven take from
`LogRecordStorage` + OTLP encode + HTTP POST. Single GenServer
collapsing what was previously a separate `LogRecordProcessor`
(queue + timer + drain) plus a passive HTTP-only Exporter.
- [Otel.Logs.LogRecordLimits](Otel.Logs.LogRecordLimits.md): Configurable limits for `Otel.Logs.LogRecord` attribute
collections (`logs/sdk.md` §LogRecord Limits L321-348).
- [Otel.Logs.LogRecordStorage](Otel.Logs.LogRecordStorage.md): ETS-backed FIFO queue for log records awaiting export.
- [Otel.Logs.Logger](Otel.Logs.Logger.md): Log record emission entry points for the SDK.
- [Otel.Metrics](Otel.Metrics.md): Metrics API facade.
- [Otel.Metrics.Aggregation](Otel.Metrics.Aggregation.md): Aggregation behaviour and default instrument-to-aggregation
mapping (`metrics/sdk.md` §Aggregation L612-L860).
- [Otel.Metrics.Aggregation.ExplicitBucketHistogram](Otel.Metrics.Aggregation.ExplicitBucketHistogram.md): Explicit bucket histogram aggregation.
- [Otel.Metrics.Aggregation.LastValue](Otel.Metrics.Aggregation.LastValue.md): Last value aggregation. Keeps the most recent measurement.
- [Otel.Metrics.Aggregation.Sum](Otel.Metrics.Aggregation.Sum.md): Sum aggregation. Collects the arithmetic sum of measurements.
- [Otel.Metrics.Counter](Otel.Metrics.Counter.md): Synchronous Counter instrument facade (OTel
`metrics/api.md` §Counter, Status: **Stable**, L497-L598).
- [Otel.Metrics.Exemplar](Otel.Metrics.Exemplar.md): An Exemplar is a recorded measurement that links metric data
to trace context. Exemplars are sampled from measurements by
ExemplarReservoirs and attached to metric data points during
collection.
- [Otel.Metrics.Exemplar.Filter](Otel.Metrics.Exemplar.Filter.md): Exemplar filter — `trace_based` only.
- [Otel.Metrics.Exemplar.Reservoir.AlignedHistogramBucket](Otel.Metrics.Exemplar.Reservoir.AlignedHistogramBucket.md): A reservoir aligned with explicit histogram bucket boundaries.
- [Otel.Metrics.Exemplar.Reservoir.SimpleFixedSize](Otel.Metrics.Exemplar.Reservoir.SimpleFixedSize.md): A reservoir that uses uniformly-weighted random sampling.
- [Otel.Metrics.Gauge](Otel.Metrics.Gauge.md): Synchronous Gauge instrument facade (OTel `metrics/api.md`
§Gauge, Status: **Stable**, L828-L916).
- [Otel.Metrics.Histogram](Otel.Metrics.Histogram.md): Synchronous Histogram instrument facade (OTel
`metrics/api.md` §Histogram, Status: **Stable**,
L735-L827).
- [Otel.Metrics.Instrument](Otel.Metrics.Instrument.md): Instrument handle (OTel `metrics/api.md` §Instrument,
Status: **Stable**, L178-L278).
- [Otel.Metrics.InstrumentsStorage](Otel.Metrics.InstrumentsStorage.md): ETS owner for the named ETS table — one row per
registered Instrument keyed by `downcased_name` (spec
`metrics/api.md` §Instrument identity L190-L191).
`InstrumentationScope` is hardcoded SDK-wide (project
memory `project_minikube_hardcode_decisions` § Follow-on
#457), so it is omitted from the key.
- [Otel.Metrics.Meter](Otel.Metrics.Meter.md): SDK implementation of the `Otel.Metrics.Meter`
behaviour (`metrics/sdk.md` §Meter L870-L943).
- [Otel.Metrics.Metric](Otel.Metrics.Metric.md): Metric data model — one metric record produced by
`Otel.Metrics.MetricExporter.collect/1` and consumed by
`Otel.OTLP.Encoder.encode_metrics/1` (`metrics/data-model.md`
§Metric L300-L391; Status: **Stable**).
- [Otel.Metrics.MetricExporter](Otel.Metrics.MetricExporter.md): Metrics export pipeline — timer-driven snapshot of the per-table
`XxxStorage` GenServers + OTLP encode + HTTP POST. Single
GenServer collapsing what was previously a separate
`Otel.Metrics.MetricReader.PeriodicExporting` GenServer
(timer + collect) plus a passive HTTP-only `MetricExporter`
module.
- [Otel.Metrics.MetricsStorage](Otel.Metrics.MetricsStorage.md): ETS owner for the named ETS table — aggregated
datapoints keyed by `{stream_name, attrs}` (spec
`metrics/data-model.md` §Metric). `InstrumentationScope`
is hardcoded SDK-wide so it is omitted from the key.
- [Otel.Metrics.UpDownCounter](Otel.Metrics.UpDownCounter.md): Synchronous UpDownCounter instrument facade (OTel
`metrics/api.md` §UpDownCounter, Status: **Stable**,
L1032-L1157).
- [Otel.OTLP](Otel.OTLP.md): OTLP exporter for OpenTelemetry.
- [Otel.Propagator.TextMap](Otel.Propagator.TextMap.md): TextMap propagator facade (OTel
`context/api-propagators.md` §TextMap Propagator
L114-L203; §Composite Propagator L259-L305).
- [Otel.Propagator.TextMap.Baggage](Otel.Propagator.TextMap.Baggage.md): W3C Baggage propagator (W3C `HTTP_HEADER_FORMAT.md` §Header
Content L19-L113; OTel `context/api-propagators.md`
§TextMap Inject/Extract L155-L203).
- [Otel.Propagator.TextMap.TraceContext](Otel.Propagator.TextMap.TraceContext.md): W3C Trace Context Level 2 propagator (W3C
`20-http_request_header_format.md` §Traceparent Header
L51-L244; OTel `context/api-propagators.md` §TextMap
L114-L203).
- [Otel.Resource](Otel.Resource.md): SDK Resource (`resource/sdk.md` §"SDK").
- [Otel.TelemetryReporter](Otel.TelemetryReporter.md): `Telemetry.Metrics` reporter that bridges BEAM `:telemetry`
events into the OTel Metrics pipeline. Mirror of
`Otel.LoggerHandler` for the metrics pillar.
- [Otel.TelemetrySpanDecorator](Otel.TelemetrySpanDecorator.md): `@span` annotation that auto-wraps a function in
`:telemetry.span/3`. Companion to `Otel.TelemetryTracer` —
the tracer turns telemetry spans into OTel spans, the
decorator removes the boilerplate of wrapping function
bodies manually.
- [Otel.TelemetryTracer](Otel.TelemetryTracer.md): Bridges BEAM `:telemetry.span/3` events into the OTel Trace
pipeline. Trace pillar's analog of `Otel.LoggerHandler` (Logs)
and `Otel.TelemetryReporter` (Metrics).
- [Otel.Trace](Otel.Trace.md): Trace API facade — Context Interaction and Span Creation
entry points (OTel `trace/api.md` §Context Interaction
L159-L183, §Span Creation L378-L414).
- [Otel.Trace.Event](Otel.Trace.Event.md): A timestamped event recorded on a Span (spec `trace/api.md`
§Add Events, Status: **Stable**, L520-L558).
- [Otel.Trace.IdGenerator](Otel.Trace.IdGenerator.md): Hardcoded random ID generator — the only generator this
SDK ships.
- [Otel.Trace.Link](Otel.Trace.Link.md): A link from the current Span to another `SpanContext` (spec
`trace/api.md` §Link, Status: **Stable**, L803-L834).
- [Otel.Trace.Sampler](Otel.Trace.Sampler.md): Hard-coded `ParentBased(root=AlwaysOn)` sampler — the spec
default per `trace/sdk.md` L421 and the only sampler this
SDK ships.
- [Otel.Trace.Span](Otel.Trace.Span.md): SDK implementation of the `Otel.Trace.Span` behaviour
(`trace/sdk.md` §Span L692-L944) — data + lifecycle
operations.
- [Otel.Trace.SpanContext](Otel.Trace.SpanContext.md): Immutable context of a Span (spec `trace/api.md` §SpanContext,
Status: **Stable**, L221-L278).
- [Otel.Trace.SpanExporter](Otel.Trace.SpanExporter.md): Trace export pipeline — timer-driven take from `SpanStorage` +
OTLP encode + HTTP POST. Single GenServer absorbing what was
previously split between `SpanProcessor` (queue + timer + drain)
and a HTTP-only Exporter.
- [Otel.Trace.SpanId](Otel.Trace.SpanId.md): Opaque 64-bit Span identifier (W3C `parent-id` / OTel
`trace/api.md` §SpanContext SpanId, L234-L235).
- [Otel.Trace.SpanKind](Otel.Trace.SpanKind.md): SpanKind — clarifies the relationship between Spans (spec
`trace/api.md` §SpanKind, Status: **Stable**).
- [Otel.Trace.SpanLimits](Otel.Trace.SpanLimits.md): Configurable limits for Span data.
- [Otel.Trace.SpanStorage](Otel.Trace.SpanStorage.md): ETS-backed storage for spans across their full lifecycle —
both active (mutable via `set_attribute` / `add_event`) and
completed (waiting for export after `end_span`) spans live
in a single table.
- [Otel.Trace.Status](Otel.Trace.Status.md): A Span's Status (spec `trace/api.md` §Set Status, Status:
**Stable**).
- [Otel.Trace.TraceId](Otel.Trace.TraceId.md): Opaque 128-bit Trace identifier (W3C `trace-id` / OTel
`trace/api.md` §SpanContext TraceId, L231-L232).
- [Otel.Trace.TraceState](Otel.Trace.TraceState.md): W3C Trace Context `tracestate` field (spec §3.3).
- [Otel.Trace.Tracer](Otel.Trace.Tracer.md): Span creation entry points for the SDK.

