f->dump_unsigned("num_pgs", num_pgs);
f->dump_unsigned("num_osds", num_osds);
f->dump_unsigned("num_per_pool_osds", num_per_pool_osds);
+ f->dump_unsigned("num_per_pool_omap_osds", num_per_pool_omap_osds);
/// dump legacy stats fields to ensure backward compatibility.
f->dump_unsigned("kb", statfs.kb());
void osd_stat_t::encode(ceph::buffer::list &bl, uint64_t features) const
{
- ENCODE_START(12, 2, bl);
+ ENCODE_START(13, 2, bl);
//////// for compatibility ////////
int64_t kb = statfs.kb();
encode(num_shards_repaired, bl);
encode(num_osds, bl);
encode(num_per_pool_osds, bl);
+ encode(num_per_pool_omap_osds, bl);
ENCODE_FINISH(bl);
}
{
int64_t kb, kb_used,kb_avail;
int64_t kb_used_data, kb_used_omap, kb_used_meta;
- DECODE_START_LEGACY_COMPAT_LEN(12, 2, 2, bl);
+ DECODE_START_LEGACY_COMPAT_LEN(13, 2, 2, bl);
decode(kb, bl);
decode(kb_used, bl);
decode(kb_avail, bl);
num_osds = 0;
num_per_pool_osds = 0;
}
+ if (struct_v >= 13) {
+ decode(num_per_pool_omap_osds, bl);
+ } else {
+ num_per_pool_omap_osds = 0;
+ }
DECODE_FINISH(bl);
}
uint32_t num_osds = 0;
uint32_t num_per_pool_osds = 0;
+ uint32_t num_per_pool_omap_osds = 0;
osd_stat_t() : snap_trim_queue_len(0), num_snap_trimming(0),
num_shards_repaired(0) {}
num_pgs += o.num_pgs;
num_osds += o.num_osds;
num_per_pool_osds += o.num_per_pool_osds;
+ num_per_pool_omap_osds += o.num_per_pool_omap_osds;
for (const auto& a : o.os_alerts) {
auto& target = os_alerts[a.first];
for (auto& i : a.second) {
num_pgs -= o.num_pgs;
num_osds -= o.num_osds;
num_per_pool_osds -= o.num_per_pool_osds;
+ num_per_pool_omap_osds -= o.num_per_pool_omap_osds;
for (const auto& a : o.os_alerts) {
auto& target = os_alerts[a.first];
for (auto& i : a.second) {
l.os_perf_stat == r.os_perf_stat &&
l.num_pgs == r.num_pgs &&
l.num_osds == r.num_osds &&
- l.num_per_pool_osds == r.num_per_pool_osds;
+ l.num_per_pool_osds == r.num_per_pool_osds &&
+ l.num_per_pool_omap_osds == r.num_per_pool_omap_osds;
}
inline bool operator!=(const osd_stat_t& l, const osd_stat_t& r) {
return !(l == r);