29 releases (18 breaking)
0.19.0 | Sep 22, 2024 |
---|---|
0.18.0 | May 30, 2024 |
0.17.0 | Mar 11, 2024 |
0.16.0 | Nov 7, 2023 |
0.1.1 | Nov 26, 2019 |
#60 in HTTP server
25,810 downloads per month
Used in 18 crates
(5 directly)
175KB
789 lines
Actix Web OpenTelemetry
OpenTelemetry integration for Actix Web.
Exporter configuration
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 exporters
Execute 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/
Features
awc
-- enable support for tracing theawc
http client.metrics
-- enable support for opentelemetry metrics (only traces are enabled by default)metrics-prometheus
-- enable support for prometheus metrics (requiresmetrics
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.
Dependencies
~18–30MB
~514K SLoC