From 95119b3dd9a88be0cd17cebc8bcb97d36f2ecb24 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sat, 15 May 2021 14:35:31 +0800 Subject: [PATCH] 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 --- src/crimson/admin/osd_admin.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/crimson/admin/osd_admin.cc b/src/crimson/admin/osd_admin.cc index 511a62d443176..c5920ded7f971 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); -- 2.39.5