]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: DynamicPerfStats cleanup 30648/head
authorMykola Golub <mgolub@suse.com>
Wed, 18 Sep 2019 14:24:07 +0000 (15:24 +0100)
committerMykola Golub <mgolub@suse.com>
Wed, 2 Oct 2019 14:53:20 +0000 (17:53 +0300)
Signed-off-by: Mykola Golub <mgolub@suse.com>
(cherry picked from commit 0683f4cf8d506a84ca3a596a60132444b86c0e20)

src/osd/DynamicPerfStats.h

index e88b21c9dd04edfbc7556cc81209e8fcb6640881..aaef868451c9055c1d6dc656d790c05e4b2700b9 100644 (file)
@@ -169,10 +169,15 @@ public:
   }
 
   void add_to_reports(
-      const std::map<OSDPerfMetricQuery, OSDPerfMetricLimits> & limits,
+      const std::map<OSDPerfMetricQuery, OSDPerfMetricLimits> &limits,
       std::map<OSDPerfMetricQuery, OSDPerfMetricReport> *reports) {
     for (auto &it : data) {
       auto &query = it.first;
+      auto limit_it = limits.find(query);
+      if (limit_it == limits.end()) {
+        continue;
+      }
+      auto &query_limits = limit_it->second;
       auto &counters = it.second;
       auto &report = (*reports)[query];
 
@@ -182,7 +187,7 @@ public:
       auto &descriptors = report.performance_counter_descriptors;
       ceph_assert(descriptors.size() > 0);
 
-      if (!is_limited(limits.at(query), counters.size())) {
+      if (!is_limited(query_limits, counters.size())) {
         for (auto &it_counters : counters) {
           auto &bl = report.group_packed_performance_counters[it_counters.first];
           query.pack_counters(it_counters.second, &bl);
@@ -190,7 +195,7 @@ public:
         continue;
       }
 
-      for (auto &limit : limits.at(query)) {
+      for (auto &limit : query_limits) {
         size_t index = 0;
         for (; index < descriptors.size(); index++) {
           if (descriptors[index] == limit.order_by) {