https://github.com/zaphar/tower-trace-metrics
A tower-http TraceLayer that records metrics.
https://github.com/zaphar/tower-trace-metrics
Last synced: 5 days ago
JSON representation
A tower-http TraceLayer that records metrics.
- Host: GitHub
- URL: https://github.com/zaphar/tower-trace-metrics
- Owner: zaphar
- License: apache-2.0
- Created: 2023-01-31T00:09:22.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-04T15:50:33.000Z (over 3 years ago)
- Last Synced: 2025-10-25T08:12:32.476Z (9 months ago)
- Language: Rust
- Size: 7.81 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tower-trace-metrics
A [tower-http](https://crates.io/crates/tower-http) `TraceLayer` that records metrics using the [metrics](https://crates.io/crates/metrics) facade.
```rust
use tower_trace_metrics::make_layer;
use tower::ServiceBuilder;
use bytes;
fn main() {
let service = ServiceBuilder::new()
// Make a trace layer where the chunks are bytes::Bytes
.layer(make_layer(|b: &bytes::Bytes| b.len() as u64));
// ... Use this service in a Tower middleware stack.
}
```
## Recorded Metrics
* http_request_counter The total count of all requests
* http_request_failure_counter The total count of all request failures
* http_request_size_bytes_hist A histogram of request size in bytes
* http_request_request_time_micros_hist A histogram of request time in microseconds
Each metric is faceted by `path`, `method`, and `host` for the request.