Skip to content

Commit 69b4c1c

Browse files
authored
fix(sample transform): Use metadata when log namespacing is enabled (#18259)
fix sample transform when using log namespacing
1 parent fc17fba commit 69b4c1c

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

src/transforms/sample.rs

+23-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use vector_config::configurable_component;
2-
use vector_core::config::LogNamespace;
3-
use vrl::event_path;
2+
use vector_core::config::{LegacyKey, LogNamespace};
3+
use vrl::value::Kind;
4+
use vrl::{event_path, owned_value_path};
45

56
use crate::{
67
conditions::{AnyCondition, Condition},
@@ -85,7 +86,18 @@ impl TransformConfig for SampleConfig {
8586
DataType::Log | DataType::Trace,
8687
input_definitions
8788
.iter()
88-
.map(|(output, definition)| (output.clone(), definition.clone()))
89+
.map(|(output, definition)| {
90+
(
91+
output.clone(),
92+
definition.clone().with_source_metadata(
93+
SampleConfig::NAME,
94+
Some(LegacyKey::Overwrite(owned_value_path!("sample_rate"))),
95+
&owned_value_path!("sample_rate"),
96+
Kind::bytes(),
97+
None,
98+
),
99+
)
100+
})
89101
.collect(),
90102
)]
91103
}
@@ -153,10 +165,16 @@ impl FunctionTransform for Sample {
153165
if num % self.rate == 0 {
154166
match event {
155167
Event::Log(ref mut event) => {
156-
event.insert(event_path!("sample_rate"), self.rate.to_string())
168+
event.namespace().insert_source_metadata(
169+
SampleConfig::NAME,
170+
event,
171+
Some(LegacyKey::Overwrite(vrl::path!("sample_rate"))),
172+
vrl::path!("sample_rate"),
173+
self.rate.to_string(),
174+
);
157175
}
158176
Event::Trace(ref mut event) => {
159-
event.insert(event_path!("sample_rate"), self.rate.to_string())
177+
event.insert(event_path!("sample_rate"), self.rate.to_string());
160178
}
161179
Event::Metric(_) => panic!("component can never receive metric events"),
162180
};

0 commit comments

Comments
 (0)