[−][src]Crate actix_web_opentelemetry
Actix Web OpenTelemetry
OpenTelemetry integration for Actix Web.
This crate allows you to easily instrument client and server requests.
- Client requests can be traced by using the
with_tracing
function. - Server requests can be traced by using the
RequestTracing
struct.
Client Request Example:
use actix_web::client; use futures::Future; fn execute_request(client: &client::Client) -> impl Future<Item = String, Error = ()> { actix_web_opentelemetry::with_tracing(client.get("http://localhost:8080"), |request| { request.send() }) .map_err(|err| eprintln!("Error: {:?}", err)) .and_then(|mut res| { res.body() .map(|bytes| std::str::from_utf8(&bytes).unwrap().to_string()) .map_err(|err| eprintln!("Error: {:?}", err)) }) }
Server middlware example:
use actix_web::{App, HttpServer, web}; use actix_web_opentelemetry::RequestTracing; use opentelemetry::api; fn init_tracer() { opentelemetry::global::set_provider(api::NoopProvider {}); } fn main() -> std::io::Result<()> { init_tracer(); HttpServer::new(|| { App::new() .wrap(RequestTracing::new(false)) .service(web::resource("/").to(|| "Hello world!")) }) .bind("127.0.0.1:8080")? .run() }
Structs
RequestTracing | Request tracing middleware. |
Functions
with_tracing | Trace an |