#[derive(Default, Debug)]
pub struct WalMetrics {
pub queue_depth: usize,
pub bytes_written: u64,
pub sync_operations: u64,
pub wal_floor_advancements: u64,
pub wal_segments_pruned: u64,
pub wal_prune_dry_runs: u64,
pub wal_prune_failures: u64,
}
impl WalMetrics {
pub fn record_queue_depth(&mut self, depth: usize) {
self.queue_depth = depth;
}
pub fn record_bytes_written(&mut self, bytes: u64) {
self.bytes_written = self.bytes_written.saturating_add(bytes);
}
pub fn record_sync(&mut self) {
self.sync_operations = self.sync_operations.saturating_add(1);
}
pub fn record_wal_floor_advance(&mut self) {
self.wal_floor_advancements = self.wal_floor_advancements.saturating_add(1);
}
pub fn record_wal_pruned(&mut self, segments: u64) {
self.wal_segments_pruned = self.wal_segments_pruned.saturating_add(segments);
}
pub fn record_wal_prune_dry_run(&mut self, segments: u64) {
self.wal_prune_dry_runs = self.wal_prune_dry_runs.saturating_add(segments);
}
pub fn record_wal_prune_failure(&mut self) {
self.wal_prune_failures = self.wal_prune_failures.saturating_add(1);
}
}