blob: 5792c09edec6a2cc26e88cc123fcd93b05dd714e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
use axum::{Router, http::Request};
use tower_http::trace::TraceLayer;
use tracing::info_span;
use super::REQUEST_ID_HEADER;
pub fn apply_trace_context_middleware<T: Clone + Send + Sync + 'static>(
router: Router<T>,
) -> Router<T> {
router.layer(
TraceLayer::new_for_http().make_span_with(|request: &Request<_>| {
let request_id = request
.headers()
.get(REQUEST_ID_HEADER)
.expect("should have been applied already");
info_span!(
"http_request",
request_id = ?request_id,
headers = ?request.headers(),
"otel.kind" = "server"
)
}),
)
}
|