[−][src]Crate opentelemetry_tide
opentelemetry-tide
OpenTelemetry integration for Tide
Example
Cargo.toml
[dependencies]
async-std = {version = "1.7", features = ["attributes"]}
opentelemetry = { version = "0.10", features = ["async-std"] }
opentelemetry-jaeger = { version = "0.9", features = ["async-std"] }
opentelemetry-tide = "0.5"
tide = "0.15"
server.rs
use opentelemetry_semantic_conventions::resource; use opentelemetry_tide::OpenTelemetryTracingMiddleware; use tide::Request; const VERSION: &'static str = env!("CARGO_PKG_VERSION"); #[async_std::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { tide::log::start(); let tags = [resource::SERVICE_VERSION.string(VERSION)]; let (tracer, _uninstall) = opentelemetry_jaeger::new_pipeline() .with_service_name("example-server") .with_tags(tags.iter().map(ToOwned::to_owned)) .install() .expect("pipeline install failure"); let mut app = tide::new(); app.with(OpenTelemetryTracingMiddleware::new(tracer)); app.at("/").get(|req: Request<()>| async move { eprintln!("req.version = {:?}", req.version()); Ok("Hello, OpenTelemetry!") }); app.listen("127.0.0.1:3000").await?; Ok(()) }
Structs
OpenTelemetryTracingMiddleware | The middleware struct to be used in tide |