Shadowfacts
85076ca8e4
This ensures that spans created in application code are correctly parented to the request span. |
||
---|---|---|
.. | ||
config | ||
lib | ||
test | ||
.formatter.exs | ||
.gitignore | ||
CHANGELOG.md | ||
LICENSE | ||
README.md | ||
mix.exs | ||
mix.lock |
README.md
OpentelemetryPhoenix
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