f->dump_unsigned("up_from", up_from);
f->dump_unsigned("seq", seq);
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);
/// 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(11, 2, bl);
+ ENCODE_START(12, 2, bl);
//////// for compatibility ////////
int64_t kb = statfs.kb();
///////////////////////////////////
encode(os_alerts, bl);
encode(num_shards_repaired, bl);
+ encode(num_osds, bl);
+ encode(num_per_pool_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(11, 2, 2, bl);
+ DECODE_START_LEGACY_COMPAT_LEN(12, 2, 2, bl);
decode(kb, bl);
decode(kb_used, bl);
decode(kb_avail, bl);
} else {
num_shards_repaired = 0;
}
+ if (struct_v >= 12) {
+ decode(num_osds, bl);
+ decode(num_per_pool_osds, bl);
+ } else {
+ num_osds = 0;
+ num_per_pool_osds = 0;
+ }
DECODE_FINISH(bl);
}
uint32_t num_pgs = 0;
+ uint32_t num_osds = 0;
+ uint32_t num_per_pool_osds = 0;
+
osd_stat_t() : snap_trim_queue_len(0), num_snap_trimming(0),
num_shards_repaired(0) {}
op_queue_age_hist.add(o.op_queue_age_hist);
os_perf_stat.add(o.os_perf_stat);
num_pgs += o.num_pgs;
+ num_osds += o.num_osds;
+ num_per_pool_osds += o.num_per_pool_osds;
for (const auto& a : o.os_alerts) {
auto& target = os_alerts[a.first];
for (auto& i : a.second) {
op_queue_age_hist.sub(o.op_queue_age_hist);
os_perf_stat.sub(o.os_perf_stat);
num_pgs -= o.num_pgs;
+ num_osds -= o.num_osds;
+ num_per_pool_osds -= o.num_per_pool_osds;
for (const auto& a : o.os_alerts) {
auto& target = os_alerts[a.first];
for (auto& i : a.second) {
l.hb_peers == r.hb_peers &&
l.op_queue_age_hist == r.op_queue_age_hist &&
l.os_perf_stat == r.os_perf_stat &&
- l.num_pgs == r.num_pgs;
+ l.num_pgs == r.num_pgs &&
+ l.num_osds == r.num_osds &&
+ l.num_per_pool_osds == r.num_per_pool_osds;
}
inline bool operator!=(const osd_stat_t& l, const osd_stat_t& r) {
return !(l == r);