use crate::config::ColumnFamilyConfig;
#[derive(Debug, Clone)]
pub struct Stats {
pub num_levels: i32,
pub memtable_size: usize,
pub level_sizes: Vec<usize>,
pub level_num_sstables: Vec<i32>,
pub config: Option<ColumnFamilyConfig>,
pub total_keys: u64,
pub total_data_size: u64,
pub avg_key_size: f64,
pub avg_value_size: f64,
pub level_key_counts: Vec<u64>,
pub read_amp: f64,
pub hit_rate: f64,
pub use_btree: bool,
pub btree_total_nodes: u64,
pub btree_max_height: u32,
pub btree_avg_height: f64,
}
#[derive(Debug, Clone)]
pub struct DbStats {
pub num_column_families: i32,
pub total_memory: u64,
pub available_memory: u64,
pub resolved_memory_limit: usize,
pub memory_pressure_level: i32,
pub flush_pending_count: i32,
pub total_memtable_bytes: i64,
pub total_immutable_count: i32,
pub total_sstable_count: i32,
pub total_data_size_bytes: u64,
pub num_open_sstables: i32,
pub global_seq: u64,
pub txn_memory_bytes: i64,
pub compaction_queue_size: usize,
pub flush_queue_size: usize,
pub unified_memtable_enabled: bool,
pub unified_memtable_bytes: i64,
pub unified_immutable_count: i32,
pub unified_is_flushing: bool,
pub unified_next_cf_index: u32,
pub unified_wal_generation: u64,
pub object_store_enabled: bool,
pub object_store_connector: String,
pub local_cache_bytes_used: usize,
pub local_cache_bytes_max: usize,
pub local_cache_num_files: i32,
pub last_uploaded_generation: u64,
pub upload_queue_depth: usize,
pub total_uploads: u64,
pub total_upload_failures: u64,
pub replica_mode: bool,
}
#[derive(Debug, Clone)]
pub struct CacheStats {
pub enabled: bool,
pub total_entries: usize,
pub total_bytes: usize,
pub hits: usize,
pub misses: usize,
pub hit_rate: f64,
pub num_partitions: usize,
}