From 29c2a7690cc9d1e8ea90fb2b5543ed5901acc22c Mon Sep 17 00:00:00 2001 From: Nikhil Sinha Date: Tue, 18 Feb 2025 08:44:42 -0500 Subject: [PATCH 1/3] fix: otel traces flattening fix flatten otel traces for empty `Events` or `Links` object in span --- src/otel/traces.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/otel/traces.rs b/src/otel/traces.rs index e1ce3406a..b5998ec9f 100644 --- a/src/otel/traces.rs +++ b/src/otel/traces.rs @@ -293,9 +293,13 @@ fn flatten_span_record(span_record: &Span) -> Vec> { span_record_json.extend(flatten_status(status)); } - for span_json in &mut span_records_json { - for (key, value) in &span_record_json { - span_json.insert(key.clone(), value.clone()); + if span_records_json.is_empty() { + span_records_json = vec![span_record_json]; + } else { + for span_json in &mut span_records_json { + for (key, value) in &span_record_json { + span_json.insert(key.clone(), value.clone()); + } } } From b4e79450184cdda9399db58403c1233c7d7e74d1 Mon Sep 17 00:00:00 2001 From: Nikhil Sinha <131262146+nikhilsinhaparseable@users.noreply.github.com> Date: Tue, 18 Feb 2025 20:14:15 +0530 Subject: [PATCH 2/3] Add comments Signed-off-by: Nikhil Sinha <131262146+nikhilsinhaparseable@users.noreply.github.com> --- src/otel/traces.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/otel/traces.rs b/src/otel/traces.rs index b5998ec9f..f0bedd90f 100644 --- a/src/otel/traces.rs +++ b/src/otel/traces.rs @@ -292,7 +292,9 @@ fn flatten_span_record(span_record: &Span) -> Vec> { if let Some(status) = &span_record.status { span_record_json.extend(flatten_status(status)); } - + + // if span_record.events is null, code should still flatten other elements in the span record - this is handled in the if block + // else block handles the flattening the span record that includes events and links records in each span record if span_records_json.is_empty() { span_records_json = vec![span_record_json]; } else { From 0b54f71ee6cb6024ee644d0027176af51ea320eb Mon Sep 17 00:00:00 2001 From: Nikhil Sinha Date: Tue, 18 Feb 2025 09:47:58 -0500 Subject: [PATCH 3/3] fmt changes --- src/otel/traces.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/otel/traces.rs b/src/otel/traces.rs index f0bedd90f..ebea012a6 100644 --- a/src/otel/traces.rs +++ b/src/otel/traces.rs @@ -292,7 +292,7 @@ fn flatten_span_record(span_record: &Span) -> Vec> { if let Some(status) = &span_record.status { span_record_json.extend(flatten_status(status)); } - + // if span_record.events is null, code should still flatten other elements in the span record - this is handled in the if block // else block handles the flattening the span record that includes events and links records in each span record if span_records_json.is_empty() {