X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Ftest%2Fexporter%2Ftest_exporter.cc;h=b607d1afffbed4281a34f42d13a6ca358e0b1819;hb=aee94f6923ba628a85d855d0c5316d0da78bfa2a;hp=83750e0eaf1d353b1fda4aa6d46048b2abe7d701;hpb=27f45121cc74e31203777ad565f78d8aad9b92a2;p=ceph.git diff --git a/ceph/src/test/exporter/test_exporter.cc b/ceph/src/test/exporter/test_exporter.cc index 83750e0ea..b607d1aff 100644 --- a/ceph/src/test/exporter/test_exporter.cc +++ b/ceph/src/test/exporter/test_exporter.cc @@ -1,10 +1,13 @@ #include "gtest/gtest.h" #include "exporter/util.h" +#include "exporter/DaemonMetricCollector.h" #include #include #include +typedef std::map labels_t; + // 17.2.6's memento mori: // This data was gathered from the python implementation of the promethize method // where we transform the path of a counter to a valid prometheus name. @@ -662,3 +665,30 @@ TEST(Exporter, promethize) { } } +TEST(Exporter, check_labels_and_metric_name) { + static std::vector> counters_data; + counters_data.emplace_back("ceph-osd.0", "ceph_osd_numpg"); + counters_data.emplace_back("ceph-client.rgw.foo.ceph-node-00.hrgsea.2.94739968030880", "ceph_rgw_get"); + + static std::vector labels_vec; + labels_vec.emplace_back(labels_t{{"ceph_daemon", "\"osd.0\""}}); + labels_vec.emplace_back(labels_t{{"instance_id", "\"hrgsea\""}}); + auto counter_data_itr = counters_data.begin(); + auto labels_vec_itr = labels_vec.begin(); + for (; counter_data_itr != counters_data.end() && labels_vec_itr != labels_vec.end(); + ++counter_data_itr, ++labels_vec_itr) { + std::string daemon_name = counter_data_itr->first; + std::string counter_name = counter_data_itr->second; + DaemonMetricCollector &collector = collector_instance(); + labels_t result = collector.get_extra_labels(daemon_name); + ASSERT_EQ(result, *labels_vec_itr); + } + // test for fail case with daemon_name.size() < 4 + std::string short_daemon_name = "ceph-client.rgw.foo"; + std::string counter_name = "ceph_rgw_get"; + DaemonMetricCollector &collector = collector_instance(); + labels_t fail_result = collector.get_extra_labels(short_daemon_name); + // This is a special case, the daemon name is not of the required size for fetching instance_id. + // So no labels should be added. + ASSERT_TRUE(fail_result.empty()); +}