From d3ce716907a45b0f0f29f3cf5fc1f84b0e5f8c34 Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Mon, 16 May 2022 14:32:09 +0800 Subject: [PATCH] crimson/admin: deal with seastar's new metric types/logics Fixes: https://tracker.ceph.com/issues/55666 Signed-off-by: Xuehan Xu --- src/crimson/admin/osd_admin.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/crimson/admin/osd_admin.cc b/src/crimson/admin/osd_admin.cc index 79ca6e853d821..970010c970c9d 100644 --- a/src/crimson/admin/osd_admin.cc +++ b/src/crimson/admin/osd_admin.cc @@ -245,8 +245,18 @@ private: case data_type::GAUGE: f->dump_float(value_name, v.d()); break; + case data_type::REAL_COUNTER: + f->dump_float(value_name, v.d()); + break; case data_type::COUNTER: - f->dump_unsigned(value_name, v.ui()); + double val; + try { + val = v.ui(); + } catch (std::range_error&) { + // seastar's cpu steal time may be negative + val = 0; + } + f->dump_unsigned(value_name, val); break; case data_type::HISTOGRAM: { f->open_object_section(value_name); -- 2.39.5