From c5ea875f544824b0c042bf7c0a58b3134f9c0373 Mon Sep 17 00:00:00 2001 From: rtkay123 Date: Tue, 12 Aug 2025 05:13:32 +0200 Subject: feat(config): get active routing --- lib/warden-middleware/src/lib.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 lib/warden-middleware/src/lib.rs (limited to 'lib/warden-middleware/src/lib.rs') diff --git a/lib/warden-middleware/src/lib.rs b/lib/warden-middleware/src/lib.rs new file mode 100644 index 0000000..6e3a0f4 --- /dev/null +++ b/lib/warden-middleware/src/lib.rs @@ -0,0 +1,20 @@ +mod metrics; +mod trace_layer; + +use metrics::*; +use trace_layer::*; + +use axum::{Router, http::HeaderName, middleware}; +use tower_http::request_id::{MakeRequestUuid, PropagateRequestIdLayer, SetRequestIdLayer}; + +const REQUEST_ID_HEADER: &str = "x-request-id"; + +pub fn apply(router: Router) -> Router { + let x_request_id = HeaderName::from_static(REQUEST_ID_HEADER); + + let router = router.layer(PropagateRequestIdLayer::new(x_request_id.clone())); + + apply_trace_context_middleware(router) + .layer(SetRequestIdLayer::new(x_request_id, MakeRequestUuid)) + .route_layer(middleware::from_fn(apply_metrics_middleware)) +} -- cgit v1.2.3