From: Kefu Chai Date: Sat, 15 May 2021 06:35:31 +0000 (+0800) Subject: crimson/admin: add optional prefix arg to "perf dump_seastar" X-Git-Tag: v17.1.0~1936^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=95119b3dd9a88be0cd17cebc8bcb97d36f2ecb24;p=ceph.git crimson/admin: add optional prefix arg to "perf dump_seastar" so we can filter the dumped metrics by their prefix Signed-off-by: Kefu Chai --- diff --git a/src/crimson/admin/osd_admin.cc b/src/crimson/admin/osd_admin.cc index 511a62d44317..c5920ded7f97 100644 --- a/src/crimson/admin/osd_admin.cc +++ b/src/crimson/admin/osd_admin.cc @@ -194,7 +194,7 @@ class SeastarMetricsHook : public AdminSocketHook { public: SeastarMetricsHook() : AdminSocketHook("perf dump_seastar", - "", + "name=group,type=CephString,req=false", "dump current configured seastar metrics and their values") {} seastar::future call(const cmdmap_t& cmdmap, @@ -202,8 +202,13 @@ public: ceph::bufferlist&& input) const final { std::unique_ptr f{Formatter::create(format, "json-pretty", "json-pretty")}; + std::string prefix; + cmd_getval(cmdmap, "group", prefix); f->open_object_section("perf_dump_seastar"); for (const auto& [full_name, metric_family]: seastar::scollectd::get_value_map()) { + if (!prefix.empty() && full_name.compare(0, prefix.size(), prefix) != 0) { + continue; + } for (const auto& [labels, metric] : metric_family) { if (metric && metric->is_enabled()) { dump_metric_value(f.get(), full_name, *metric);