From 0e772dd8719c74576dd9cf39be7fe395965afc96 Mon Sep 17 00:00:00 2001 From: Gabor Gyimesi Date: Thu, 8 Jun 2023 11:09:09 +0200 Subject: [PATCH] Review update --- .../DatabaseContentRepository.cpp | 21 ++----------------- .../rocksdb-repos/RocksDbRepository.cpp | 21 ++----------------- .../rocksdb-repos/database/OpenRocksDb.cpp | 21 +++++++++++++++++++ .../rocksdb-repos/database/OpenRocksDb.h | 4 ++++ 4 files changed, 29 insertions(+), 38 deletions(-) diff --git a/extensions/rocksdb-repos/DatabaseContentRepository.cpp b/extensions/rocksdb-repos/DatabaseContentRepository.cpp index 61860ae1597..6994a482a08 100644 --- a/extensions/rocksdb-repos/DatabaseContentRepository.cpp +++ b/extensions/rocksdb-repos/DatabaseContentRepository.cpp @@ -287,29 +287,12 @@ uint64_t DatabaseContentRepository::getRepositoryEntryCount() const { } std::optional DatabaseContentRepository::getRocksDbStats() const { - RocksDbStats stats; auto opendb = db_->open(); if (!opendb) { - return stats; + return RocksDbStats{}; } - std::string table_readers; - opendb->GetProperty("rocksdb.estimate-table-readers-mem", &table_readers); - try { - stats.table_readers_size = std::stoull(table_readers); - } catch (const std::exception&) { - logger_->log_error("Could not retrieve valid 'rocksdb.estimate-table-readers-mem' property value from rocksdb content repository!"); - } - - std::string all_memtables; - opendb->GetProperty("rocksdb.cur-size-all-mem-tables", &all_memtables); - try { - stats.all_memory_tables_size = std::stoull(all_memtables); - } catch (const std::exception&) { - logger_->log_error("Could not retrieve valid 'rocksdb.cur-size-all-mem-tables' property value from rocksdb content repository!"); - } - - return stats; + return opendb->getStats(); } REGISTER_RESOURCE_AS(DatabaseContentRepository, InternalResource, ("DatabaseContentRepository", "databasecontentrepository")); diff --git a/extensions/rocksdb-repos/RocksDbRepository.cpp b/extensions/rocksdb-repos/RocksDbRepository.cpp index d21e69988a6..75044b159a3 100644 --- a/extensions/rocksdb-repos/RocksDbRepository.cpp +++ b/extensions/rocksdb-repos/RocksDbRepository.cpp @@ -21,29 +21,12 @@ using namespace std::literals::chrono_literals; namespace org::apache::nifi::minifi::core::repository { std::optional RocksDbRepository::getRocksDbStats() const { - RocksDbStats stats; auto opendb = db_->open(); if (!opendb) { - return stats; + return RocksDbStats{}; } - std::string table_readers; - opendb->GetProperty("rocksdb.estimate-table-readers-mem", &table_readers); - try { - stats.table_readers_size = std::stoull(table_readers); - } catch (const std::exception&) { - logger_->log_error("Could not retrieve valid 'rocksdb.estimate-table-readers-mem' property value from rocksdb content repository!"); - } - - std::string all_memtables; - opendb->GetProperty("rocksdb.cur-size-all-mem-tables", &all_memtables); - try { - stats.all_memory_tables_size = std::stoull(all_memtables); - } catch (const std::exception&) { - logger_->log_error("Could not retrieve valid 'rocksdb.cur-size-all-mem-tables' property value from rocksdb content repository!"); - } - - return stats; + return opendb->getStats(); } bool RocksDbRepository::ExecuteWithRetry(const std::function& operation) { diff --git a/extensions/rocksdb-repos/database/OpenRocksDb.cpp b/extensions/rocksdb-repos/database/OpenRocksDb.cpp index 703c66a399c..b2d4f521f7c 100644 --- a/extensions/rocksdb-repos/database/OpenRocksDb.cpp +++ b/extensions/rocksdb-repos/database/OpenRocksDb.cpp @@ -135,4 +135,25 @@ std::optional OpenRocksDb::getApproximateSizes() const { return std::nullopt; } +minifi::core::RepositoryMetricsSource::RocksDbStats OpenRocksDb::getStats() { + minifi::core::RepositoryMetricsSource::RocksDbStats stats; + std::string table_readers; + GetProperty("rocksdb.estimate-table-readers-mem", &table_readers); + try { + stats.table_readers_size = std::stoull(table_readers); + } catch (const std::exception&) { + logger_->log_error("Could not retrieve valid 'rocksdb.estimate-table-readers-mem' property value from rocksdb content repository!"); + } + + std::string all_memtables; + GetProperty("rocksdb.cur-size-all-mem-tables", &all_memtables); + try { + stats.all_memory_tables_size = std::stoull(all_memtables); + } catch (const std::exception&) { + logger_->log_error("Could not retrieve valid 'rocksdb.cur-size-all-mem-tables' property value from rocksdb content repository!"); + } + + return stats; +} + } // namespace org::apache::nifi::minifi::internal diff --git a/extensions/rocksdb-repos/database/OpenRocksDb.h b/extensions/rocksdb-repos/database/OpenRocksDb.h index b4d96438156..d65aad6895d 100644 --- a/extensions/rocksdb-repos/database/OpenRocksDb.h +++ b/extensions/rocksdb-repos/database/OpenRocksDb.h @@ -27,6 +27,8 @@ #include "rocksdb/db.h" #include "rocksdb/utilities/checkpoint.h" #include "WriteBatch.h" +#include "core/RepositoryMetricsSource.h" +#include "core/logging/LoggerConfiguration.h" namespace org::apache::nifi::minifi::internal { @@ -73,6 +75,7 @@ class OpenRocksDb { rocksdb::DB* get(); std::optional getApproximateSizes() const; + minifi::core::RepositoryMetricsSource::RocksDbStats getStats(); private: void handleResult(const rocksdb::Status& result); @@ -81,6 +84,7 @@ class OpenRocksDb { gsl::not_null db_; gsl::not_null> impl_; gsl::not_null> column_; + std::shared_ptr logger_{minifi::core::logging::LoggerFactory::getLogger()}; }; } // namespace org::apache::nifi::minifi::internal