3faa246d02
Default exporter immediately attempts on start connect to `:otel-collector` default port. As we don't have any collector running on our test environment, this results in a few warnings. That's not an issue in itself, as code immediately switches to another export, but creates a lot of noise. This patch moves the exporter setup to `config/test.exs`, essentially removing the need to restart opentelemetry applicationn for each test case. The only work setup blocks do is update the exporter's target pid. The processor was changed to simple mode, available now, which also remove another vector of (unlikely but theoretically possible) race-conditions. |
||
---|---|---|
.. | ||
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.0.0-rc.6"}
]
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 |
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