# otel v0.4.2 - 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.