From: David Zafman Date: Fri, 20 Dec 2019 23:53:49 +0000 (-0800) Subject: osd_stat_t::dump: Add option for ceph-mgr pythonn callers to skip ping network X-Git-Tag: v15.1.0~358^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=1e2fe722c41d4cc34094afb157b3eb06b4a50972;p=ceph-ci.git osd_stat_t::dump: Add option for ceph-mgr pythonn callers to skip ping network Due to the overhead of this on large clusters, we removed the network information was wasn't getting used anyway. Fixes: https://tracker.ceph.com/issues/43364 Signed-off-by: David Zafman --- diff --git a/src/mgr/ActivePyModules.cc b/src/mgr/ActivePyModules.cc index 5595a2e6607..e30da4cb0dd 100644 --- a/src/mgr/ActivePyModules.cc +++ b/src/mgr/ActivePyModules.cc @@ -373,7 +373,7 @@ PyObject *ActivePyModules::get_python(const std::string &what) cluster_state.with_pgmap( [&f, &tstate](const PGMap &pg_map) { PyEval_RestoreThread(tstate); - pg_map.dump_osd_stats(&f); + pg_map.dump_osd_stats(&f, false); }); return f.get(); } else if (what == "osd_pool_stats") { diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index 722e61f5d74..4991e169a42 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -1595,7 +1595,7 @@ void PGMap::dump_pool_stats(ceph::Formatter *f) const f->close_section(); } -void PGMap::dump_osd_stats(ceph::Formatter *f) const +void PGMap::dump_osd_stats(ceph::Formatter *f, bool with_net) const { f->open_array_section("osd_stats"); for (auto q = osd_stat.begin(); @@ -1603,7 +1603,7 @@ void PGMap::dump_osd_stats(ceph::Formatter *f) const ++q) { f->open_object_section("osd_stat"); f->dump_int("osd", q->first); - q->second.dump(f); + q->second.dump(f, with_net); f->close_section(); } f->close_section(); diff --git a/src/mon/PGMap.h b/src/mon/PGMap.h index 20c1cac2777..b5daf2bb3e9 100644 --- a/src/mon/PGMap.h +++ b/src/mon/PGMap.h @@ -443,7 +443,7 @@ public: void dump_basic(ceph::Formatter *f) const; void dump_pg_stats(ceph::Formatter *f, bool brief) const; void dump_pool_stats(ceph::Formatter *f) const; - void dump_osd_stats(ceph::Formatter *f) const; + void dump_osd_stats(ceph::Formatter *f, bool with_net = true) const; void dump_delta(ceph::Formatter *f) const; void dump_filtered_pg_stats(ceph::Formatter *f, std::set& pgs) const; void dump_pool_stats_full(const OSDMap &osd_map, std::stringstream *ss, diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index 7cf74108ae7..4dd5718cea0 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -392,7 +392,7 @@ void objectstore_perf_stat_t::generate_test_instances(std::listdump_unsigned("up_from", up_from); f->dump_unsigned("seq", seq); @@ -429,6 +429,7 @@ void osd_stat_t::dump(Formatter *f) const f->open_array_section("alerts"); ::dump(f, os_alerts); f->close_section(); + if (with_net) { f->open_array_section("network_ping_times"); for (auto &i : hb_pingtime) { f->open_object_section("entry"); @@ -484,6 +485,7 @@ void osd_stat_t::dump(Formatter *f) const f->close_section(); // entry } f->close_section(); // network_ping_time + } } void osd_stat_t::encode(ceph::buffer::list &bl, uint64_t features) const diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index eb36781306a..4ea24f7f768 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -2409,7 +2409,7 @@ struct osd_stat_t { } } } - void dump(ceph::Formatter *f) const; + void dump(ceph::Formatter *f, bool with_net = true) const; void encode(ceph::buffer::list &bl, uint64_t features) const; void decode(ceph::buffer::list::const_iterator &bl); static void generate_test_instances(std::list& o);