diff --git a/rust/telemetry/src/lib.rs b/rust/telemetry/src/lib.rs index c8aa953f3..685763fa9 100644 --- a/rust/telemetry/src/lib.rs +++ b/rust/telemetry/src/lib.rs @@ -388,6 +388,10 @@ fn append_tracing_fields_to_message(mut log: Log) -> Option { None => &key, }; + if log.attributes.contains_key(key) { + continue; + } + log.body.push_str(&format!(" {key}={attr_string}")); log.attributes.insert(key.to_owned(), attribute); } @@ -508,6 +512,15 @@ mod tests { ) } + #[test] + fn does_not_append_same_attribute_twice() { + let log = log("Foobar", &[("handle_input:cid", "1234"), ("cid", "1234")]); + + let log = append_tracing_fields_to_message(log).unwrap(); + + assert_eq!(log.body, "Foobar cid=1234") + } + #[test] fn trims_name_of_span_from_attribute() { let log = log(