lib/opentelemetry_tesla_middleware.ex
defmodule Tesla.Middleware.OpentelemetryTeslaMiddleware do
@behaviour Tesla.Middleware
def call(env, next, _options) do
env
|> Tesla.put_headers(:otel_propagator.text_map_inject([]))
|> Tesla.run(next)
|> case do
{:ok, env} ->
env
{:error, error} ->
{:error, error}
end
end
end