opentelemetry-erlang-contrib/instrumentation/opentelemetry_phoenix
renovate[bot] c5753b4f52
Update dependency opentelemetry_process_propagator to ~> 0.3 (#280)
* Update dependency opentelemetry_process_propagator to ~> 0.3

* Pin dataloader version

* Update opentelemetry to 1.3.1

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bryan Naegele <bryan@fourthtime.com>
2024-02-13 10:43:02 -07:00
..
config Remove exporter race-condition on tests (#44) 2022-03-24 11:48:59 -06:00
lib Improve test matrix and add support for Elixir 1.15 and OTP 26 (#188) 2023-08-25 14:11:23 -06:00
test Add tests to cover new liveview integration (#221) 2023-11-09 18:20:07 -07:00
.formatter.exs Otel phoenix migration (#4) 2021-09-12 13:49:24 -06:00
.gitignore Otel phoenix migration (#4) 2021-09-12 13:49:24 -06:00
CHANGELOG.md Phoenix 1.2.0 release prep (#248) 2024-02-04 21:44:37 -07:00
LICENSE Otel phoenix migration (#4) 2021-09-12 13:49:24 -06:00
README.md Phoenix 1.2.0 release prep (#248) 2024-02-04 21:44:37 -07:00
mix.exs Update dependency opentelemetry_process_propagator to ~> 0.3 (#280) 2024-02-13 10:43:02 -07:00
mix.lock Update dependency opentelemetry_process_propagator to ~> 0.3 (#280) 2024-02-13 10:43:02 -07:00

README.md

OpentelemetryPhoenix

EEF Observability WG project Hex.pm Build Status

Telemetry handler that creates Opentelemetry spans from Phoenix events.

After installing, setup the handler in your application behaviour before your top-level supervisor starts.

OpentelemetryPhoenix.setup()

See the documentation for OpentelemetryPhoenix.setup/1 for additional options that may be supplied.

Installation

def deps do
  [
    {:opentelemetry_phoenix, "~> 1.2"}
  ]
end

It is high recommended to also install OpentelemetryCowboy to capture the full request lifecycle. Phoenix only handles part of the request lifecycle which can lead to incomplete request durations and lost traces for requests terminated at the socket level or before reaching Phoenix.

Compatibility Matrix

OpentelemetryPhoenix Version Otel Version Notes
v0.1.0 <= v.0.5.0
v1.0.0-rc.3 v1.0.0-rc.1
v1.0.0-rc.2
v1.0.0-rc.4 v1.0.0-rc.2 Otel rc.3 will be a breaking change
v1.0.0-rc.5 v1.0.0-rc.3
v1.0.0-rc.6 v1.0.0-rc.4
v1.0 v1.0

Note on phoenix integration

OpentelemetryPhoenix requires phoenix to use Plug.Telemetry in order to correctly trace endpoint calls.

The endpoint.ex file should look like:

defmodule MyApp.Endpoint do
  use Phoenix.Endpoint, otp_app: :my_app
  ...
  plug Plug.Telemetry, event_prefix: [:phoenix, :endpoint]
  ...
end

The Phoenix endpoint.ex template can be used as a reference