Skip to content

Commit b474512

Browse files
authored
Merge branch 'main' into cijothomas/context-suppress
2 parents 5ac4cda + e9b27a4 commit b474512

File tree

7 files changed

+89
-78
lines changed

7 files changed

+89
-78
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ sysinfo = "0.32"
7575
tempfile = "3.3.0"
7676
testcontainers = "0.23.1"
7777
tracing-log = "0.2"
78-
tracing-opentelemetry = "0.29"
78+
tracing-opentelemetry = "0.30"
7979
typed-builder = "0.20"
8080
uuid = "1.3"
8181

opentelemetry-appender-tracing/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22

33
## vNext
44

5+
## 0.29.1
6+
7+
Released 2025-Mar-24
8+
9+
- Bump `tracing-opentelemetry` to 0.30
10+
11+
512
## 0.29.0
613

714
Released 2025-Mar-21

opentelemetry-appender-tracing/Cargo.toml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "opentelemetry-appender-tracing"
3-
version = "0.29.0"
3+
version = "0.29.1"
44
edition = "2021"
55
description = "An OpenTelemetry log appender for the tracing crate"
66
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-appender-tracing"
@@ -17,7 +17,7 @@ tracing = { workspace = true, features = ["std"]}
1717
tracing-core = { workspace = true }
1818
tracing-log = { workspace = true, optional = true }
1919
tracing-subscriber = { workspace = true, features = ["registry", "std"] }
20-
# tracing-opentelemetry = { workspace = true, optional = true }
20+
tracing-opentelemetry = { workspace = true, optional = true }
2121

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

4241

4342
[[bench]]

opentelemetry-appender-tracing/src/layer.rs

Lines changed: 66 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -244,25 +244,25 @@ where
244244
// Visit fields.
245245
event.record(&mut visitor);
246246

247-
// #[cfg(feature = "experimental_use_tracing_span_context")]
248-
// if let Some(span) = _ctx.event_span(event) {
249-
// use tracing_opentelemetry::OtelData;
250-
// let opt_span_id = span
251-
// .extensions()
252-
// .get::<OtelData>()
253-
// .and_then(|otd| otd.builder.span_id);
254-
255-
// let opt_trace_id = span.scope().last().and_then(|root_span| {
256-
// root_span
257-
// .extensions()
258-
// .get::<OtelData>()
259-
// .and_then(|otd| otd.builder.trace_id)
260-
// });
261-
262-
// if let Some((trace_id, span_id)) = opt_trace_id.zip(opt_span_id) {
263-
// log_record.set_trace_context(trace_id, span_id, None);
264-
// }
265-
// }
247+
#[cfg(feature = "experimental_use_tracing_span_context")]
248+
if let Some(span) = _ctx.event_span(event) {
249+
use tracing_opentelemetry::OtelData;
250+
let opt_span_id = span
251+
.extensions()
252+
.get::<OtelData>()
253+
.and_then(|otd| otd.builder.span_id);
254+
255+
let opt_trace_id = span.scope().last().and_then(|root_span| {
256+
root_span
257+
.extensions()
258+
.get::<OtelData>()
259+
.and_then(|otd| otd.builder.trace_id)
260+
});
261+
262+
if let Some((trace_id, span_id)) = opt_trace_id.zip(opt_span_id) {
263+
log_record.set_trace_context(trace_id, span_id, None);
264+
}
265+
}
266266

267267
//emit record
268268
self.logger.emit(log_record);
@@ -673,66 +673,66 @@ mod tests {
673673
}
674674
}
675675

676-
// #[cfg(feature = "experimental_use_tracing_span_context")]
677-
// #[test]
678-
// fn tracing_appender_inside_tracing_crate_context() {
679-
// use opentelemetry_sdk::trace::InMemorySpanExporterBuilder;
676+
#[cfg(feature = "experimental_use_tracing_span_context")]
677+
#[test]
678+
fn tracing_appender_inside_tracing_crate_context() {
679+
use opentelemetry_sdk::trace::InMemorySpanExporterBuilder;
680680

681-
// // Arrange
682-
// let exporter: InMemoryLogExporter = InMemoryLogExporter::default();
683-
// let logger_provider = SdkLoggerProvider::builder()
684-
// .with_simple_exporter(exporter.clone())
685-
// .build();
681+
// Arrange
682+
let exporter: InMemoryLogExporter = InMemoryLogExporter::default();
683+
let logger_provider = SdkLoggerProvider::builder()
684+
.with_simple_exporter(exporter.clone())
685+
.build();
686686

687-
// // setup tracing layer to compare trace/span IDs against
688-
// let span_exporter = InMemorySpanExporterBuilder::new().build();
689-
// let tracer_provider = SdkTracerProvider::builder()
690-
// .with_simple_exporter(span_exporter.clone())
691-
// .build();
692-
// let tracer = tracer_provider.tracer("test-tracer");
687+
// setup tracing layer to compare trace/span IDs against
688+
let span_exporter = InMemorySpanExporterBuilder::new().build();
689+
let tracer_provider = SdkTracerProvider::builder()
690+
.with_simple_exporter(span_exporter.clone())
691+
.build();
692+
let tracer = tracer_provider.tracer("test-tracer");
693693

694-
// let level_filter = tracing_subscriber::filter::LevelFilter::ERROR;
695-
// let log_layer =
696-
// layer::OpenTelemetryTracingBridge::new(&logger_provider).with_filter(level_filter);
694+
let level_filter = tracing_subscriber::filter::LevelFilter::ERROR;
695+
let log_layer =
696+
layer::OpenTelemetryTracingBridge::new(&logger_provider).with_filter(level_filter);
697697

698-
// let subscriber = tracing_subscriber::registry()
699-
// .with(log_layer)
700-
// .with(tracing_opentelemetry::layer().with_tracer(tracer));
698+
let subscriber = tracing_subscriber::registry()
699+
.with(log_layer)
700+
.with(tracing_opentelemetry::layer().with_tracer(tracer));
701701

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

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

709-
// tracing::error_span!("inner-span").in_scope(|| {
710-
// error!("second-event");
711-
// });
712-
// });
709+
tracing::error_span!("inner-span").in_scope(|| {
710+
error!("second-event");
711+
});
712+
});
713713

714-
// assert!(logger_provider.force_flush().is_ok());
714+
assert!(logger_provider.force_flush().is_ok());
715715

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

719-
// let spans = span_exporter.get_finished_spans().unwrap();
720-
// assert_eq!(spans.len(), 2);
719+
let spans = span_exporter.get_finished_spans().unwrap();
720+
assert_eq!(spans.len(), 2);
721721

722-
// let trace_id = spans[0].span_context.trace_id();
723-
// assert_eq!(trace_id, spans[1].span_context.trace_id());
724-
// let inner_span_id = spans[0].span_context.span_id();
725-
// let outer_span_id = spans[1].span_context.span_id();
726-
// assert_eq!(outer_span_id, spans[0].parent_span_id);
722+
let trace_id = spans[0].span_context.trace_id();
723+
assert_eq!(trace_id, spans[1].span_context.trace_id());
724+
let inner_span_id = spans[0].span_context.span_id();
725+
let outer_span_id = spans[1].span_context.span_id();
726+
assert_eq!(outer_span_id, spans[0].parent_span_id);
727727

728-
// let trace_ctx0 = logs[0].record.trace_context().unwrap();
729-
// let trace_ctx1 = logs[1].record.trace_context().unwrap();
728+
let trace_ctx0 = logs[0].record.trace_context().unwrap();
729+
let trace_ctx1 = logs[1].record.trace_context().unwrap();
730730

731-
// assert_eq!(trace_ctx0.trace_id, trace_id);
732-
// assert_eq!(trace_ctx1.trace_id, trace_id);
733-
// assert_eq!(trace_ctx0.span_id, outer_span_id);
734-
// assert_eq!(trace_ctx1.span_id, inner_span_id);
735-
// }
731+
assert_eq!(trace_ctx0.trace_id, trace_id);
732+
assert_eq!(trace_ctx1.trace_id, trace_id);
733+
assert_eq!(trace_ctx0.span_id, outer_span_id);
734+
assert_eq!(trace_ctx1.span_id, inner_span_id);
735+
}
736736

737737
#[test]
738738
fn tracing_appender_standalone_with_tracing_log() {

opentelemetry-otlp/src/exporter/tonic/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,7 @@ mod tests {
514514
assert!(tonic::codec::CompressionEncoding::try_from(Compression::Zstd).is_err());
515515
}
516516

517+
#[cfg(feature = "zstd-tonic")]
517518
#[test]
518519
fn test_priority_of_signal_env_over_generic_env_for_compression() {
519520
run_env_test(
@@ -532,6 +533,7 @@ mod tests {
532533
);
533534
}
534535

536+
#[cfg(feature = "zstd-tonic")]
535537
#[test]
536538
fn test_priority_of_code_based_config_over_envs_for_compression() {
537539
run_env_test(

opentelemetry-otlp/tests/integration_test/src/logs_asserter.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
use anyhow::Result;
2-
use opentelemetry_proto::tonic::{
3-
common::v1::KeyValue,
4-
logs::v1::{LogRecord, LogsData, ResourceLogs},
5-
};
2+
#[cfg(feature = "experimental_metadata_attributes")]
3+
use opentelemetry_proto::tonic::common::v1::KeyValue;
4+
use opentelemetry_proto::tonic::logs::v1::{LogRecord, LogsData, ResourceLogs};
65
use std::fs::File;
76

87
// Given two ResourceLogs, assert that they are equal except for the timestamps

opentelemetry-sdk/benches/log_enabled.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
criterion = "0.5.1"
44
Hardware: Apple M4 Pro
55
Total Number of Cores:   14 (10 performance and 4 efficiency)
6-
| Test | Average time|
6+
| Test | Average time|
77
|---------------------------------------------|-------------|
8-
| exporter_disabled_concurrent_processor | 980 ps |
8+
| exporter_disabled_concurrent_processor | 1.1 ns |
99
| exporter_disabled_simple_processor | 4.3 ns |
1010
*/
1111

@@ -57,7 +57,11 @@ where
5757

5858
c.bench_function(name, |b| {
5959
b.iter(|| {
60-
logger.event_enabled(opentelemetry::logs::Severity::Debug, "target", Some("name"));
60+
criterion::black_box(logger.event_enabled(
61+
opentelemetry::logs::Severity::Debug,
62+
"target",
63+
Some("name"),
64+
));
6165
});
6266
});
6367
}

0 commit comments

Comments
 (0)