Hex.pm HexDocs CI E2E Coverage Status License

Otel

Pure Elixir, OpenTelemetry-compatible

Features

  • Signals
    • Traces
    • Metrics
    • Logs
  • Propagators
    • W3C TraceContext
    • W3C Baggage
  • Exporters
    • OTLP/HTTP (Protobuf)
  • Integrations
    • :logger bridge
    • :telemetry bridge

Requirements

  • Elixir ~> 1.18
  • Erlang/OTP ~> 26.2

Compatibility

ComponentVersion
OpenTelemetry Specificationv1.55.0 (Stable signals only)
OpenTelemetry Protocol (OTLP)v1.10.0
W3C Trace ContextLevel 2 (REC)
W3C BaggageOTel Stable Baggage Propagator wire format

Installation

Add :otel to deps in mix.exs:

def deps do
  [
    {:otel, "~> 0.3.0"}
  ]
end

Configuration

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.