From 841710dfdfed739db97004bf64c1dd05b793c330 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 (cherry picked from commit 5f99db7efaa3ec929ca6125709a7838fb1ca773a) --- 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 ca907a48aa0fe..e0a299eb5c877 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 7d4474460b0ad..abfdde2f30ba5 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; } -- 2.39.5