From: Samuel Just Date: Mon, 9 Oct 2023 21:08:13 +0000 (-0700) Subject: osd/osd_types_fmt.h: add object_stat_sum_t formatter and operator<< X-Git-Tag: v19.3.0~296^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3be59463cc3325344a1c871450831c07b45098ca;p=ceph.git osd/osd_types_fmt.h: add object_stat_sum_t formatter and operator<< Signed-off-by: Samuel Just --- diff --git a/src/osd/osd_types_fmt.h b/src/osd/osd_types_fmt.h index ed0e48ae082a..d6d746d295f7 100644 --- a/src/osd/osd_types_fmt.h +++ b/src/osd/osd_types_fmt.h @@ -328,6 +328,64 @@ struct fmt::formatter { bool debug_log{false}; }; +template <> +struct fmt::formatter { + constexpr auto parse(format_parse_context& ctx) { return ctx.begin(); } + + template + 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 struct fmt::formatter> : fmt::ostream_formatter {}; #endif