From 5f99db7efaa3ec929ca6125709a7838fb1ca773a Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 10 Jul 2019 16:16:57 -0500 Subject: [PATCH] osd: report whether we have per-pool stats Signed-off-by: Sage Weil --- src/messages/MPGStats.h | 4 ++++ src/osd/OSD.cc | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/messages/MPGStats.h b/src/messages/MPGStats.h index a605c95dcd895..944e536f99542 100644 --- a/src/messages/MPGStats.h +++ b/src/messages/MPGStats.h @@ -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; diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index e034a08de5d6e..1f5f8d4880868 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -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; } -- 2.39.5