]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: report whether we have per-pool stats
authorSage Weil <sage@redhat.com>
Wed, 10 Jul 2019 21:16:57 +0000 (16:16 -0500)
committerSage Weil <sage@redhat.com>
Fri, 12 Jul 2019 22:22:00 +0000 (17:22 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 5f99db7efaa3ec929ca6125709a7838fb1ca773a)

src/messages/MPGStats.h
src/osd/OSD.cc

index ca907a48aa0feace20f71c4aae393a15e2103223..e0a299eb5c877caef56917d80c251404fee74a6e 100644 (file)
@@ -63,6 +63,10 @@ public:
     paxos_decode(p);
     decode(fsid, p);
     decode(osd_stat, p);
+    if (osd_stat.num_osds == 0) {
+      // for the benefit of legacy OSDs who don't set this field
+      osd_stat.num_osds = 1;
+    }
     decode(pg_stat, p);
     decode(epoch, p);
     decode(had_map_for, p);
index 7d4474460b0ad4e93f978e71310980203da12cda..abfdde2f30ba579bcedeae498805a71b3070c6a0 100644 (file)
@@ -7675,6 +7675,7 @@ MPGStats* OSD::collect_pg_stats()
       });
   }
   store_statfs_t st;
+  bool per_pool_stats = false;
   for (auto p : pool_set) {
     int r = store->pool_statfs(p, &st);
     if (r == -ENOTSUP) {
@@ -7682,9 +7683,14 @@ MPGStats* OSD::collect_pg_stats()
     } else {
       assert(r >= 0);
       m->pool_stat[p] = st;
+      per_pool_stats = true;
     }
   }
 
+  // indicate whether we are reporting per-pool stats
+  m->osd_stat.num_osds = 1;
+  m->osd_stat.num_per_pool_osds = per_pool_stats ? 1 : 0;
+
   return m;
 }