Opentracing middleware implementation for
reqwest-middleware
.
Attach TracingMiddleware
to your client to automatically trace HTTP requests:
```rust use opentelemetry::exporter::trace::stdout; use reqwestmiddleware::ClientBuilder; use reqwesttracing::TracingMiddleware; use tracingsubscriber::layer::SubscriberExt; use tracingsubscriber::Registry;
async fn main() { let (tracer, ) = stdout::newpipeline().install(); let telemetry = tracingopentelemetry::layer().withtracer(tracer); let subscriber = Registry::default().with(telemetry); tracing::subscriber::setglobaldefault(subscriber).unwrap();
run().await; }
async fun run() { let client = ClientBuilder::new(reqwest::Client::new()) .with(TracingMiddleware) .build();`
client.get("https://truelayer.com").send().await.unwrap(); } ```
See the tracing
crate for more information on how to set up a
tracing subscriber to make use of the spans.
Add reqwest-tracing
to your dependencies. Optionally enable opentelemetry integration by enabling
an opentelemetry version feature:
```toml [dependencies]
reqwest-tracing = { version = "0.1.0", features = ["opentelemetry015"] } ```
Available opentelemetry features are opentelemetry_0_15
, opentelemetry_0_14
and
opentelemetry_0_13
.
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.