libblobd_direct/
metrics.rs1use std::sync::atomic::AtomicU64;
2use std::sync::atomic::Ordering::Relaxed;
3use std::sync::Arc;
4
5#[rustfmt::skip]
6#[derive(Default)]
7pub(crate) struct Inner {
8 pub(crate) commit_op_count: AtomicU64,
10 pub(crate) create_op_count: AtomicU64,
11 pub(crate) delete_op_count: AtomicU64,
12 pub(crate) inspect_op_count: AtomicU64,
13
14 pub(crate) read_op_count: AtomicU64,
15 pub(crate) read_op_bytes_requested: AtomicU64,
16 pub(crate) read_op_bytes_sent: AtomicU64,
17 pub(crate) read_op_bytes_discarded: AtomicU64, pub(crate) write_op_count: AtomicU64,
20 pub(crate) write_op_bytes_requested: AtomicU64,
21 pub(crate) write_op_bytes_written: AtomicU64,
22
23 pub(crate) allocated_bytes: AtomicU64,
25 pub(crate) object_metadata_bytes: AtomicU64, pub(crate) object_data_bytes: AtomicU64, pub(crate) incomplete_object_count: AtomicU64,
29 pub(crate) committed_object_count: AtomicU64,
30}
31
32#[derive(Clone, Default)]
33pub struct BlobdMetrics(pub(crate) Arc<Inner>);
34
35#[rustfmt::skip]
36impl BlobdMetrics {
37 pub fn commit_op_count(&self) -> u64 { self.0.commit_op_count.load(Relaxed) }
38 pub fn create_op_count(&self) -> u64 { self.0.create_op_count.load(Relaxed) }
39 pub fn delete_op_count(&self) -> u64 { self.0.delete_op_count.load(Relaxed) }
40 pub fn inspect_op_count(&self) -> u64 { self.0.inspect_op_count.load(Relaxed) }
41
42 pub fn read_op_count(&self) -> u64 { self.0.read_op_count.load(Relaxed) }
43 pub fn read_op_bytes_requested(&self) -> u64 { self.0.read_op_bytes_requested.load(Relaxed) }
44 pub fn read_op_bytes_sent(&self) -> u64 { self.0.read_op_bytes_sent.load(Relaxed) }
45 pub fn read_op_bytes_discarded(&self) -> u64 { self.0.read_op_bytes_discarded.load(Relaxed) }
46
47 pub fn write_op_count(&self) -> u64 { self.0.write_op_count.load(Relaxed) }
48 pub fn write_op_bytes_requested(&self) -> u64 { self.0.write_op_bytes_requested.load(Relaxed) }
49 pub fn write_op_bytes_written(&self) -> u64 { self.0.write_op_bytes_written.load(Relaxed) }
50
51 pub fn allocated_bytes(&self) -> u64 { self.0.allocated_bytes.load(Relaxed) }
52 pub fn object_metadata_bytes(&self) -> u64 { self.0.object_metadata_bytes.load(Relaxed) }
53 pub fn object_data_bytes(&self) -> u64 { self.0.object_data_bytes.load(Relaxed) }
54
55 pub fn incomplete_object_count(&self) -> u64 { self.0.incomplete_object_count.load(Relaxed) }
56 pub fn committed_object_count(&self) -> u64 { self.0.committed_object_count.load(Relaxed) }
57}