From 80dc6a1ec39267f4959100f2c3645c83d62693c9 Mon Sep 17 00:00:00 2001 From: John Spray Date: Sun, 5 Feb 2017 11:26:24 +0000 Subject: [PATCH] osd: wire up "histogram dump" to `tell` ...so that mgr modules can get at it. Signed-off-by: John Spray --- src/osd/OSD.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 72afa48a97ec8..87177a3d75960 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -6013,6 +6013,11 @@ COMMAND("list_missing " \ "name=offset,type=CephString,req=false", "list missing objects on this pg, perhaps starting at an offset given in JSON", "osd", "r", "cli,rest") +COMMAND("perf histogram dump " + "name=logger,type=CephString,req=false " + "name=counter,type=CephString,req=false", + "Get histogram data", + "osd", "r", "cli,rest") // tell commands. Validation of osd.n must be special-cased in client COMMAND("version", "report version of OSD", "osd", "r", "cli,rest") @@ -6449,6 +6454,18 @@ void OSD::do_command(Connection *con, ceph_tid_t tid, vector& cmd, buffe pg_recovery_stats.reset(); } + else if (prefix == "perf histogram dump") { + std::string logger; + std::string counter; + cmd_getval(cct, cmdmap, "logger", logger); + cmd_getval(cct, cmdmap, "counter", counter); + if (f) { + cct->get_perfcounters_collection()->dump_formatted_histograms( + f.get(), false, logger, counter); + f->flush(ds); + } + } + else { ss << "unrecognized command! " << cmd; r = -EINVAL; -- 2.39.5