From: xie xingguo Date: Wed, 11 May 2016 06:38:08 +0000 (+0800) Subject: mon/PGMap: use TextTable for dump_filtered_pg_stats() X-Git-Tag: v11.0.0~407^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fc33cf47254b6f5fb79e85ffe93b90e3569d239f;p=ceph.git mon/PGMap: use TextTable for dump_filtered_pg_stats() Signed-off-by: xie xingguo --- diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index a6bfe0a63bad..c210248cfa85 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -1791,32 +1791,63 @@ void PGMap::dump_filtered_pg_stats(Formatter *f, set& pgs) } f->close_section(); } + void PGMap::dump_filtered_pg_stats(ostream& ss, set& pgs) { - ss << "pg_stat\tobjects\tmip\tdegr\tmisp\tunf\tbytes\tlog\tdisklog\tstate\t" - "state_stamp\tv\treported\tup\tup_primary\tacting\tacting_primary\t" - "last_scrub\tscrub_stamp\tlast_deep_scrub\tdeep_scrub_stamp" << std::endl; + TextTable tab; + + tab.define_column("PG_STAT", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("OBJECTS", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("MISSING_ON_PRIMARY", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("DEGRADED", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("MISPLACED", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("UNFOUND", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("BYTES", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("LOG", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("DISK_LOG", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("STATE", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("STATE_STAMP", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("VERSION", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("REPORTED", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("UP", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("UP_PRIMARY", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("ACTING", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("ACTING_PRIMARY", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("LAST_SCRUB", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("SCRUB_STAMP", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("LAST_DEEP_SCRUB", TextTable::LEFT, TextTable::RIGHT); + tab.define_column("DEEP_SCRUB_STAMP", TextTable::LEFT, TextTable::RIGHT); + for (set::iterator i = pgs.begin(); i != pgs.end(); ++i) { pg_stat_t& st = pg_stat[*i]; - ss << *i - << "\t" << st.stats.sum.num_objects - << "\t" << st.stats.sum.num_objects_missing_on_primary - << "\t" << st.stats.sum.num_objects_degraded - << "\t" << st.stats.sum.num_objects_misplaced - << "\t" << st.stats.sum.num_objects_unfound - << "\t" << st.stats.sum.num_bytes - << "\t" << st.log_size - << "\t" << st.ondisk_log_size - << "\t" << pg_state_string(st.state) - << "\t" << st.last_change - << "\t" << st.version - << "\t" << st.reported_epoch << ":" << st.reported_seq - << "\t" << st.up - << "\t" << st.up_primary - << "\t" << st.acting - << "\t" << st.acting_primary - << "\t" << st.last_scrub << "\t" << st.last_scrub_stamp - << "\t" << st.last_deep_scrub << "\t" << st.last_deep_scrub_stamp - << std::endl; + + ostringstream reported; + reported << st.reported_epoch << ":" << st.reported_seq; + + tab << *i + << st.stats.sum.num_objects + << st.stats.sum.num_objects_missing_on_primary + << st.stats.sum.num_objects_degraded + << st.stats.sum.num_objects_misplaced + << st.stats.sum.num_objects_unfound + << st.stats.sum.num_bytes + << st.log_size + << st.ondisk_log_size + << pg_state_string(st.state) + << st.last_change + << st.version + << reported.str() + << st.up + << st.up_primary + << st.acting + << st.acting_primary + << st.last_scrub + << st.last_scrub_stamp + << st.last_deep_scrub + << st.last_deep_scrub_stamp + << TextTable::endrow; } + + ss << tab; } +