pub struct ProcessorMetrics {Show 37 fields
pub events_received_total: Counter<u64, AtomicU64>,
pub events_processed_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub event_processing_duration_seconds: Family<Vec<(String, String)>, Histogram>,
pub pipeline_lag_seconds: Gauge<f64, AtomicU64>,
pub backpressure_events: Gauge<i64, AtomicI64>,
pub windows_created_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub windows_triggered_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub windows_active: Family<Vec<(String, String)>, Gauge<i64, AtomicI64>>,
pub window_size_events: Family<Vec<(String, String)>, Histogram>,
pub late_events_total: Counter<u64, AtomicU64>,
pub aggregations_computed_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub aggregation_duration_seconds: Family<Vec<(String, String)>, Histogram>,
pub aggregation_errors_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub state_operations_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub state_operation_duration_seconds: Family<Vec<(String, String)>, Histogram>,
pub state_cache_hits_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub state_cache_misses_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub state_size_bytes: Family<Vec<(String, String)>, Gauge<i64, AtomicI64>>,
pub state_evictions_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub dedup_events_checked_total: Counter<u64, AtomicU64>,
pub dedup_duplicates_found_total: Counter<u64, AtomicU64>,
pub dedup_cache_size: Gauge<i64, AtomicI64>,
pub dedup_cache_evictions_total: Counter<u64, AtomicU64>,
pub normalization_events_total: Counter<u64, AtomicU64>,
pub normalization_fill_operations_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub normalization_gaps_filled_total: Counter<u64, AtomicU64>,
pub normalization_outliers_detected_total: Counter<u64, AtomicU64>,
pub watermark_lag_seconds: Gauge<f64, AtomicU64>,
pub watermark_updates_total: Counter<u64, AtomicU64>,
pub out_of_order_events_total: Counter<u64, AtomicU64>,
pub kafka_messages_consumed_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub kafka_messages_produced_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub kafka_consumer_lag: Family<Vec<(String, String)>, Gauge<i64, AtomicI64>>,
pub kafka_offset_commit_errors_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub pipeline_errors_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>,
pub pipeline_operators_active: Gauge<i64, AtomicI64>,
pub operator_duration_seconds: Family<Vec<(String, String)>, Histogram>,
}Expand description
Comprehensive metrics for the Stream Processor
Fields§
§events_received_total: Counter<u64, AtomicU64>Total number of events received by the processor
events_processed_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Total number of events processed, labeled by result (success/error/dropped/filtered)
event_processing_duration_seconds: Family<Vec<(String, String)>, Histogram>Duration of event processing in seconds
pipeline_lag_seconds: Gauge<f64, AtomicU64>Current pipeline lag in seconds
backpressure_events: Gauge<i64, AtomicI64>Number of backpressure events (queued events)
windows_created_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Total number of windows created
windows_triggered_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Total number of windows triggered
windows_active: Family<Vec<(String, String)>, Gauge<i64, AtomicI64>>Number of currently active windows
window_size_events: Family<Vec<(String, String)>, Histogram>Distribution of window sizes (number of events)
late_events_total: Counter<u64, AtomicU64>Total number of late events (arriving after watermark)
aggregations_computed_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Total number of aggregations computed
aggregation_duration_seconds: Family<Vec<(String, String)>, Histogram>Duration of aggregation computation in seconds
aggregation_errors_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Total number of aggregation errors
state_operations_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Total number of state operations
state_operation_duration_seconds: Family<Vec<(String, String)>, Histogram>Duration of state operations in seconds
state_cache_hits_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Total number of state cache hits
state_cache_misses_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Total number of state cache misses
state_size_bytes: Family<Vec<(String, String)>, Gauge<i64, AtomicI64>>Current size of state in bytes
state_evictions_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Total number of state evictions
dedup_events_checked_total: Counter<u64, AtomicU64>Total number of events checked for deduplication
dedup_duplicates_found_total: Counter<u64, AtomicU64>Total number of duplicate events found
dedup_cache_size: Gauge<i64, AtomicI64>Current size of deduplication cache
dedup_cache_evictions_total: Counter<u64, AtomicU64>Total number of deduplication cache evictions
normalization_events_total: Counter<u64, AtomicU64>Total number of events normalized
normalization_fill_operations_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Total number of fill operations performed
normalization_gaps_filled_total: Counter<u64, AtomicU64>Total number of gaps filled in time series
normalization_outliers_detected_total: Counter<u64, AtomicU64>Total number of outliers detected
watermark_lag_seconds: Gauge<f64, AtomicU64>Current watermark lag in seconds
watermark_updates_total: Counter<u64, AtomicU64>Total number of watermark updates
out_of_order_events_total: Counter<u64, AtomicU64>Total number of out-of-order events
kafka_messages_consumed_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Total number of messages consumed from Kafka
kafka_messages_produced_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Total number of messages produced to Kafka
kafka_consumer_lag: Family<Vec<(String, String)>, Gauge<i64, AtomicI64>>Kafka consumer lag (messages)
kafka_offset_commit_errors_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Kafka offset commit errors
pipeline_errors_total: Family<Vec<(String, String)>, Counter<u64, AtomicU64>>Total number of pipeline errors
pipeline_operators_active: Gauge<i64, AtomicI64>Number of active pipeline operators
operator_duration_seconds: Family<Vec<(String, String)>, Histogram>Duration of operator execution in seconds
Implementations§
Source§impl ProcessorMetrics
impl ProcessorMetrics
Sourcepub fn new(registry: &mut Registry) -> Self
pub fn new(registry: &mut Registry) -> Self
Create a new ProcessorMetrics instance and register all metrics
Sourcepub fn record_event_received(&self)
pub fn record_event_received(&self)
Record an event being received
Sourcepub fn record_event_processed(&self, result: ResultLabel)
pub fn record_event_processed(&self, result: ResultLabel)
Record an event being processed
Sourcepub fn record_event_processing_duration(
&self,
duration_secs: f64,
result: ResultLabel,
)
pub fn record_event_processing_duration( &self, duration_secs: f64, result: ResultLabel, )
Record event processing duration
Sourcepub fn set_pipeline_lag(&self, lag_secs: f64)
pub fn set_pipeline_lag(&self, lag_secs: f64)
Update pipeline lag
Sourcepub fn set_backpressure_events(&self, count: i64)
pub fn set_backpressure_events(&self, count: i64)
Update backpressure events count
Sourcepub fn record_window_created(&self, window_type: WindowTypeLabel)
pub fn record_window_created(&self, window_type: WindowTypeLabel)
Record window creation
Sourcepub fn record_window_triggered(&self, window_type: WindowTypeLabel)
pub fn record_window_triggered(&self, window_type: WindowTypeLabel)
Record window trigger
Sourcepub fn set_windows_active(&self, window_type: WindowTypeLabel, count: i64)
pub fn set_windows_active(&self, window_type: WindowTypeLabel, count: i64)
Update active windows count
Sourcepub fn record_window_size(&self, window_type: WindowTypeLabel, size: f64)
pub fn record_window_size(&self, window_type: WindowTypeLabel, size: f64)
Record window size
Sourcepub fn record_late_event(&self)
pub fn record_late_event(&self)
Record late event
Sourcepub fn record_state_operation(
&self,
operation: OperationLabel,
backend: BackendLabel,
duration_secs: f64,
)
pub fn record_state_operation( &self, operation: OperationLabel, backend: BackendLabel, duration_secs: f64, )
Record state operation
Sourcepub fn record_state_cache_hit(&self, layer: CacheLayerLabel)
pub fn record_state_cache_hit(&self, layer: CacheLayerLabel)
Record state cache hit
Sourcepub fn record_state_cache_miss(&self, layer: CacheLayerLabel)
pub fn record_state_cache_miss(&self, layer: CacheLayerLabel)
Record state cache miss
Sourcepub fn set_state_size_bytes(&self, backend: BackendLabel, size: i64)
pub fn set_state_size_bytes(&self, backend: BackendLabel, size: i64)
Update state size
Sourcepub fn record_dedup_check(&self, is_duplicate: bool)
pub fn record_dedup_check(&self, is_duplicate: bool)
Record deduplication check
Sourcepub fn set_dedup_cache_size(&self, size: i64)
pub fn set_dedup_cache_size(&self, size: i64)
Update deduplication cache size
Sourcepub fn record_normalization_fill(&self, strategy: StrategyLabel)
pub fn record_normalization_fill(&self, strategy: StrategyLabel)
Record normalization fill operation
Sourcepub fn set_watermark_lag(&self, lag_secs: f64)
pub fn set_watermark_lag(&self, lag_secs: f64)
Update watermark lag
Sourcepub fn record_watermark_update(&self)
pub fn record_watermark_update(&self)
Record watermark update
Sourcepub fn record_out_of_order_event(&self)
pub fn record_out_of_order_event(&self)
Record out-of-order event
Auto Trait Implementations§
impl !RefUnwindSafe for ProcessorMetrics
impl !UnwindSafe for ProcessorMetrics
impl Freeze for ProcessorMetrics
impl Send for ProcessorMetrics
impl Sync for ProcessorMetrics
impl Unpin for ProcessorMetrics
impl UnsafeUnpin for ProcessorMetrics
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.