summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-07-18 14:33:37 -0700
committerSage Weil <sage@inktank.com>2013-07-18 15:13:50 -0700
commit9ab539eaae97d9b108b7814853b7709262c284db (patch)
tree60e6a8e03a8671b238c12f51484aea3e6b71aa57
parent921a4aac8a89850303233fe188998202e0ddfe0d (diff)
downloadceph-9ab539eaae97d9b108b7814853b7709262c284db.tar.gz
PG: add perf counter for peering latency
Signed-off-by: Samuel Just <sam.just@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
-rw-r--r--src/osd/OSD.cc1
-rw-r--r--src/osd/OSD.h1
-rw-r--r--src/osd/PG.cc3
3 files changed, 5 insertions, 0 deletions
diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc
index 9010f542009..2cecd60c18b 100644
--- a/src/osd/OSD.cc
+++ b/src/osd/OSD.cc
@@ -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);
diff --git a/src/osd/OSD.h b/src/osd/OSD.h
index 383ef611ef4..238c5b43594 100644
--- a/src/osd/OSD.h
+++ b/src/osd/OSD.h
@@ -113,6 +113,7 @@ enum {
l_osd_mape_dup,
l_osd_waiting_for_map,
+ l_osd_peering_latency,
l_osd_last,
};
diff --git a/src/osd/PG.cc b/src/osd/PG.cc
index bf522c8d9e1..6f8ee0c44c7 100644
--- a/src/osd/PG.cc
+++ b/src/osd/PG.cc
@@ -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);
}