An open API service indexing awesome lists of open source software.

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.

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.