Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
target/
Cargo.lock
.idea/
.idea/
.DS_Store
12 changes: 6 additions & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ddtrace"
version = "0.1.1"
version = "0.1.2"
authors = ["David Steiner <david_j_steiner@yahoo.co.nz", "Fergus Strangways-Dixon <fergusdixon101@gmail.com>"]
edition = "2021"
license = "MIT"
Expand All @@ -17,15 +17,15 @@ axum = ["dep:axum", "dep:tokio", "dep:axum-tracing-opentelemetry"]

[dependencies]
axum = { version = "^0.6.10", optional = true }
axum-tracing-opentelemetry = { version = "^0.11.0", optional = true }
axum-tracing-opentelemetry = { version = "^0.14.1", optional = true }
chrono = "^0.4.24"
opentelemetry = { version = "^0.19.0", features = ["rt-tokio"] }
opentelemetry-datadog = "^0.7.0"
opentelemetry-otlp = { version = "^0.12.0" }
opentelemetry = { version = "^0.20.0", features = ["rt-tokio"] }
opentelemetry-datadog = "^0.8.0"
opentelemetry-otlp = { version = "^0.13.0" }
serde = { version = "^1.0.156", features = ["derive"] }
serde_json = "^1.0.95"
tokio = { version = "^1.26.0", features = ["signal"], optional = true }
tracing = "^0.1.37"
tracing-opentelemetry = "^0.19.0"
tracing-opentelemetry = "^0.20.0"
tracing-serde = "^0.1.3"
tracing-subscriber = { version = "^0.3.16", features = ["env-filter", "json"] }
4 changes: 1 addition & 3 deletions src/axum.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
//!
//! [`axum-tracing-opentelemetry`]: https://github.com/davidB/axum-tracing-opentelemetry

pub use axum_tracing_opentelemetry::opentelemetry_tracing_layer;
pub use axum_tracing_opentelemetry::opentelemetry_tracing_layer_grpc;

pub use axum_tracing_opentelemetry::middleware::OtelAxumLayer;
pub async fn shutdown_signal() {
tokio::signal::unix::signal(tokio::signal::unix::SignalKind::terminate())
.expect("failed to install signal handler")
Expand Down
12 changes: 8 additions & 4 deletions src/formatter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
use std::io;

use chrono::Utc;
use opentelemetry::trace::{SpanId, TraceId};
use opentelemetry::trace::{SpanId, TraceContextExt, TraceId};
use serde::ser::{SerializeMap, Serializer as _};
use serde::Serialize;
use tracing::{Event, Subscriber};
Expand Down Expand Up @@ -44,9 +44,13 @@ fn lookup_trace_info<S>(span_ref: &SpanRef<S>) -> Option<TraceInfo>
where
S: Subscriber + for<'a> LookupSpan<'a>,
{
span_ref.extensions().get::<OtelData>().map(|o| TraceInfo {
trace_id: o.builder.trace_id.unwrap_or(TraceId::INVALID).into(),
span_id: o.builder.span_id.unwrap_or(SpanId::INVALID).into(),
span_ref.extensions().get::<OtelData>().map(|o| {
let parent_id = o.parent_cx.span().span_context().trace_id();
let trace_id = o.builder.trace_id.unwrap_or(parent_id);
TraceInfo {
trace_id: trace_id.into(),
span_id: o.builder.span_id.unwrap_or(SpanId::INVALID).into(),
}
})
}

Expand Down