use axum::response::IntoResponse;
#[cfg(feature = "metrics")]
pub async fn metrics() -> impl IntoResponse {
use prometheus::{Encoder, TextEncoder};
let encoder = TextEncoder::new();
let metric_families = prometheus::gather();
let mut buffer = Vec::new();
encoder.encode(&metric_families, &mut buffer).unwrap();
(
axum::http::StatusCode::OK,
[("Content-Type", "text/plain; charset=utf-8")],
String::from_utf8(buffer).unwrap()
)
}
#[cfg(not(feature = "metrics"))]
pub async fn metrics() -> impl IntoResponse {
(
axum::http::StatusCode::NOT_IMPLEMENTED,
[("Content-Type", "text/plain")],
"Metrics feature not enabled"
)
}