Skip to content

chore: update from tracing-opentelemetry 0.29.0 to 0.30.0 #2856

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
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
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ sysinfo = "0.32"
tempfile = "3.3.0"
testcontainers = "0.23.1"
tracing-log = "0.2"
tracing-opentelemetry = "0.29"
tracing-opentelemetry = "0.30"
typed-builder = "0.20"
uuid = "1.3"

Expand Down
7 changes: 7 additions & 0 deletions opentelemetry-appender-tracing/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

## vNext

## 0.29.1

Released 2025-Mar-24

- Bump `tracing-opentelemetry` to 0.30


## 0.29.0

Released 2025-Mar-21
Expand Down
7 changes: 3 additions & 4 deletions opentelemetry-appender-tracing/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "opentelemetry-appender-tracing"
version = "0.29.0"
version = "0.29.1"
edition = "2021"
description = "An OpenTelemetry log appender for the tracing crate"
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-appender-tracing"
Expand All @@ -17,7 +17,7 @@ tracing = { workspace = true, features = ["std"]}
tracing-core = { workspace = true }
tracing-log = { workspace = true, optional = true }
tracing-subscriber = { workspace = true, features = ["registry", "std"] }
# tracing-opentelemetry = { workspace = true, optional = true }
tracing-opentelemetry = { workspace = true, optional = true }

[dev-dependencies]
log = { workspace = true }
Expand All @@ -36,8 +36,7 @@ pprof = { version = "0.14", features = ["flamegraph", "criterion"] }
default = []
experimental_metadata_attributes = ["dep:tracing-log"]
spec_unstable_logs_enabled = ["opentelemetry/spec_unstable_logs_enabled"]
# TODO - Enable this in 0.29.1 (once tracing-opentelemetry v0.30 is released)
# experimental_use_tracing_span_context = ["tracing-opentelemetry"]
experimental_use_tracing_span_context = ["tracing-opentelemetry"]


[[bench]]
Expand Down
132 changes: 66 additions & 66 deletions opentelemetry-appender-tracing/src/layer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -244,25 +244,25 @@ where
// Visit fields.
event.record(&mut visitor);

// #[cfg(feature = "experimental_use_tracing_span_context")]
// if let Some(span) = _ctx.event_span(event) {
// use tracing_opentelemetry::OtelData;
// let opt_span_id = span
// .extensions()
// .get::<OtelData>()
// .and_then(|otd| otd.builder.span_id);

// let opt_trace_id = span.scope().last().and_then(|root_span| {
// root_span
// .extensions()
// .get::<OtelData>()
// .and_then(|otd| otd.builder.trace_id)
// });

// if let Some((trace_id, span_id)) = opt_trace_id.zip(opt_span_id) {
// log_record.set_trace_context(trace_id, span_id, None);
// }
// }
#[cfg(feature = "experimental_use_tracing_span_context")]
if let Some(span) = _ctx.event_span(event) {
use tracing_opentelemetry::OtelData;
let opt_span_id = span
.extensions()
.get::<OtelData>()
.and_then(|otd| otd.builder.span_id);

let opt_trace_id = span.scope().last().and_then(|root_span| {
root_span
.extensions()
.get::<OtelData>()
.and_then(|otd| otd.builder.trace_id)
});

if let Some((trace_id, span_id)) = opt_trace_id.zip(opt_span_id) {
log_record.set_trace_context(trace_id, span_id, None);
}
}

//emit record
self.logger.emit(log_record);
Expand Down Expand Up @@ -673,66 +673,66 @@ mod tests {
}
}

// #[cfg(feature = "experimental_use_tracing_span_context")]
// #[test]
// fn tracing_appender_inside_tracing_crate_context() {
// use opentelemetry_sdk::trace::InMemorySpanExporterBuilder;
#[cfg(feature = "experimental_use_tracing_span_context")]
#[test]
fn tracing_appender_inside_tracing_crate_context() {
use opentelemetry_sdk::trace::InMemorySpanExporterBuilder;

// // Arrange
// let exporter: InMemoryLogExporter = InMemoryLogExporter::default();
// let logger_provider = SdkLoggerProvider::builder()
// .with_simple_exporter(exporter.clone())
// .build();
// Arrange
let exporter: InMemoryLogExporter = InMemoryLogExporter::default();
let logger_provider = SdkLoggerProvider::builder()
.with_simple_exporter(exporter.clone())
.build();

// // setup tracing layer to compare trace/span IDs against
// let span_exporter = InMemorySpanExporterBuilder::new().build();
// let tracer_provider = SdkTracerProvider::builder()
// .with_simple_exporter(span_exporter.clone())
// .build();
// let tracer = tracer_provider.tracer("test-tracer");
// setup tracing layer to compare trace/span IDs against
let span_exporter = InMemorySpanExporterBuilder::new().build();
let tracer_provider = SdkTracerProvider::builder()
.with_simple_exporter(span_exporter.clone())
.build();
let tracer = tracer_provider.tracer("test-tracer");

// let level_filter = tracing_subscriber::filter::LevelFilter::ERROR;
// let log_layer =
// layer::OpenTelemetryTracingBridge::new(&logger_provider).with_filter(level_filter);
let level_filter = tracing_subscriber::filter::LevelFilter::ERROR;
let log_layer =
layer::OpenTelemetryTracingBridge::new(&logger_provider).with_filter(level_filter);

// let subscriber = tracing_subscriber::registry()
// .with(log_layer)
// .with(tracing_opentelemetry::layer().with_tracer(tracer));
let subscriber = tracing_subscriber::registry()
.with(log_layer)
.with(tracing_opentelemetry::layer().with_tracer(tracer));

// // Avoiding global subscriber.init() as that does not play well with unit tests.
// let _guard = tracing::subscriber::set_default(subscriber);
// Avoiding global subscriber.init() as that does not play well with unit tests.
let _guard = tracing::subscriber::set_default(subscriber);

// // Act
// tracing::error_span!("outer-span").in_scope(|| {
// error!("first-event");
// Act
tracing::error_span!("outer-span").in_scope(|| {
error!("first-event");

// tracing::error_span!("inner-span").in_scope(|| {
// error!("second-event");
// });
// });
tracing::error_span!("inner-span").in_scope(|| {
error!("second-event");
});
});

// assert!(logger_provider.force_flush().is_ok());
assert!(logger_provider.force_flush().is_ok());

// let logs = exporter.get_emitted_logs().expect("No emitted logs");
// assert_eq!(logs.len(), 2, "Expected 2 logs, got: {logs:?}");
let logs = exporter.get_emitted_logs().expect("No emitted logs");
assert_eq!(logs.len(), 2, "Expected 2 logs, got: {logs:?}");

// let spans = span_exporter.get_finished_spans().unwrap();
// assert_eq!(spans.len(), 2);
let spans = span_exporter.get_finished_spans().unwrap();
assert_eq!(spans.len(), 2);

// let trace_id = spans[0].span_context.trace_id();
// assert_eq!(trace_id, spans[1].span_context.trace_id());
// let inner_span_id = spans[0].span_context.span_id();
// let outer_span_id = spans[1].span_context.span_id();
// assert_eq!(outer_span_id, spans[0].parent_span_id);
let trace_id = spans[0].span_context.trace_id();
assert_eq!(trace_id, spans[1].span_context.trace_id());
let inner_span_id = spans[0].span_context.span_id();
let outer_span_id = spans[1].span_context.span_id();
assert_eq!(outer_span_id, spans[0].parent_span_id);

// let trace_ctx0 = logs[0].record.trace_context().unwrap();
// let trace_ctx1 = logs[1].record.trace_context().unwrap();
let trace_ctx0 = logs[0].record.trace_context().unwrap();
let trace_ctx1 = logs[1].record.trace_context().unwrap();

// assert_eq!(trace_ctx0.trace_id, trace_id);
// assert_eq!(trace_ctx1.trace_id, trace_id);
// assert_eq!(trace_ctx0.span_id, outer_span_id);
// assert_eq!(trace_ctx1.span_id, inner_span_id);
// }
assert_eq!(trace_ctx0.trace_id, trace_id);
assert_eq!(trace_ctx1.trace_id, trace_id);
assert_eq!(trace_ctx0.span_id, outer_span_id);
assert_eq!(trace_ctx1.span_id, inner_span_id);
}

#[test]
fn tracing_appender_standalone_with_tracing_log() {
Expand Down