Skip to content

Commit 5c4463d

Browse files
author
Fergus Dixon
committed
Update to opentelem dependencies, and trace ID resolving
1 parent 02ce0b0 commit 5c4463d

4 files changed

Lines changed: 17 additions & 14 deletions

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
target/
22
Cargo.lock
3-
.idea/
3+
.idea/
4+
.DS_Store

Cargo.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ddtrace"
3-
version = "0.1.1"
3+
version = "0.1.2"
44
authors = ["David Steiner <david_j_steiner@yahoo.co.nz", "Fergus Strangways-Dixon <fergusdixon101@gmail.com>"]
55
edition = "2021"
66
license = "MIT"
@@ -17,15 +17,15 @@ axum = ["dep:axum", "dep:tokio", "dep:axum-tracing-opentelemetry"]
1717

1818
[dependencies]
1919
axum = { version = "^0.6.10", optional = true }
20-
axum-tracing-opentelemetry = { version = "^0.11.0", optional = true }
20+
axum-tracing-opentelemetry = { version = "^0.14.1", optional = true }
2121
chrono = "^0.4.24"
22-
opentelemetry = { version = "^0.19.0", features = ["rt-tokio"] }
23-
opentelemetry-datadog = "^0.7.0"
24-
opentelemetry-otlp = { version = "^0.12.0" }
22+
opentelemetry = { version = "^0.20.0", features = ["rt-tokio"] }
23+
opentelemetry-datadog = "^0.8.0"
24+
opentelemetry-otlp = { version = "^0.13.0" }
2525
serde = { version = "^1.0.156", features = ["derive"] }
2626
serde_json = "^1.0.95"
2727
tokio = { version = "^1.26.0", features = ["signal"], optional = true }
2828
tracing = "^0.1.37"
29-
tracing-opentelemetry = "^0.19.0"
29+
tracing-opentelemetry = "^0.20.0"
3030
tracing-serde = "^0.1.3"
3131
tracing-subscriber = { version = "^0.3.16", features = ["env-filter", "json"] }

src/axum.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
//!
66
//! [`axum-tracing-opentelemetry`]: https://github.com/davidB/axum-tracing-opentelemetry
77
8-
pub use axum_tracing_opentelemetry::opentelemetry_tracing_layer;
9-
pub use axum_tracing_opentelemetry::opentelemetry_tracing_layer_grpc;
10-
8+
pub use axum_tracing_opentelemetry::middleware::OtelAxumLayer;
119
pub async fn shutdown_signal() {
1210
tokio::signal::unix::signal(tokio::signal::unix::SignalKind::terminate())
1311
.expect("failed to install signal handler")

src/formatter.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use std::io;
99

1010
use chrono::Utc;
11-
use opentelemetry::trace::{SpanId, TraceId};
11+
use opentelemetry::trace::{SpanId, TraceContextExt, TraceId};
1212
use serde::ser::{SerializeMap, Serializer as _};
1313
use serde::Serialize;
1414
use tracing::{Event, Subscriber};
@@ -44,9 +44,13 @@ fn lookup_trace_info<S>(span_ref: &SpanRef<S>) -> Option<TraceInfo>
4444
where
4545
S: Subscriber + for<'a> LookupSpan<'a>,
4646
{
47-
span_ref.extensions().get::<OtelData>().map(|o| TraceInfo {
48-
trace_id: o.builder.trace_id.unwrap_or(TraceId::INVALID).into(),
49-
span_id: o.builder.span_id.unwrap_or(SpanId::INVALID).into(),
47+
span_ref.extensions().get::<OtelData>().map(|o| {
48+
let parent_id = o.parent_cx.span().span_context().trace_id();
49+
let trace_id = o.builder.trace_id.unwrap_or(parent_id);
50+
TraceInfo {
51+
trace_id: trace_id.into(),
52+
span_id: o.builder.span_id.unwrap_or(SpanId::INVALID).into(),
53+
}
5054
})
5155
}
5256

0 commit comments

Comments
 (0)