From: Sage Weil Date: Wed, 10 Jul 2019 21:16:57 +0000 (-0500) Subject: osd: report whether we have per-pool stats X-Git-Tag: v14.2.2~3^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=841710dfdfed739db97004bf64c1dd05b793c330;p=ceph.git osd: report whether we have per-pool stats Signed-off-by: Sage Weil (cherry picked from commit 5f99db7efaa3ec929ca6125709a7838fb1ca773a) --- diff --git a/src/messages/MPGStats.h b/src/messages/MPGStats.h index ca907a48aa0f..e0a299eb5c87 100644 --- a/src/messages/MPGStats.h +++ b/src/messages/MPGStats.h @@ -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); diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 7d4474460b0a..abfdde2f30ba 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -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; }