901b571b07
* Optionally disable trace propagation for Tesla While we always want spans being produced, trace progation is not desirable in all cases - namely, when calling external parties, as that may leak sensitive information, like one present on Baggage. This patch introduces a new option `:propagate`, that defaults to `true`. Some tweaks are made to existing propagation test, fixing how options are used. The approach here is closer to what we see in some middleware tests of Tesla itself. * change to propagator override * change propagator to it uses global default * mix format * improve docs --------- Co-authored-by: Andrew Rosa <dev@andrewhr.io> |
||
---|---|---|
.. | ||
lib/middleware | ||
test | ||
.formatter.exs | ||
LICENSE | ||
README.md | ||
mix.exs | ||
mix.lock |
README.md
OpenTelemetryTesla
Tesla middleware that creates OpenTelemetry spans and injects tracing headers into HTTP requests for Tesla clients.
Installation
The package is available in Hex and can be installed
by adding opentelemetry_tesla
to your list of dependencies in mix.exs
:
def deps do
[
{:opentelemetry_tesla, "~> 2.1.0"}
]
end
Setup
Whilst using this middleware is as simple as adding it to your Tesla middlewares configuration, It's very important to set the correct order of the middlewares
The is crucial to correctly get the parameterized version of the URL, something like /api/users/:id
instead of /api/users/3
.
OpenTelemetry
comes first, PathParams
(if you're using it) comes after.
Tesla.Middleware.OpenTelemetry
Tesla.Middleware.PathParams