Skip to content

Commit

Permalink
Merge pull request #9362 from xiexingguo/xxg-wip-texttable-df
Browse files Browse the repository at this point in the history
tools: use TextTable for "rados df" plain output

Reviewed-by: Sage Weil <sage@redhat.com>
  • Loading branch information
yuriw committed Jul 26, 2016
2 parents 38609de + bf9f5c1 commit 296e485
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 39 deletions.
36 changes: 18 additions & 18 deletions src/mon/PGMap.cc
Expand Up @@ -760,15 +760,15 @@ void PGMap::dump_pg_stats_plain(ostream& ss,
TextTable tab;

if (brief){
tab.define_column("PG_STAT", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("PG_STAT", TextTable::LEFT, TextTable::LEFT);
tab.define_column("STATE", 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);
}
else {
tab.define_column("PG_STAT", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("PG_STAT", TextTable::LEFT, TextTable::LEFT);
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);
Expand Down Expand Up @@ -863,7 +863,7 @@ void PGMap::dump_pool_stats(ostream& ss, bool header) const
TextTable tab;

if (header) {
tab.define_column("POOLID", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("POOLID", TextTable::LEFT, TextTable::LEFT);
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);
Expand All @@ -873,7 +873,7 @@ void PGMap::dump_pool_stats(ostream& ss, bool header) const
tab.define_column("LOG", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("DISK_LOG", TextTable::LEFT, TextTable::RIGHT);
} else {
tab.define_column("", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("", TextTable::LEFT, TextTable::LEFT);
tab.define_column("", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("", TextTable::LEFT, TextTable::RIGHT);
Expand Down Expand Up @@ -907,7 +907,7 @@ void PGMap::dump_pg_sum_stats(ostream& ss, bool header) const
TextTable tab;

if (header) {
tab.define_column("PG_STAT", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("PG_STAT", TextTable::LEFT, TextTable::LEFT);
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);
Expand All @@ -917,7 +917,7 @@ void PGMap::dump_pg_sum_stats(ostream& ss, bool header) const
tab.define_column("LOG", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("DISK_LOG", TextTable::LEFT, TextTable::RIGHT);
} else {
tab.define_column("", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("", TextTable::LEFT, TextTable::LEFT);
tab.define_column("", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("", TextTable::LEFT, TextTable::RIGHT);
Expand Down Expand Up @@ -946,7 +946,7 @@ void PGMap::dump_osd_stats(ostream& ss) const
{
TextTable tab;

tab.define_column("OSD_STAT", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("OSD_STAT", TextTable::LEFT, TextTable::LEFT);
tab.define_column("USED", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("AVAIL", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("TOTAL", TextTable::LEFT, TextTable::RIGHT);
Expand All @@ -957,18 +957,18 @@ void PGMap::dump_osd_stats(ostream& ss) const
p != osd_stat.end();
++p) {
tab << p->first
<< prettybyte_t(p->second.kb_used)
<< prettybyte_t(p->second.kb_avail)
<< prettybyte_t(p->second.kb)
<< si_t(p->second.kb_used << 10)
<< si_t(p->second.kb_avail << 10)
<< si_t(p->second.kb << 10)
<< p->second.hb_in
<< get_num_pg_by_osd(p->first)
<< TextTable::endrow;
}

tab << "sum"
<< prettybyte_t(osd_sum.kb_used)
<< prettybyte_t(osd_sum.kb_avail)
<< prettybyte_t(osd_sum.kb)
<< si_t(osd_sum.kb_used << 10)
<< si_t(osd_sum.kb_avail << 10)
<< si_t(osd_sum.kb << 10)
<< TextTable::endrow;

ss << tab;
Expand All @@ -978,15 +978,15 @@ void PGMap::dump_osd_sum_stats(ostream& ss) const
{
TextTable tab;

tab.define_column("OSD_STAT", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("OSD_STAT", TextTable::LEFT, TextTable::LEFT);
tab.define_column("USED", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("AVAIL", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("TOTAL", TextTable::LEFT, TextTable::RIGHT);

tab << "sum"
<< prettybyte_t(osd_sum.kb_used)
<< prettybyte_t(osd_sum.kb_avail)
<< prettybyte_t(osd_sum.kb)
<< si_t(osd_sum.kb_used << 10)
<< si_t(osd_sum.kb_avail << 10)
<< si_t(osd_sum.kb << 10)
<< TextTable::endrow;

ss << tab;
Expand Down Expand Up @@ -1766,7 +1766,7 @@ void PGMap::dump_filtered_pg_stats(ostream& ss, set<pg_t>& pgs)
{
TextTable tab;

tab.define_column("PG_STAT", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("PG_STAT", TextTable::LEFT, TextTable::LEFT);
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);
Expand Down
62 changes: 41 additions & 21 deletions src/tools/rados/rados.cc
Expand Up @@ -27,6 +27,7 @@ using namespace libradosstriper;
#include "common/errno.h"
#include "common/Formatter.h"
#include "common/obj_bencher.h"
#include "common/TextTable.h"
#include "include/stringify.h"
#include "mds/inode_backtrace.h"
#include "auth/Crypto.h"
Expand Down Expand Up @@ -1906,13 +1907,21 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts,
goto out;
}

TextTable tab;

if (!formatter) {
printf("%-15s "
"%12s %12s %12s %12s "
"%12s %12s %12s %12s %12s\n",
"pool name",
"KB", "objects", "clones", "degraded",
"unfound", "rd", "rd KB", "wr", "wr KB");
tab.define_column("POOL_NAME", TextTable::LEFT, TextTable::LEFT);
tab.define_column("USED", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("OBJECTS", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("CLONES", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("COPIES", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("MISSING_ON_PRIMARY", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("UNFOUND", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("DEGRAED", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("RD_OPS", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("RD", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("WR_OPS", TextTable::LEFT, TextTable::RIGHT);
tab.define_column("WR", TextTable::LEFT, TextTable::RIGHT);
} else {
formatter->open_object_section("stats");
formatter->open_array_section("pools");
Expand All @@ -1923,17 +1932,19 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts,
const char *pool_name = i->first.c_str();
librados::pool_stat_t& s = i->second;
if (!formatter) {
printf("%-15s "
"%12lld %12lld %12lld %12lld "
"%12lld %12lld %12lld %12lld %12lld\n",
pool_name,
(long long)s.num_kb,
(long long)s.num_objects,
(long long)s.num_object_clones,
(long long)s.num_objects_degraded,
(long long)s.num_objects_unfound,
(long long)s.num_rd, (long long)s.num_rd_kb,
(long long)s.num_wr, (long long)s.num_wr_kb);
tab << pool_name
<< si_t(s.num_bytes)
<< s.num_objects
<< s.num_object_clones
<< s.num_object_copies
<< s.num_objects_missing_on_primary
<< s.num_objects_unfound
<< s.num_objects_degraded
<< s.num_rd
<< si_t(s.num_rd_kb << 10)
<< s.num_wr
<< si_t(s.num_wr_kb << 10)
<< TextTable::endrow;
} else {
formatter->open_object_section("pool");
int64_t pool_id = rados.pool_lookup(pool_name);
Expand All @@ -1958,6 +1969,10 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts,
}
}

if (!formatter) {
cout << tab;
}

// total
cluster_stat_t tstats;
ret = rados.cluster_stat(tstats);
Expand All @@ -1966,10 +1981,15 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts,
goto out;
}
if (!formatter) {
printf(" total used %12lld %12lld\n", (long long unsigned)tstats.kb_used,
(long long unsigned)tstats.num_objects);
printf(" total avail %12lld\n", (long long unsigned)tstats.kb_avail);
printf(" total space %12lld\n", (long long unsigned)tstats.kb);
cout << std::endl;
cout << "total_objects " << tstats.num_objects
<< std::endl;
cout << "total_used " << si_t(tstats.kb_used << 10)
<< std::endl;
cout << "total_avail " << si_t(tstats.kb_avail << 10)
<< std::endl;
cout << "total_space " << si_t(tstats.kb << 10)
<< std::endl;
} else {
formatter->close_section();
formatter->dump_format("total_objects", "%lld", (long long unsigned)tstats.num_objects);
Expand Down

0 comments on commit 296e485

Please sign in to comment.