Skip to content

Commit d4b5d5d

Browse files
authored
Fixing the CI (grpc path). (#593)
1 parent 27c118a commit d4b5d5d

File tree

3 files changed

+57
-50
lines changed

3 files changed

+57
-50
lines changed

router/src/http/server.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1833,7 +1833,9 @@ pub async fn run(
18331833
.layer(Extension(info))
18341834
.layer(Extension(prom_handle.clone()))
18351835
.layer(OtelAxumLayer::default())
1836-
.layer(axum::middleware::from_fn(logging::trace_context_middleware))
1836+
.layer(axum::middleware::from_fn(
1837+
logging::http::trace_context_middleware,
1838+
))
18371839
.layer(DefaultBodyLimit::max(payload_limit))
18381840
.layer(cors_layer);
18391841

router/src/logging.rs

Lines changed: 53 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
use axum::{extract::Request, middleware::Next, response::Response};
2-
use opentelemetry::trace::{SpanContext, SpanId, TraceContextExt, TraceFlags, TraceId};
3-
use opentelemetry::Context;
41
use opentelemetry::{global, KeyValue};
52
use opentelemetry_otlp::WithExportConfig;
63
use opentelemetry_sdk::propagation::TraceContextPropagator;
@@ -10,56 +7,63 @@ use tracing_subscriber::layer::SubscriberExt;
107
use tracing_subscriber::util::SubscriberInitExt;
118
use tracing_subscriber::{EnvFilter, Layer};
129

13-
struct TraceParent {
14-
#[allow(dead_code)]
15-
version: u8,
16-
trace_id: TraceId,
17-
parent_id: SpanId,
18-
trace_flags: TraceFlags,
19-
}
20-
21-
fn parse_traceparent(header_value: &str) -> Option<TraceParent> {
22-
let parts: Vec<&str> = header_value.split('-').collect();
23-
if parts.len() != 4 {
24-
return None;
10+
#[cfg(feature = "http")]
11+
pub mod http {
12+
use axum::{extract::Request, middleware::Next, response::Response};
13+
use opentelemetry::trace::{SpanContext, TraceContextExt};
14+
use opentelemetry::trace::{SpanId, TraceFlags, TraceId};
15+
use opentelemetry::Context;
16+
struct TraceParent {
17+
#[allow(dead_code)]
18+
version: u8,
19+
trace_id: TraceId,
20+
parent_id: SpanId,
21+
trace_flags: TraceFlags,
2522
}
2623

27-
let version = u8::from_str_radix(parts[0], 16).ok()?;
28-
if version == 0xff {
29-
return None;
24+
fn parse_traceparent(header_value: &str) -> Option<TraceParent> {
25+
let parts: Vec<&str> = header_value.split('-').collect();
26+
if parts.len() != 4 {
27+
return None;
28+
}
29+
30+
let version = u8::from_str_radix(parts[0], 16).ok()?;
31+
if version == 0xff {
32+
return None;
33+
}
34+
35+
let trace_id = TraceId::from_hex(parts[1]).ok()?;
36+
let parent_id = SpanId::from_hex(parts[2]).ok()?;
37+
let trace_flags = u8::from_str_radix(parts[3], 16).ok()?;
38+
39+
Some(TraceParent {
40+
version,
41+
trace_id,
42+
parent_id,
43+
trace_flags: TraceFlags::new(trace_flags),
44+
})
3045
}
3146

32-
let trace_id = TraceId::from_hex(parts[1]).ok()?;
33-
let parent_id = SpanId::from_hex(parts[2]).ok()?;
34-
let trace_flags = u8::from_str_radix(parts[3], 16).ok()?;
35-
36-
Some(TraceParent {
37-
version,
38-
trace_id,
39-
parent_id,
40-
trace_flags: TraceFlags::new(trace_flags),
41-
})
42-
}
43-
44-
pub async fn trace_context_middleware(mut request: Request, next: Next) -> Response {
45-
let context = request
46-
.headers()
47-
.get("traceparent")
48-
.and_then(|v| v.to_str().ok())
49-
.and_then(parse_traceparent)
50-
.map(|traceparent| {
51-
Context::new().with_remote_span_context(SpanContext::new(
52-
traceparent.trace_id,
53-
traceparent.parent_id,
54-
traceparent.trace_flags,
55-
true,
56-
Default::default(),
57-
))
58-
});
59-
60-
request.extensions_mut().insert(context);
61-
62-
next.run(request).await
47+
pub async fn trace_context_middleware(mut request: Request, next: Next) -> Response {
48+
let context = request
49+
.headers()
50+
.get("traceparent")
51+
.and_then(|v| v.to_str().ok())
52+
.and_then(parse_traceparent)
53+
.map(|traceparent| {
54+
Context::new().with_remote_span_context(SpanContext::new(
55+
traceparent.trace_id,
56+
traceparent.parent_id,
57+
traceparent.trace_flags,
58+
true,
59+
Default::default(),
60+
))
61+
});
62+
63+
request.extensions_mut().insert(context);
64+
65+
next.run(request).await
66+
}
6367
}
6468

6569
/// Init logging using env variables LOG_LEVEL and LOG_FORMAT:

router/tests/common.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ pub async fn start_server(model_id: String, revision: Option<String>, dtype: DTy
6767
None,
6868
None,
6969
"text-embeddings-inference.server".to_owned(),
70+
9000,
7071
None,
7172
)
7273
});

0 commit comments

Comments
 (0)