opentelemetry-erlang-contrib/instrumentation/opentelemetry_phoenix
Derek Kraan 7119c4bd42
Record an exception as an error only when Plug.Exception.status/1 (#165)
returns 500..599.

It is encouraged in the Phoenix docs to use `Plug.Exception` with
custom exceptions to generate for example 404 responses at certain
places. These 404s should not be marked as error, since simple "route
not found" 404s are also not marked as error.

Co-authored-by: Tristan Sloughter <t@crashfast.com>
2023-07-06 13:44:16 -06:00
..
config Remove exporter race-condition on tests (#44) 2022-03-24 11:48:59 -06:00
lib Record an exception as an error only when Plug.Exception.status/1 (#165) 2023-07-06 13:44:16 -06:00
test chore: add semantic conventions to phoenix (#121) 2022-12-12 13:51:54 -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 bump opentelemetry_phoenix to 1.1.1 (#181) 2023-06-20 08:39:50 -06:00
LICENSE Otel phoenix migration (#4) 2021-09-12 13:49:24 -06:00
README.md Phoenix 1.1.0 (#145) 2023-01-13 14:38:05 -07:00
mix.exs bump opentelemetry_phoenix to 1.1.1 (#181) 2023-06-20 08:39:50 -06:00
mix.lock Phoenix Plug.Cowboy adapter support (#144) 2023-01-06 13:46:06 -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.1"}
  ]
end

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