]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd_stat_t::dump: Add option for ceph-mgr pythonn callers to skip ping network
authorDavid Zafman <dzafman@redhat.com>
Fri, 20 Dec 2019 23:53:49 +0000 (15:53 -0800)
committerDavid Zafman <dzafman@redhat.com>
Sat, 21 Dec 2019 01:38:14 +0000 (17:38 -0800)
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 <dzafman@redhat.com>
src/mgr/ActivePyModules.cc
src/mon/PGMap.cc
src/mon/PGMap.h
src/osd/osd_types.cc
src/osd/osd_types.h

index 5595a2e66077eec22f1d0ac84348f51edbbe7ccb..e30da4cb0dd27085052925562e639f2ee39ee49e 100644 (file)
@@ -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") {
index 722e61f5d74b91075777dba8171f98958db444bb..4991e169a42e7584cd97d730bf2b50a46c2bef85 100644 (file)
@@ -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();
index 20c1cac2777a40726a823c9879fbc396d6dc3e58..b5daf2bb3e930602b44522deafe21fa8ee8f460b 100644 (file)
@@ -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<pg_t>& pgs) const;
   void dump_pool_stats_full(const OSDMap &osd_map, std::stringstream *ss,
index 7cf74108ae7a46582381d53674e803080a83aead..4dd5718cea041243739d48e7fd494f1603654130 100644 (file)
@@ -392,7 +392,7 @@ void objectstore_perf_stat_t::generate_test_instances(std::list<objectstore_perf
 }
 
 // -- osd_stat_t --
-void osd_stat_t::dump(Formatter *f) const
+void osd_stat_t::dump(Formatter *f, bool with_net) const
 {
   f->dump_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
index eb36781306a56be776c0b465f44940b04952f09d..4ea24f7f7687fd60783a39a3222a10e405aebd6a 100644 (file)
@@ -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<osd_stat_t*>& o);