pub trait MetricsHook: Send + Sync {
fn on_parse_error(&self);
fn on_events_processed(&self, count: u64);
fn on_detection_matches(&self, count: u64);
fn on_correlation_matches(&self, count: u64);
fn observe_processing_latency(&self, seconds: f64);
fn on_input_queue_depth_change(&self, delta: i64);
fn on_back_pressure(&self);
fn observe_batch_size(&self, size: u64);
fn on_output_queue_depth_change(&self, delta: i64);
fn observe_pipeline_latency(&self, seconds: f64);
fn set_correlation_state_entries(&self, count: u64);
fn on_detection_match_detail(&self, _rule_title: &str, _level: &str) {}
fn on_correlation_match_detail(
&self,
_rule_title: &str,
_level: &str,
_correlation_type: &str,
) {
}
}
pub struct NoopMetrics;
impl MetricsHook for NoopMetrics {
fn on_parse_error(&self) {}
fn on_events_processed(&self, _count: u64) {}
fn on_detection_matches(&self, _count: u64) {}
fn on_correlation_matches(&self, _count: u64) {}
fn observe_processing_latency(&self, _seconds: f64) {}
fn on_input_queue_depth_change(&self, _delta: i64) {}
fn on_back_pressure(&self) {}
fn observe_batch_size(&self, _size: u64) {}
fn on_output_queue_depth_change(&self, _delta: i64) {}
fn observe_pipeline_latency(&self, _seconds: f64) {}
fn set_correlation_state_entries(&self, _count: u64) {}
}