From 99f1a22b9d7753d8eaad094a1e05fd968a6b54d2 Mon Sep 17 00:00:00 2001 From: Yueh-Hsuan Chiang <93241502+yhchiang-sol@users.noreply.github.com> Date: Thu, 10 Mar 2022 23:13:59 -0800 Subject: [PATCH] (LedgerStore) Generalize RocksDB metric reporting macro (#23580) #### Summary of Changes This PR generalizes RocksDB metric reporting macro so that future RocksDB metrics can reuse the same macro. --- ledger/src/blockstore.rs | 101 +++++++++++++++++++++++++++++---------- 1 file changed, 75 insertions(+), 26 deletions(-) diff --git a/ledger/src/blockstore.rs b/ledger/src/blockstore.rs index eaf271dcc..cb52a6c64 100644 --- a/ledger/src/blockstore.rs +++ b/ledger/src/blockstore.rs @@ -518,6 +518,13 @@ impl BlockstoreRocksDbColumnFamilyMetrics { } } +macro_rules! rocksdb_metric_header { + ($metric_name:literal, $cf_name:literal) => { + concat!($metric_name, ",cf_name=", $cf_name) + }; +} +use rocksdb_metric_header; + impl Blockstore { pub fn db(self) -> Arc { self.db @@ -937,33 +944,82 @@ impl Blockstore { /// Collects and reports [`BlockstoreRocksDbColumnFamilyMetrics`] for the /// all the column families. pub fn submit_rocksdb_cf_metrics_for_all_cfs(&self) { - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("slot_meta")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("dead_slots")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("duplicate_slots")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("erasure_meta")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("orphans")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("bank_hash")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("root")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("index")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("shred_data")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("shred_code")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!( + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "slot_meta" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "dead_slots" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "duplicate_slots" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "erasure_meta" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "orphans" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "bank_hash" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "root" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "index" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "shred_data" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "shred_code" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", "transaction_status" )); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!( + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", "address_signature" )); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!( + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", "transaction_memos" )); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!( + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", "transaction_status_index" )); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("rewards")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("blocktime")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("perf_sample")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("block_height")); - self.submit_rocksdb_cf_metrics::(rocksdb_cf_metric!("program_costs")); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "rewards" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "blocktime" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "perf_sample" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "block_height" + )); + self.submit_rocksdb_cf_metrics::(rocksdb_metric_header!( + "blockstore_rocksdb_cfs", + "program_costs" + )); } /// Collects and reports [`BlockstoreRocksDbColumnFamilyMetrics`] for the @@ -4202,13 +4258,6 @@ macro_rules! get_tmp_ledger_path_auto_delete { }; } -macro_rules! rocksdb_cf_metric { - ($tag_name:literal) => { - concat!("blockstore_rocksdb_cfs,cf_name=", $tag_name) - }; -} -use rocksdb_cf_metric; - pub fn get_ledger_path_from_name_auto_delete(name: &str) -> TempDir { let mut path = get_ledger_path_from_name(name); // path is a directory so .file_name() returns the last component of the path