From bf6eefb82f4cf02079c1f1afd15b047586b486a8 Mon Sep 17 00:00:00 2001 From: Francis Dupont Date: Sun, 5 Sep 2021 09:04:01 +0200 Subject: [PATCH] [#2040] Added D2Stats::init --- src/bin/d2/d2_process.cc | 13 ++----------- src/bin/d2/tests/dns_client_unittests.cc | 10 ---------- src/bin/d2/tests/stats_test_utils.cc | 2 ++ src/lib/d2srv/d2_stats.cc | 14 ++++++++++++++ src/lib/d2srv/d2_stats.h | 5 +++++ 5 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/bin/d2/d2_process.cc b/src/bin/d2/d2_process.cc index ebd3865e79..a4a738be24 100644 --- a/src/bin/d2/d2_process.cc +++ b/src/bin/d2/d2_process.cc @@ -16,7 +16,6 @@ #include #include #include -#include using namespace isc::hooks; using namespace isc::process; @@ -66,16 +65,8 @@ D2Process::D2Process(const char* name, const asiolink::IOServicePtr& io_service) D2CfgMgrPtr tmp = getD2CfgMgr(); update_mgr_.reset(new D2UpdateMgr(queue_mgr_, tmp, getIoService())); - // Instantiate stats manager. - // Initialize statistics. - isc::stats::StatsMgr& stats_mgr = isc::stats::StatsMgr::instance(); - stats_mgr.setMaxSampleCountDefault(0); - for (const auto& name : D2Stats::ncr) { - stats_mgr.setValue(name, static_cast(0)); - } - for (const auto& name : D2Stats::update) { - stats_mgr.setValue(name, static_cast(0)); - } + // Initialize stats manager. + D2Stats::init(); }; void diff --git a/src/bin/d2/tests/dns_client_unittests.cc b/src/bin/d2/tests/dns_client_unittests.cc index a2915cb0f4..33369935ab 100644 --- a/src/bin/d2/tests/dns_client_unittests.cc +++ b/src/bin/d2/tests/dns_client_unittests.cc @@ -486,9 +486,6 @@ TEST_F(DNSClientTest, invalidTimeout) { // Verifies that TSIG can be used to sign requests and verify responses. TEST_F(DNSClientTest, runTSIGTest) { - ConstElementPtr stats_all = StatsMgr::instance().getAll(); - ASSERT_TRUE(stats_all); - EXPECT_TRUE(stats_all->empty()); std::string secret ("key number one"); D2TsigKeyPtr key_one; ASSERT_NO_THROW(key_one.reset(new @@ -510,12 +507,6 @@ TEST_F(DNSClientTest, runTSIGTest) { secret.c_str(), secret.size()))); checkStats("two.com.", stats_key); D2TsigKeyPtr nokey; - StatsMgr::instance().setValue("update-sent", 0LL); - StatsMgr::instance().setValue("update-signed", 0LL); - StatsMgr::instance().setValue("update-unsigned", 0LL); - StatsMgr::instance().setValue("update-success", 0LL); - StatsMgr::instance().setValue("update-timeout", 0LL); - StatsMgr::instance().setValue("update-error", 0LL); // Should be able to send and receive with no keys. // Neither client nor server will attempt to sign or verify. @@ -535,7 +526,6 @@ TEST_F(DNSClientTest, runTSIGTest) { runTSIGTest(nokey, key_two); // Check statistics. - stats_all = StatsMgr::instance().getAll(); StatMap stats_one = { { "update-sent", 3}, { "update-success", 1}, diff --git a/src/bin/d2/tests/stats_test_utils.cc b/src/bin/d2/tests/stats_test_utils.cc index 905a765a22..7c8f6df6e3 100644 --- a/src/bin/d2/tests/stats_test_utils.cc +++ b/src/bin/d2/tests/stats_test_utils.cc @@ -5,6 +5,7 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. #include +#include #include using namespace isc::data; @@ -17,6 +18,7 @@ namespace test { D2StatTest::D2StatTest() { StatsMgr::instance().removeAll(); + D2Stats::init(); } D2StatTest::~D2StatTest() { diff --git a/src/lib/d2srv/d2_stats.cc b/src/lib/d2srv/d2_stats.cc index 5c94f4304f..3d3d3b6ff1 100644 --- a/src/lib/d2srv/d2_stats.cc +++ b/src/lib/d2srv/d2_stats.cc @@ -9,8 +9,10 @@ #include #include +#include using namespace std; +using namespace isc::stats; namespace isc { namespace d2 { @@ -40,5 +42,17 @@ D2Stats::key = { "update-error" }; +void +D2Stats::init() { + StatsMgr& stats_mgr = isc::stats::StatsMgr::instance(); + stats_mgr.setMaxSampleCountDefault(0); + for (const auto& name : D2Stats::ncr) { + stats_mgr.setValue(name, static_cast(0)); + } + for (const auto& name : D2Stats::update) { + stats_mgr.setValue(name, static_cast(0)); + } +}; + } // namespace d2 } // namespace isc diff --git a/src/lib/d2srv/d2_stats.h b/src/lib/d2srv/d2_stats.h index be40415e50..4bfd1da7ab 100644 --- a/src/lib/d2srv/d2_stats.h +++ b/src/lib/d2srv/d2_stats.h @@ -40,6 +40,11 @@ public: /// - update-timeout /// - update-error static std::set key; + + /// @brief Initialize D2 statistics. + /// + /// @note: Add default samples if needed. + static void init(); }; } // namespace d2 -- 2.47.3