diff --git a/src/components/validation/mod.rs b/src/components/validation/mod.rs index 90723ff416a50..25943db67d1b4 100644 --- a/src/components/validation/mod.rs +++ b/src/components/validation/mod.rs @@ -181,6 +181,7 @@ pub struct RunnerMetrics { pub sent_bytes_total: u64, // a reciprocal for received_bytes_total pub sent_event_bytes_total: u64, pub sent_events_total: u64, + pub discarded_events_total: u64, } #[cfg(all(test, feature = "component-validation-tests"))] diff --git a/src/components/validation/validators/component_spec/sources.rs b/src/components/validation/validators/component_spec/sources.rs index 6c1a3dca88399..b5fc7f2fcea7b 100644 --- a/src/components/validation/validators/component_spec/sources.rs +++ b/src/components/validation/validators/component_spec/sources.rs @@ -14,6 +14,7 @@ pub enum SourceMetricType { ReceivedBytesTotal, SentEventsTotal, SentEventBytesTotal, + EventsDiscardedTotal, } impl SourceMetricType { @@ -24,6 +25,7 @@ impl SourceMetricType { SourceMetricType::ReceivedBytesTotal => "component_received_bytes_total", SourceMetricType::SentEventsTotal => "component_sent_events_total", SourceMetricType::SentEventBytesTotal => "component_sent_event_bytes_total", + SourceMetricType::EventsDiscardedTotal => "component_discarded_events_total", } } } @@ -47,6 +49,7 @@ pub fn validate_sources( validate_component_received_bytes_total, validate_component_sent_events_total, validate_component_sent_event_bytes_total, + validate_component_discarded_events_total, ]; for v in validations.iter() { @@ -226,3 +229,16 @@ fn validate_component_sent_event_bytes_total( expected_bytes, ) } + +fn validate_component_discarded_events_total( + telemetry_events: &[Event], + runner_metrics: &RunnerMetrics, +) -> Result, Vec> { + let expected_dropped = runner_metrics.discarded_events_total; + + validate_events_total( + telemetry_events, + &SourceMetricType::EventsDiscardedTotal, + expected_dropped, + ) +}