heldar_kernel/routes/
metrics.rs1use axum::extract::State;
2use axum::http::header;
3use axum::response::{IntoResponse, Response};
4use axum::routing::get;
5use axum::Router;
6
7use crate::error::AppResult;
8use crate::services::metrics;
9use crate::state::AppState;
10
11pub fn router() -> Router<AppState> {
12 Router::new().route("/metrics", get(metrics_handler))
13}
14
15async fn metrics_handler(State(st): State<AppState>) -> AppResult<Response> {
17 let body = metrics::render(&st.pool, &st.cfg).await?;
18 Ok((
19 [(
20 header::CONTENT_TYPE,
21 "text/plain; version=0.0.4; charset=utf-8",
22 )],
23 body,
24 )
25 .into_response())
26}