rsigma_runtime/
metrics.rs1pub trait MetricsHook: Send + Sync {
5 fn on_parse_error(&self);
7 fn on_events_processed(&self, count: u64);
9 fn on_detection_matches(&self, count: u64);
11 fn on_correlation_matches(&self, count: u64);
13 fn observe_processing_latency(&self, seconds: f64);
15 fn on_input_queue_depth_change(&self, delta: i64);
17 fn on_back_pressure(&self);
19 fn observe_batch_size(&self, size: u64);
21 fn on_output_queue_depth_change(&self, delta: i64);
23 fn observe_pipeline_latency(&self, seconds: f64);
25 fn set_correlation_state_entries(&self, count: u64);
27
28 fn on_detection_match_detail(&self, _rule_title: &str, _level: &str) {}
30 fn on_correlation_match_detail(
32 &self,
33 _rule_title: &str,
34 _level: &str,
35 _correlation_type: &str,
36 ) {
37 }
38}
39
40pub struct NoopMetrics;
42
43impl MetricsHook for NoopMetrics {
44 fn on_parse_error(&self) {}
45 fn on_events_processed(&self, _count: u64) {}
46 fn on_detection_matches(&self, _count: u64) {}
47 fn on_correlation_matches(&self, _count: u64) {}
48 fn observe_processing_latency(&self, _seconds: f64) {}
49 fn on_input_queue_depth_change(&self, _delta: i64) {}
50 fn on_back_pressure(&self) {}
51 fn observe_batch_size(&self, _size: u64) {}
52 fn on_output_queue_depth_change(&self, _delta: i64) {}
53 fn observe_pipeline_latency(&self, _seconds: f64) {}
54 fn set_correlation_state_entries(&self, _count: u64) {}
55}