#metrics #byte #request #tower-http #trace #records #layer

tower-trace-metrics

A tower-http TraceLayer that records metrics per request

1 unstable release

0.1.0 Feb 4, 2023

#11 in #tower-http

Download history 8/week @ 2024-02-25 7/week @ 2024-03-10 1/week @ 2024-03-17 19/week @ 2024-03-31 42/week @ 2024-04-07 4/week @ 2024-04-14

65 downloads per month

Apache-2.0

9KB
140 lines

tower-trace-metrics

A tower-http TraceLayer that records metrics using the metrics facade.

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.

Dependencies

~5MB
~102K SLoC