]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
PG: add perf counter for peering latency
authorSamuel Just <sam.just@inktank.com>
Thu, 18 Jul 2013 21:33:37 +0000 (14:33 -0700)
committerSage Weil <sage@inktank.com>
Thu, 18 Jul 2013 22:13:50 +0000 (15:13 -0700)
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
src/osd/OSD.cc
src/osd/OSD.h
src/osd/PG.cc

index 9010f54200906b058536868d1be312b84e6e161a..2cecd60c18b8eb0134b6f25440a7093dfa0fd8da 100644 (file)
@@ -1402,6 +1402,7 @@ void OSD::create_logger()
   osd_plb.add_u64_counter(l_osd_mape_dup, "map_message_epoch_dups"); // dup osdmap epochs
   osd_plb.add_u64_counter(l_osd_waiting_for_map,
                          "messages_delayed_for_map"); // dup osdmap epochs
+  osd_plb.add_time_avg(l_osd_peering_latency, "peering_latency");
 
   logger = osd_plb.create_perf_counters();
   g_ceph_context->get_perfcounters_collection()->add(logger);
index 383ef611ef4a4976a901624ccfddfd0ae8bef6f0..238c5b43594861352cf0643fd23bf37c45943e5b 100644 (file)
@@ -113,6 +113,7 @@ enum {
   l_osd_mape_dup,
 
   l_osd_waiting_for_map,
+  l_osd_peering_latency,
   l_osd_last,
 };
 
index bf522c8d9e157f47e6a054f63974d053e3b2782e..6f8ee0c44c748013274bdfa8942aee7d56ad6697 100644 (file)
@@ -5425,6 +5425,9 @@ void PG::RecoveryState::Peering::exit()
   PG *pg = context< RecoveryMachine >().pg;
   pg->state_clear(PG_STATE_PEERING);
   pg->clear_probe_targets();
+
+  utime_t dur = ceph_clock_now(g_ceph_context) - enter_time;
+  pg->osd->logger->tinc(l_osd_peering_latency, dur);
 }