Otel
Pure Elixir, OpenTelemetry-compatible
Features
- Signals
- Traces
- Metrics
- Logs
- Propagators
- W3C TraceContext
- W3C Baggage
- Exporters
- OTLP/HTTP (Protobuf)
- Integrations
:loggerbridge:telemetrybridge
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 |
| W3C Trace Context | Level 2 (REC) |
| W3C Baggage | OTel Stable Baggage Propagator wire format |
Installation
Add :otel to deps in mix.exs:
def deps do
[
{:otel, "~> 0.3.0"}
]
endConfiguration
SDK
# config/config.exs
config :otel, otp_app: :my_app, req_options: []Logs
:logger bridge:
# config/config.exs
config :kernel,
logger: [
{:handler, :otel, Otel.LoggerHandler, %{}}
]Metrics
:telemetry bridge (in your supervision tree):
# lib/my_app/application.ex
children = [
{Otel.TelemetryReporter, metrics: [...]}
]How-to
- Trace — span lifecycle, attributes, events, status, exceptions.
License
Released under the MIT License.