]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/osd_types_fmt.h: add object_stat_sum_t formatter and operator<<
authorSamuel Just <sjust@redhat.com>
Mon, 9 Oct 2023 21:08:13 +0000 (14:08 -0700)
committerSamuel Just <sjust@redhat.com>
Mon, 11 Dec 2023 04:10:17 +0000 (04:10 +0000)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/osd/osd_types_fmt.h

index ed0e48ae082a968c5798f1e884525e19fe777bbd..d6d746d295f75de26b22a9030d660a53adc4fae9 100644 (file)
@@ -328,6 +328,64 @@ struct fmt::formatter<ScrubMap> {
   bool debug_log{false};
 };
 
+template <>
+struct fmt::formatter<object_stat_sum_t> {
+  constexpr auto parse(format_parse_context& ctx) { return ctx.begin(); }
+
+  template <typename FormatContext>
+  auto format(const object_stat_sum_t &stats, FormatContext& ctx) const
+  {
+#define FORMAT(FIELD) fmt::format_to(ctx.out(), #FIELD"={}, ", stats.FIELD);
+    fmt::format_to(ctx.out(), "object_stat_sum_t(");
+    FORMAT(num_bytes);
+    FORMAT(num_objects);
+    FORMAT(num_object_clones);
+    FORMAT(num_object_copies);
+    FORMAT(num_objects_missing_on_primary);
+    FORMAT(num_objects_missing);
+    FORMAT(num_objects_degraded);
+    FORMAT(num_objects_misplaced);
+    FORMAT(num_objects_unfound);
+    FORMAT(num_rd);
+    FORMAT(num_rd_kb);
+    FORMAT(num_wr);
+    FORMAT(num_wr_kb);
+    FORMAT(num_large_omap_objects);
+    FORMAT(num_objects_manifest);
+    FORMAT(num_omap_bytes);
+    FORMAT(num_omap_keys);
+    FORMAT(num_shallow_scrub_errors);
+    FORMAT(num_deep_scrub_errors);
+    FORMAT(num_scrub_errors);
+    FORMAT(num_objects_recovered);
+    FORMAT(num_bytes_recovered);
+    FORMAT(num_keys_recovered);
+    FORMAT(num_objects_dirty);
+    FORMAT(num_whiteouts);
+    FORMAT(num_objects_omap);
+    FORMAT(num_objects_hit_set_archive);
+    FORMAT(num_bytes_hit_set_archive);
+    FORMAT(num_flush);
+    FORMAT(num_flush_kb);
+    FORMAT(num_evict);
+    FORMAT(num_evict_kb);
+    FORMAT(num_promote);
+    FORMAT(num_flush_mode_high);
+    FORMAT(num_flush_mode_low);
+    FORMAT(num_evict_mode_some);
+    FORMAT(num_evict_mode_full);
+    FORMAT(num_objects_pinned);
+    FORMAT(num_legacy_snapsets);
+    return fmt::format_to(
+      ctx.out(), "num_objects_repaired={})",
+      stats.num_objects_repaired);
+#undef FORMAT
+  }
+};
+inline std::ostream &operator<<(std::ostream &lhs, const object_stat_sum_t &sum) {
+  return lhs << fmt::format("{}", sum);
+}
+
 #if FMT_VERSION >= 90000
 template <bool TrackChanges> struct fmt::formatter<pg_missing_set<TrackChanges>> : fmt::ostream_formatter {};
 #endif