]> 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>
Wed, 10 Jul 2019 22:12:34 +0000 (17:12 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/messages/MPGStats.h
src/osd/OSD.cc

index a605c95dcd8958eb919e40bfba6fb16abb8dbe93..944e536f99542909eb1a5bc2feecef4c39ea915a 100644 (file)
@@ -61,6 +61,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);
     utime_t dummy;
index e034a08de5d6e77c74c439a23094f39ac97a0aac..1f5f8d48808688873caa83c9674b85e3155a57ec 100644 (file)
@@ -7389,6 +7389,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) {
@@ -7396,9 +7397,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;
 }