]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/admin: deal with seastar's new metric types/logics 46274/head
authorXuehan Xu <xxhdx1985126@gmail.com>
Mon, 16 May 2022 06:32:09 +0000 (14:32 +0800)
committerXuehan Xu <xxhdx1985126@gmail.com>
Mon, 16 May 2022 08:51:30 +0000 (16:51 +0800)
Fixes: https://tracker.ceph.com/issues/55666
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
src/crimson/admin/osd_admin.cc

index 79ca6e853d82142a99f082366c13128473a867b9..970010c970c9d94ab1f8ef2a94d20d93ee2d2e11 100644 (file)
@@ -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);