OpenTelemetry integration for Actix Web.
actix-web
uses tokio
as the underlying executor, so exporters should be configured to be non-blocking:
[dependencies] # if exporting to jaeger, use the `tokio` feature. opentelemetry-jaeger = { version = "..", features = ["rt-tokio-current-thread"] } # if exporting to zipkin, use the `tokio` based `reqwest-client` feature. opentelemetry-zipkin = { version = "..", features = ["reqwest-client"], default-features = false } # ... ensure the same same for any other exportersExecute client and server example
# Run jaeger in background $ docker run -d -p6831:6831/udp -p6832:6832/udp -p16686:16686 jaegertracing/all-in-one:latest # Run server example with tracing middleware $ cargo run --example server # (In other tab) Run client example with request tracing $ cargo run --example client --features awc # View spans (see the image below) $ firefox http://localhost:16686/
awc
-- enable support for tracing the awc
http client.metrics
-- enable support for opentelemetry metrics (only traces are enabled by default)metrics-prometheus
-- enable support for prometheus metrics (requires metrics
feature)sync-middleware
-- enable tracing on actix-web middlewares that do synchronous work before returning a future. Adds a small amount of overhead to every request.RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4