From a83abd29028a00b0a2894b4688960c6dc8db9b5d Mon Sep 17 00:00:00 2001 From: Bo Wu Date: Wed, 18 Sep 2024 10:03:43 -0700 Subject: [PATCH] use different metric name for each shard --- storage/aptosdb/src/metrics.rs | 57 ++++++++++++------- .../aptosdb/src/rocksdb_property_reporter.rs | 12 ++-- 2 files changed, 42 insertions(+), 27 deletions(-) diff --git a/storage/aptosdb/src/metrics.rs b/storage/aptosdb/src/metrics.rs index b9cf6249dac56b..eee7e3fc8d779f 100644 --- a/storage/aptosdb/src/metrics.rs +++ b/storage/aptosdb/src/metrics.rs @@ -155,29 +155,44 @@ pub static ROCKSDB_PROPERTIES: Lazy = Lazy::new(|| { .unwrap() }); -pub(crate) static STATE_KV_DB_PROPERTIES: Lazy = Lazy::new(|| { - register_int_gauge_vec!( - // metric name - "aptos_state_kv_db_properties", - // metric description - "StateKvDb rocksdb integer properties", - // metric labels (dimensions) - &["shard_id", "cf_name", "property_name",] - ) - .unwrap() +pub(crate) static STATE_KV_DB_PROPERTIES_METRIC_VECTOR: Lazy> = Lazy::new(|| { + (0..16) + .map(|shard_id| { + register_int_gauge_vec!( + // metric name + &format!("aptos_state_kv_db_properties_{}", shard_id), + // metric description + &format!( + "StateKvDb rocksdb integer properties for shard {}", + shard_id + ), + // metric labels (dimensions) + &["cf_name", "property_name"] + ) + .unwrap() + }) + .collect() }); -pub(crate) static STATE_MERKLE_DB_PROPERTIES: Lazy = Lazy::new(|| { - register_int_gauge_vec!( - // metric name - "aptos_state_merkle_db_properties", - // metric description - "StateMerkleDb rocksdb integer properties", - // metric labels (dimensions) - &["shard_id", "cf_name", "property_name",] - ) - .unwrap() -}); +pub(crate) static STATE_MERKLE_DB_PROPERTIES_METRIC_VECTOR: Lazy> = + Lazy::new(|| { + (0..16) + .map(|shard_id| { + register_int_gauge_vec!( + // metric name + &format!("aptos_state_merkle_db_properties_{}", shard_id), + // metric description + &format!( + "StateMerkleDb rocksdb integer properties for shard {}", + shard_id + ), + // metric labels (dimensions) + &["cf_name", "property_name"] + ) + .unwrap() + }) + .collect() + }); // Async committer gauges: pub(crate) static LATEST_SNAPSHOT_VERSION: Lazy = Lazy::new(|| { diff --git a/storage/aptosdb/src/rocksdb_property_reporter.rs b/storage/aptosdb/src/rocksdb_property_reporter.rs index 043cd1e72fff30..956923651017ed 100644 --- a/storage/aptosdb/src/rocksdb_property_reporter.rs +++ b/storage/aptosdb/src/rocksdb_property_reporter.rs @@ -13,8 +13,8 @@ use crate::{ }, ledger_db::LedgerDb, metrics::{ - OTHER_TIMERS_SECONDS, ROCKSDB_PROPERTIES, STATE_KV_DB_PROPERTIES, - STATE_MERKLE_DB_PROPERTIES, + OTHER_TIMERS_SECONDS, ROCKSDB_PROPERTIES, STATE_KV_DB_PROPERTIES_METRIC_VECTOR, + STATE_MERKLE_DB_PROPERTIES_METRIC_VECTOR, }, state_kv_db::StateKvDb, state_merkle_db::StateMerkleDb, @@ -88,11 +88,11 @@ fn set_shard_property( cf_name: &str, db: &DB, db_shard_id: usize, - metrics: &Lazy, + metrics: &Lazy>, ) -> Result<()> { if !skip_reporting_cf(cf_name) { for (rockdb_property_name, aptos_rocksdb_property_name) in &*ROCKSDB_PROPERTY_MAP { - metrics + metrics[db_shard_id] .with_label_values(&[ &format!("{db_shard_id}"), cf_name, @@ -152,7 +152,7 @@ fn update_rocksdb_properties( cf, state_kv_db.db_shard(shard as u8), shard, - &STATE_KV_DB_PROPERTIES, + &STATE_KV_DB_PROPERTIES_METRIC_VECTOR, )?; } } @@ -171,7 +171,7 @@ fn update_rocksdb_properties( cf_name, state_merkle_db.db_shard(shard as u8), shard, - &STATE_MERKLE_DB_PROPERTIES, + &STATE_MERKLE_DB_PROPERTIES_METRIC_VECTOR, )?; } }