blob: e13fcb9e8b16200bc8b18af29811eff2857539f2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#![allow(unused_imports, dead_code)]
use async_trait::async_trait;
use lazy_static::lazy_static;
use prometheus::Encoder;
use std::time::{Duration, Instant};
// TODO: Vendor in the Metrics struct from warp_prometheus and rework the path matching algorithm
pub fn metrics(path_includes: Vec<String>) -> warp::log::Log<impl Fn(warp::log::Info) + Clone> {
let metrics = warp_prometheus::Metrics::new(prometheus::default_registry(), &path_includes);
warp::log::custom(move |info| metrics.http_metrics(info))
}
pub fn gather() -> Vec<u8> {
let mut buffer: Vec<u8> = vec![];
let encoder = prometheus::TextEncoder::new();
let metric_families = prometheus::gather();
encoder.encode(&metric_families, &mut buffer).unwrap();
buffer
}
|