From: Zhang Song Date: Fri, 8 Aug 2025 08:58:22 +0000 (+0800) Subject: crimson/os/seastore: make cold rbm cleaner use different metric prefix X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2a5257a04c4187f374089837794daf25c75a9458;p=ceph.git crimson/os/seastore: make cold rbm cleaner use different metric prefix Signed-off-by: Zhang Song Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/os/seastore/async_cleaner.cc b/src/crimson/os/seastore/async_cleaner.cc index dff8bbb96787..febc6e961127 100644 --- a/src/crimson/os/seastore/async_cleaner.cc +++ b/src/crimson/os/seastore/async_cleaner.cc @@ -1962,9 +1962,11 @@ RBMCleaner::RBMCleaner( RBMDeviceGroupRef&& rb_group, BackrefManager &backref_manager, LBAManager &lba_manager, - bool detailed) + bool detailed, + bool is_cold) : store_index(store_index), detailed(detailed), + is_cold(is_cold), rb_group(std::move(rb_group)), backref_manager(backref_manager), lba_manager(lba_manager) @@ -2194,7 +2196,13 @@ void RBMCleaner::register_metrics() { namespace sm = seastar::metrics; - metrics.add_group("rbm_cleaner", { + std::string prefix; + if (is_cold) { + prefix.append("cold_"); + } + prefix.append("rbm_cleaner"); + + metrics.add_group(prefix, { sm::make_counter("total_bytes", [this] { return get_total_bytes(); }, sm::description("the size of the space"), diff --git a/src/crimson/os/seastore/async_cleaner.h b/src/crimson/os/seastore/async_cleaner.h index 095164f32d8f..51c43d6a1aaf 100644 --- a/src/crimson/os/seastore/async_cleaner.h +++ b/src/crimson/os/seastore/async_cleaner.h @@ -1783,17 +1783,19 @@ public: RBMDeviceGroupRef&& rb_group, BackrefManager &backref_manager, LBAManager &lba_manager, - bool detailed); + bool detailed, + bool is_cold); static RBMCleanerRef create( store_index_t store_index, RBMDeviceGroupRef&& rb_group, BackrefManager &backref_manager, LBAManager &lba_manager, - bool detailed) { + bool detailed, + bool is_cold) { return std::make_unique( store_index, - std::move(rb_group), backref_manager, lba_manager, detailed); + std::move(rb_group), backref_manager, lba_manager, detailed, is_cold); } RBMDeviceGroup* get_rb_group() { @@ -1939,6 +1941,7 @@ private: store_index_t store_index; const bool detailed; + const bool is_cold; RBMDeviceGroupRef rb_group; BackrefManager &backref_manager; LBAManager &lba_manager; diff --git a/src/crimson/os/seastore/transaction_manager.cc b/src/crimson/os/seastore/transaction_manager.cc index 8b9facf3f484..cf2b774e4113 100644 --- a/src/crimson/os/seastore/transaction_manager.cc +++ b/src/crimson/os/seastore/transaction_manager.cc @@ -1595,7 +1595,8 @@ TransactionManagerRef make_transaction_manager( std::move(cold_rbs), *backref_manager, *lba_manager, - cleaner_is_detailed); + cleaner_is_detailed, + true); } if (backend_type == backend_type_t::SEGMENTED) { @@ -1623,7 +1624,8 @@ TransactionManagerRef make_transaction_manager( std::move(rbs), *backref_manager, *lba_manager, - cleaner_is_detailed); + cleaner_is_detailed, + false); journal = journal::make_circularbounded( store_index, *journal_trimmer,