]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: add mds, mon info to cluster_logger
authorSage Weil <sage@newdream.net>
Thu, 8 Dec 2011 21:13:29 +0000 (13:13 -0800)
committerSage Weil <sage@newdream.net>
Mon, 12 Dec 2011 17:27:17 +0000 (09:27 -0800)
Signed-off-by: Sage Weil <sage@newdream.net>
src/mon/MDSMonitor.cc
src/mon/MDSMonitor.h
src/mon/Monitor.cc
src/mon/Monitor.h

index 5488180c852f229c5962e80851c31acb23734e6a..857580c83136e43262df272973fd928d0c0190e4 100644 (file)
@@ -28,7 +28,7 @@
 
 #include "messages/MGenericMessage.h"
 
-
+#include "common/perf_counters.h"
 #include "common/Timer.h"
 
 #include <sstream>
@@ -100,6 +100,7 @@ bool MDSMonitor::update_from_paxos()
   print_map(mdsmap, 0);
 
   check_subs();
+  update_logger();
 
   return true;
 }
@@ -124,6 +125,15 @@ void MDSMonitor::encode_pending(bufferlist &bl)
   pending_mdsmap.encode(bl);
 }
 
+void MDSMonitor::update_logger()
+{
+  dout(10) << "update_logger" << dendl;
+
+  mon->cluster_logger->set(l_cluster_num_mds_up, mdsmap.get_num_up_mds());
+  mon->cluster_logger->set(l_cluster_num_mds_in, mdsmap.get_num_in_mds());
+  mon->cluster_logger->set(l_cluster_num_mds_failed, mdsmap.get_num_failed_mds());
+  mon->cluster_logger->set(l_cluster_mds_epoch, mdsmap.get_epoch());
+}
 
 bool MDSMonitor::preprocess_query(PaxosServiceMessage *m)
 {
@@ -475,6 +485,7 @@ void MDSMonitor::_updated(MMDSBeacon *m)
 void MDSMonitor::on_active()
 {
   tick();
+  update_logger();
 }
 
 enum health_status_t MDSMonitor::get_health(ostream &oss) const
index a315231803c29889adcfcf2f4b653944b89229f8..ef328bda51cca76b86beb607e0ad3bc13a0920ea 100644 (file)
@@ -70,7 +70,9 @@ class MDSMonitor : public PaxosService {
   bool update_from_paxos();
   void create_pending(); 
   void encode_pending(bufferlist &bl);
-  
+
+  void update_logger();
+
   void _updated(MMDSBeacon *m);
  
   bool preprocess_query(PaxosServiceMessage *m);  // true if processed.
index 46b646261fd476eb853bbd72da2872727e91cc1e..c2e94e3a36adc77cb33f9a7bdba19e6935db8b8c 100644 (file)
@@ -195,6 +195,8 @@ void Monitor::init()
   assert(!cluster_logger);
   {
     PerfCountersBuilder pcb(g_ceph_context, "cluster", l_cluster_first, l_cluster_last);
+    pcb.add_u64(l_cluster_num_mon, "num_mon");
+    pcb.add_u64(l_cluster_num_mon_quorum, "num_mon_quorum");
     pcb.add_u64(l_cluster_num_osd, "num_osd");
     pcb.add_u64(l_cluster_num_osd_up, "num_osd_up");
     pcb.add_u64(l_cluster_num_osd_in, "num_osd_in");
@@ -211,6 +213,10 @@ void Monitor::init()
     pcb.add_u64(l_cluster_num_object_degraded, "num_object_degraded");
     pcb.add_u64(l_cluster_num_object_unfound, "num_object_unfound");
     pcb.add_u64(l_cluster_num_kb, "num_kb");
+    pcb.add_u64(l_cluster_num_mds_up, "num_mds_up");
+    pcb.add_u64(l_cluster_num_mds_in, "num_mds_in");
+    pcb.add_u64(l_cluster_num_mds_failed, "num_mds_failed");
+    pcb.add_u64(l_cluster_mds_epoch, "mds_epoch");
     cluster_logger = pcb.create_perf_counters();
   }
 
@@ -273,6 +279,12 @@ void Monitor::unregister_cluster_logger()
   }
 }
 
+void Monitor::update_logger()
+{
+  cluster_logger->set(l_cluster_num_mon, monmap->size());
+  cluster_logger->set(l_cluster_num_mon_quorum, quorum.size());
+}
+
 void Monitor::shutdown()
 {
   dout(1) << "shutdown" << dendl;
@@ -739,6 +751,7 @@ void Monitor::finish_election()
 {
   finish_contexts(g_ceph_context, waitfor_quorum);
   resend_routed_requests();
+  update_logger();
   register_cluster_logger();
 } 
 
index 01218d73f2c85d3cd46c6301b502870b380a52f8..e215972103cc76b14d76149451cdbe01e178c55c 100644 (file)
@@ -46,6 +46,8 @@
 
 enum {
   l_cluster_first = 555000,
+  l_cluster_num_mon,
+  l_cluster_num_mon_quorum,
   l_cluster_num_osd,
   l_cluster_num_osd_up,
   l_cluster_num_osd_in,
@@ -62,6 +64,10 @@ enum {
   l_cluster_num_object_degraded,
   l_cluster_num_object_unfound,
   l_cluster_num_kb,
+  l_cluster_num_mds_up,
+  l_cluster_num_mds_in,
+  l_cluster_num_mds_failed,
+  l_cluster_mds_epoch,
   l_cluster_last,
 };
 
@@ -190,6 +196,7 @@ public:
   void lose_election(epoch_t epoch, set<int>& q, int l); // end election (called by Elector)
   void finish_election();
 
+  void update_logger();
 
   // -- paxos --
   vector<Paxos*> paxos;