Skip to content

Commit 02d02d8

Browse files
committed
perf: make on_event use builder again if possible
1 parent 0348e93 commit 02d02d8

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

src/layer.rs

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1235,21 +1235,6 @@ where
12351235
let mut extensions = span.extensions_mut();
12361236

12371237
if let Some(otel_data) = extensions.get_mut::<OtelData>() {
1238-
self.start_cx(otel_data);
1239-
let span = otel_data.parent_cx.span();
1240-
1241-
// TODO:ban fix this with accessor in SpanRef that can check the span status
1242-
// if builder.status == otel::Status::Unset
1243-
// && *meta.level() == tracing_core::Level::ERROR
1244-
// There is no test that checks this behavior
1245-
if *meta.level() == tracing_core::Level::ERROR {
1246-
span.set_status(otel::Status::error(""));
1247-
}
1248-
1249-
if let Some(builder_updates) = builder_updates {
1250-
builder_updates.update_span(&span);
1251-
}
1252-
12531238
if self.location {
12541239
#[cfg(not(feature = "tracing-log"))]
12551240
let normalized_meta: Option<tracing_core::Metadata<'_>> = None;
@@ -1281,7 +1266,31 @@ where
12811266
}
12821267
}
12831268

1284-
span.add_event(otel_event.name, otel_event.attributes);
1269+
if let Some(builder) = otel_data.builder.as_mut() {
1270+
if builder.status == otel::Status::Unset
1271+
&& *meta.level() == tracing_core::Level::ERROR
1272+
{
1273+
builder.status = otel::Status::error("");
1274+
}
1275+
if let Some(builder_updates) = builder_updates {
1276+
builder_updates.apply(builder);
1277+
}
1278+
if let Some(ref mut events) = builder.events {
1279+
events.push(otel_event);
1280+
} else {
1281+
builder.events = Some(vec![otel_event]);
1282+
}
1283+
} else {
1284+
let span = otel_data.parent_cx.span();
1285+
// TODO:ban fix this with accessor in SpanRef that can check the span status
1286+
if *meta.level() == tracing_core::Level::ERROR {
1287+
span.set_status(otel::Status::error(""));
1288+
}
1289+
if let Some(builder_updates) = builder_updates {
1290+
builder_updates.update_span(&span);
1291+
}
1292+
span.add_event(otel_event.name, otel_event.attributes);
1293+
}
12851294
}
12861295
};
12871296
}

0 commit comments

Comments
 (0)