diff options
| author | msi | 2025-11-13 16:42:07 -0300 |
|---|---|---|
| committer | msi | 2025-11-13 16:42:07 -0300 |
| commit | 87e1be84a219cdfabd7d13aa98d7fd66b0d05704 (patch) | |
| tree | 985d3c9e9c7c0bc2791c746e5e99e6be4692d99c /web/template/src/router.rs | |
| parent | 901713323c305809dbcf20c2d33505e2c65ea5eb (diff) | |
| download | templates-87e1be84a219cdfabd7d13aa98d7fd66b0d05704.tar.gz | |
Add prometheus metrics
Diffstat (limited to 'web/template/src/router.rs')
| -rw-r--r-- | web/template/src/router.rs | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/web/template/src/router.rs b/web/template/src/router.rs index d3bc57c..1e00216 100644 --- a/web/template/src/router.rs +++ b/web/template/src/router.rs @@ -19,6 +19,7 @@ use axum::{ Router, extract::State, http::{HeaderName, Request, StatusCode}, + middleware, response::{Html, IntoResponse}, routing::get, }; @@ -33,6 +34,7 @@ use tower_http::{ }; use tracing::{error, info_span}; +use crate::metric::track_metrics; use crate::state::AppState; const REQUEST_ID_HEADER: &str = "x-request-id"; @@ -49,26 +51,27 @@ pub(crate) fn route(app_state: Arc<AppState>) -> Router { .layer(( SetRequestIdLayer::new(x_request_id.clone(), MakeRequestUuid), TraceLayer::new_for_http().make_span_with( - |request: &Request<_>| { - // Log the request id as generated. - let request_id = request.headers().get(REQUEST_ID_HEADER); - - match request_id { - Some(request_id) => info_span!( - "http_request", - request_id = ?request_id, - ), - None => { - error!("could not extract request_id"); - info_span!("http_request") + |request: &Request<_>| { + // Log the request id as generated. + let request_id = request.headers().get(REQUEST_ID_HEADER); + + match request_id { + Some(request_id) => info_span!( + "http_request", + request_id = ?request_id, + ), + None => { + error!("could not extract request_id"); + info_span!("http_request") + } } - } - }, + }, ), // TODO(msi): from config TimeoutLayer::new(Duration::from_secs(10)), - PropagateRequestIdLayer::new(x_request_id) + PropagateRequestIdLayer::new(x_request_id), )) + .route_layer(middleware::from_fn(track_metrics)) .route("/healthz", get(healthz)) .with_state(app_state) } |