Skip to content

Commit daaf16a

Browse files
authored
test(appender-tracing): fix flaky experimental_span_attributes tests (open-telemetry#3422)
1 parent 4eec13b commit daaf16a

File tree

1 file changed

+48
-12
lines changed
  • opentelemetry-appender-tracing/src

1 file changed

+48
-12
lines changed

opentelemetry-appender-tracing/src/layer.rs

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,8 +1077,14 @@ mod tests {
10771077
.with_simple_exporter(exporter.clone())
10781078
.build();
10791079

1080-
let level_filter = tracing_subscriber::filter::LevelFilter::INFO;
1081-
let layer = layer::OpenTelemetryTracingBridge::new(&provider).with_filter(level_filter);
1080+
let layer = layer::OpenTelemetryTracingBridge::new(&provider).with_filter(
1081+
tracing_subscriber::filter::filter_fn(|meta| {
1082+
// Allow spans at any level (needed for on_new_span to store span attributes),
1083+
// but only allow ERROR events to prevent internal otel_info! events from leaking
1084+
// in when internal-logs feature is enabled and tests run in parallel.
1085+
meta.is_span() || *meta.level() <= tracing::Level::ERROR
1086+
}),
1087+
);
10821088
let subscriber = tracing_subscriber::registry().with(layer);
10831089
let _guard = tracing::subscriber::set_default(subscriber);
10841090

@@ -1122,8 +1128,14 @@ mod tests {
11221128
.with_simple_exporter(exporter.clone())
11231129
.build();
11241130

1125-
let level_filter = tracing_subscriber::filter::LevelFilter::INFO;
1126-
let layer = layer::OpenTelemetryTracingBridge::new(&provider).with_filter(level_filter);
1131+
let layer = layer::OpenTelemetryTracingBridge::new(&provider).with_filter(
1132+
tracing_subscriber::filter::filter_fn(|meta| {
1133+
// Allow spans at any level (needed for on_new_span to store span attributes),
1134+
// but only allow ERROR events to prevent internal otel_info! events from leaking
1135+
// in when internal-logs feature is enabled and tests run in parallel.
1136+
meta.is_span() || *meta.level() <= tracing::Level::ERROR
1137+
}),
1138+
);
11271139
let subscriber = tracing_subscriber::registry().with(layer);
11281140
let _guard = tracing::subscriber::set_default(subscriber);
11291141

@@ -1177,8 +1189,14 @@ mod tests {
11771189
.with_simple_exporter(exporter.clone())
11781190
.build();
11791191

1180-
let level_filter = tracing_subscriber::filter::LevelFilter::INFO;
1181-
let layer = layer::OpenTelemetryTracingBridge::new(&provider).with_filter(level_filter);
1192+
let layer = layer::OpenTelemetryTracingBridge::new(&provider).with_filter(
1193+
tracing_subscriber::filter::filter_fn(|meta| {
1194+
// Allow spans at any level (needed for on_new_span to store span attributes),
1195+
// but only allow ERROR events to prevent internal otel_info! events from leaking
1196+
// in when internal-logs feature is enabled and tests run in parallel.
1197+
meta.is_span() || *meta.level() <= tracing::Level::ERROR
1198+
}),
1199+
);
11821200
let subscriber = tracing_subscriber::registry().with(layer);
11831201
let _guard = tracing::subscriber::set_default(subscriber);
11841202

@@ -1283,8 +1301,14 @@ mod tests {
12831301
.with_simple_exporter(exporter.clone())
12841302
.build();
12851303

1286-
let level_filter = tracing_subscriber::filter::LevelFilter::INFO;
1287-
let layer = layer::OpenTelemetryTracingBridge::new(&provider).with_filter(level_filter);
1304+
let layer = layer::OpenTelemetryTracingBridge::new(&provider).with_filter(
1305+
tracing_subscriber::filter::filter_fn(|meta| {
1306+
// Allow spans at any level (needed for on_new_span to store span attributes),
1307+
// but only allow ERROR events to prevent internal otel_info! events from leaking
1308+
// in when internal-logs feature is enabled and tests run in parallel.
1309+
meta.is_span() || *meta.level() <= tracing::Level::ERROR
1310+
}),
1311+
);
12881312
let subscriber = tracing_subscriber::registry().with(layer);
12891313
let _guard = tracing::subscriber::set_default(subscriber);
12901314

@@ -1343,7 +1367,10 @@ mod tests {
13431367

13441368
let layer = layer::OpenTelemetryTracingBridge::builder(&provider)
13451369
.with_span_attribute_allowlist(["session.id"])
1346-
.build();
1370+
.build()
1371+
.with_filter(tracing_subscriber::filter::filter_fn(|meta| {
1372+
meta.is_span() || *meta.level() <= tracing::Level::ERROR
1373+
}));
13471374
let subscriber = tracing_subscriber::registry().with(layer);
13481375
let _guard = tracing::subscriber::set_default(subscriber);
13491376

@@ -1377,7 +1404,10 @@ mod tests {
13771404

13781405
let layer = layer::OpenTelemetryTracingBridge::builder(&provider)
13791406
.with_span_attribute_allowlist(["session.id"])
1380-
.build();
1407+
.build()
1408+
.with_filter(tracing_subscriber::filter::filter_fn(|meta| {
1409+
meta.is_span() || *meta.level() <= tracing::Level::ERROR
1410+
}));
13811411
let subscriber = tracing_subscriber::registry().with(layer);
13821412
let _guard = tracing::subscriber::set_default(subscriber);
13831413

@@ -1421,7 +1451,10 @@ mod tests {
14211451

14221452
let layer = layer::OpenTelemetryTracingBridge::builder(&provider)
14231453
.with_span_attribute_allowlist(std::iter::empty::<&str>())
1424-
.build();
1454+
.build()
1455+
.with_filter(tracing_subscriber::filter::filter_fn(|meta| {
1456+
meta.is_span() || *meta.level() <= tracing::Level::ERROR
1457+
}));
14251458
let subscriber = tracing_subscriber::registry().with(layer);
14261459
let _guard = tracing::subscriber::set_default(subscriber);
14271460

@@ -1456,7 +1489,10 @@ mod tests {
14561489

14571490
let layer = layer::OpenTelemetryTracingBridge::builder(&provider)
14581491
.with_span_attribute_allowlist(["session.id"])
1459-
.build();
1492+
.build()
1493+
.with_filter(tracing_subscriber::filter::filter_fn(|meta| {
1494+
meta.is_span() || *meta.level() <= tracing::Level::ERROR
1495+
}));
14601496
let subscriber = tracing_subscriber::registry().with(layer);
14611497
let _guard = tracing::subscriber::set_default(subscriber);
14621498

0 commit comments

Comments
 (0)