26 lines
700 B
Rust
26 lines
700 B
Rust
|
use opentelemetry::{global, metrics::*, KeyValue};
|
||
|
|
||
|
/// TableMetrics reference all counter used for metrics
|
||
|
pub struct TableMetrics {
|
||
|
merkle_updater_todo_queue_length: ValueObserver<u64>,
|
||
|
}
|
||
|
impl TableMetrics {
|
||
|
pub fn new(table_name: &'static str, merkle_todo: sled::Tree) -> Self {
|
||
|
let meter = global::meter(table_name);
|
||
|
TableMetrics {
|
||
|
merkle_updater_todo_queue_length: meter
|
||
|
.u64_value_observer(
|
||
|
format!("merkle_updater_todo_queue_length"),
|
||
|
move |observer| {
|
||
|
observer.observe(
|
||
|
merkle_todo.len() as u64,
|
||
|
&[KeyValue::new("table_name", table_name)],
|
||
|
)
|
||
|
},
|
||
|
)
|
||
|
.with_description("Bucket merkle updater TODO queue length")
|
||
|
.init(),
|
||
|
}
|
||
|
}
|
||
|
}
|