Crate reqwest_metrics

Source
Expand description

Metrics.rs integration for reqwest using reqwest-middleware

§Features

§Usage

let client = ClientBuilder::new(reqwest::Client::new())
    .with(MetricsMiddleware::new())
    .build();

§Configuration

§Overriding label names

let client = ClientBuilder::new(reqwest::Client::new())
    .with(
        MetricsMiddleware::builder()
            .http_request_method_label("method")
            .http_response_status_label("status")
            .server_address_label("host")
            .build(),
    )
    .build();

Supported labels:

  • http_request_method
  • server_address
  • server_port
  • error_type
  • http_response_status_code
  • network_protocol_name
  • network_protocol_version
  • url_scheme

§Motivation

This crate is heavily inspired by the HTTP Client metrics provided by Spring. This crate aims to provide the same functionality while adhereing to Otel semantic conventions.

Structs§

MetricsMiddleware
Middleware to handle emitting HTTP metrics for a reqwest client NOTE: Creating a [MetricMiddleware] will describe a histogram on construction.
MetricsMiddlewareBuilder
Builder for MetricsMiddleware