]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: make pg info in 'status' more informative and visually parseable
authorSage Weil <sage@inktank.com>
Tue, 13 Aug 2013 23:08:14 +0000 (16:08 -0700)
committerSage Weil <sage@inktank.com>
Tue, 13 Aug 2013 23:51:57 +0000 (16:51 -0700)
Signed-off-by: Sage Weil <sage@inktank.com>
src/mon/Monitor.cc
src/mon/PGMap.cc

index e6dbd23881b44d75d59e2010db0eda7316bc7243..2afa7f64285a10841c33ae475c312c743392edbe 100644 (file)
@@ -1834,7 +1834,7 @@ void Monitor::get_status(stringstream &ss, Formatter *f)
     ss << "   monmap " << *monmap << ", election epoch " << get_epoch()
       << ", quorum " << get_quorum() << " " << get_quorum_names() << "\n";
     osdmon()->osdmap.print_summary(NULL, ss);
-    ss << "    pgmap " << pgmon()->pg_map << "\n";
+    pgmon()->pg_map.print_summary(NULL, &ss);
     ss << "   mdsmap " << mdsmon()->mdsmap << "\n";
   }
 }
index b5e6c4ecb89cc7074181e4daf8e8094216816ccd..57bbc454d203f4ee46fc264dc153951bd4b33614 100644 (file)
@@ -802,9 +802,9 @@ void PGMap::print_summary(Formatter *f, ostream *out) const
       f->dump_unsigned("count", p->second);
       f->close_section();
     } else {
-      if (p != num_pg_by_state.begin())
-       ss << ", ";
-      ss << p->second << " " << pg_state_string(p->first);
+      ss.setf(std::ios::right);
+      ss << std::setw(9) << p->second << " " << pg_state_string(p->first) << "\n";
+      ss.unsetf(std::ios::right);
     }
   }
   if (f)
@@ -818,14 +818,22 @@ void PGMap::print_summary(Formatter *f, ostream *out) const
     f->dump_unsigned("bytes_avail", osd_sum.kb_avail * 4096ull);
     f->dump_unsigned("bytes_total", osd_sum.kb * 4096ull);
   } else {
-    string states = ss.str();
-    *out << "v" << version << ": "
-        << pg_stat.size() << " pgs: "
-        << states << "; "
+    *out << "    pgmap v" << version << ": "
+        << pg_stat.size() << " pgs, " << pg_pool_sum.size() << " pools, "
         << prettybyte_t(pg_sum.stats.sum.num_bytes) << " data, "
+        << si_t(pg_sum.stats.sum.num_objects) << " objects\n";
+    *out << "          "
         << kb_t(osd_sum.kb_used) << " used, "
         << kb_t(osd_sum.kb_avail) << " / "
-        << kb_t(osd_sum.kb) << " avail";
+        << kb_t(osd_sum.kb) << " avail\n";
+  }
+
+  std::stringstream ssr;
+  recovery_summary(f, &ssr);
+  if (!f) {
+    if (ssr.str().length())
+      *out << "          " << ssr.str() << "\n";
+    *out << ss.str();
   }
 
   // make non-negative; we can get negative values if osds send
@@ -836,7 +844,7 @@ void PGMap::print_summary(Formatter *f, ostream *out) const
   if (pos_delta.stats.sum.num_rd ||
       pos_delta.stats.sum.num_wr) {
     if (!f)
-      *out << "; ";
+      *out << "       io ";
     if (pos_delta.stats.sum.num_rd) {
       int64_t rd = (pos_delta.stats.sum.num_rd_kb << 10) / (double)stamp_delta;
       if (f) {
@@ -858,13 +866,10 @@ void PGMap::print_summary(Formatter *f, ostream *out) const
       f->dump_int("op_per_sec", iops);
     } else {
       *out << si_t(iops) << "op/s";
+      *out << "\n";
     }
   }
 
-  std::stringstream ssr;
-  recovery_summary(f, &ssr);
-  if (!f && ssr.str().length())
-    *out << "; " << ssr.str();
 }
 
 void PGMap::print_oneline_summary(ostream *out) const