aboutsummaryrefslogtreecommitdiffstats
path: root/web/template/src/router.rs
diff options
context:
space:
mode:
authormsi2025-11-13 16:42:07 -0300
committermsi2025-11-13 16:42:07 -0300
commit87e1be84a219cdfabd7d13aa98d7fd66b0d05704 (patch)
tree985d3c9e9c7c0bc2791c746e5e99e6be4692d99c /web/template/src/router.rs
parent901713323c305809dbcf20c2d33505e2c65ea5eb (diff)
downloadtemplates-87e1be84a219cdfabd7d13aa98d7fd66b0d05704.tar.gz
Add prometheus metrics
Diffstat (limited to 'web/template/src/router.rs')
-rw-r--r--web/template/src/router.rs33
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)
}