Skip to content

Commit 3011ee2

Browse files
committed
🐛 create span with a better name than "hello"
FIX #6
1 parent 12fb33f commit 3011ee2

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src/middleware.rs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,16 +133,16 @@ impl<B> MakeSpan<B> for OtelMakeSpan {
133133
.map(|ConnectInfo(client_ip)| Cow::from(client_ip.to_string()))
134134
})
135135
.unwrap_or_default();
136-
137-
let remote_context = create_context_with_trace(extract_remote_context(req.headers()));
136+
let http_method_v = http_method(req.method());
137+
let name = format!("{} {}", http_method_v, http_route);
138+
let remote_context =
139+
create_context_with_trace(extract_remote_context(req.headers()), name.clone());
138140
let remote_span = remote_context.span();
139141
let span_context = remote_span.span_context();
140142
let trace_id = span_context
141143
.is_valid()
142144
.then(|| Cow::from(span_context.trace_id().to_string()))
143145
.unwrap_or_default();
144-
let http_method_v = http_method(req.method());
145-
let name = format!("{} {}", http_method_v, http_route);
146146
let span = tracing::info_span!(
147147
"HTTP request",
148148
otel.name= %name,
@@ -238,14 +238,20 @@ fn extract_remote_context(headers: &http::HeaderMap) -> opentelemetry::Context {
238238
// `tracing_opentelemetry::OpenTelemetrySpanExt::set_parent`
239239
// else trace_id is defined too late and the `info_span` log `trace_id: ""`
240240
// Use the default global tracer (named "") to start the trace
241-
fn create_context_with_trace(remote_context: opentelemetry::Context) -> opentelemetry::Context {
241+
fn create_context_with_trace<T>(
242+
remote_context: opentelemetry::Context,
243+
name: T,
244+
) -> opentelemetry::Context
245+
where
246+
T: Into<Cow<'static, str>>,
247+
{
242248
if !remote_context.span().span_context().is_valid() {
243249
// start a new valid
244250
use opentelemetry::global;
245251
use opentelemetry::trace::{SpanBuilder, Tracer};
246252
//TODO use the otlp tracer defined as subscriber for tracing
247253
let tracer = global::tracer("");
248-
let span = tracer.build_with_context(SpanBuilder::from_name("hello"), &remote_context);
254+
let span = tracer.build_with_context(SpanBuilder::from_name(name), &remote_context);
249255
remote_context.with_span(span)
250256
} else {
251257
remote_context

0 commit comments

Comments
 (0)