From c168bd79cd570b647759e7290a092659e048167f Mon Sep 17 00:00:00 2001 From: ifuryst Date: Sun, 11 Aug 2024 23:12:32 +0800 Subject: [PATCH 1/2] fix annotation suppression failed when log_namespace is enabled in kubernetes_logs. Signed-off-by: ifuryst --- ...2_consistent_annotation_suppression.fix.md | 3 + lib/vector-core/src/config/mod.rs | 13 +++-- .../kubernetes_logs/pod_metadata_annotator.rs | 58 +++++++++++++++++++ 3 files changed, 69 insertions(+), 5 deletions(-) create mode 100644 changelog.d/20682_consistent_annotation_suppression.fix.md diff --git a/changelog.d/20682_consistent_annotation_suppression.fix.md b/changelog.d/20682_consistent_annotation_suppression.fix.md new file mode 100644 index 0000000000000..2fe545e56991a --- /dev/null +++ b/changelog.d/20682_consistent_annotation_suppression.fix.md @@ -0,0 +1,3 @@ +Fixes an issue where annotation suppression failed when `log_namespace` was set to `true` in kubernetes_logs. + +authors: ifuryst diff --git a/lib/vector-core/src/config/mod.rs b/lib/vector-core/src/config/mod.rs index 985f994c1813a..ce4bf6f237702 100644 --- a/lib/vector-core/src/config/mod.rs +++ b/lib/vector-core/src/config/mod.rs @@ -427,11 +427,14 @@ impl LogNamespace { value: impl Into, ) { match self { - LogNamespace::Vector => { - log.metadata_mut() - .value_mut() - .insert(path!(source_name).concat(metadata_key), value); - } + LogNamespace::Vector => match legacy_key { + None => { /* don't insert */ } + _ => { + log.metadata_mut() + .value_mut() + .insert(path!(source_name).concat(metadata_key), value); + } + }, LogNamespace::Legacy => match legacy_key { None => { /* don't insert */ } Some(LegacyKey::Overwrite(key)) => { diff --git a/src/sources/kubernetes_logs/pod_metadata_annotator.rs b/src/sources/kubernetes_logs/pod_metadata_annotator.rs index 1cb8ca5728b40..05df9b3a044b7 100644 --- a/src/sources/kubernetes_logs/pod_metadata_annotator.rs +++ b/src/sources/kubernetes_logs/pod_metadata_annotator.rs @@ -990,6 +990,64 @@ mod tests { } } + #[test] + fn test_suppress_annotation_fields() { + let cases = vec![ + ( + FieldsSpec { + container_id: OptionalTargetPath::none(), + ..FieldsSpec::default() + }, + ContainerStatus { + container_id: Some("container_id_foo".to_owned()), + image_id: "test_image_id".to_owned(), + ..ContainerStatus::default() + }, + { + let mut log = LogEvent::default(); + log.insert( + event_path!("kubernetes", "container_image_id"), + "test_image_id", + ); + log + }, + LogNamespace::Legacy, + ), + ( + FieldsSpec { + container_id: OptionalTargetPath::none(), + ..FieldsSpec::default() + }, + ContainerStatus { + container_id: Some("container_id_foo".to_owned()), + image_id: "test_image_id".to_owned(), + ..ContainerStatus::default() + }, + { + let mut log = LogEvent::default(); + log.insert( + metadata_path!("kubernetes_logs", "container_image_id"), + "test_image_id", + ); + log + }, + LogNamespace::Vector, + ), + ]; + for (fields_spec, container_status, expected, log_namespace) in cases.into_iter() { + let mut log = LogEvent::default(); + annotate_from_container_status( + &mut log, + &fields_spec, + &container_status, + log_namespace, + ); + println!("{:?}", log); + println!("{:?}", expected); + assert_eq!(log, expected); + } + } + #[test] fn test_annotate_from_container() { let cases = vec![ From 12544b380c9d69fdfc1bcb20ecf945ba4dabf916 Mon Sep 17 00:00:00 2001 From: ifuryst Date: Tue, 13 Aug 2024 10:49:30 +0800 Subject: [PATCH 2/2] delete debug codes. Signed-off-by: ifuryst --- src/sources/kubernetes_logs/pod_metadata_annotator.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/sources/kubernetes_logs/pod_metadata_annotator.rs b/src/sources/kubernetes_logs/pod_metadata_annotator.rs index 05df9b3a044b7..7376d4637f95f 100644 --- a/src/sources/kubernetes_logs/pod_metadata_annotator.rs +++ b/src/sources/kubernetes_logs/pod_metadata_annotator.rs @@ -1042,8 +1042,6 @@ mod tests { &container_status, log_namespace, ); - println!("{:?}", log); - println!("{:?}", expected); assert_eq!(log, expected); } }