Otel
Pure Elixir implementation of OpenTelemetry
Features
- Signals
- Traces
- Metrics
- Logs
- Baggage
- Propagators
- W3C TraceContext
- W3C Baggage
- Exporters
- Console (stdout)
- OTLP HTTP
- Configuration
-
Declarative YAML (
OTEL_CONFIG_FILE) -
Environment variables (
OTEL_*) -
Programmatic (
Applicationenv)
-
Declarative YAML (
- Semantic Conventions
- Attribute registry
- Metric registry
- Integrations
:loggerbridge
Requirements
-
Elixir
~> 1.18 -
Erlang/OTP
~> 26.2
Compatibility
| Component | Version |
|---|---|
| OpenTelemetry Specification | v1.55.0 (Stable signals only) |
| OpenTelemetry Protocol (OTLP) | v1.10.0 |
| OpenTelemetry Configuration | v1.0.0 |
| OpenTelemetry Semantic Conventions | v1.40.0 |
| W3C Trace Context | Level 2 (REC) |
| W3C Baggage | wire format per OTel's Stable Baggage Propagator |
Installation
Add :otel to deps in mix.exs:
def deps do
[
{:otel, "~> 0.1.0"}
]
endConfiguration
- Otel SDK — pillars, exporters, processors, propagators.
:loggerbridge — Elixir log events → OTel Logs.
How-to
- Trace — span lifecycle, attributes, events, status, exceptions.
- Log —
:loggerbridge and SDK API. - Metrics — synchronous and observable instruments.
E2E
- E2E Test Scenarios — tracking matrix for end-to-end coverage against Grafana LGTM.
License
Released under the MIT License.