From: Samuel Just Date: Tue, 9 Apr 2024 00:24:19 +0000 (+0000) Subject: osdc: add replica read perf counters to Objecter X-Git-Tag: v20.0.0~707^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d760935f2c6043c18bd51669ea342eba669293f4;p=ceph.git osdc: add replica read perf counters to Objecter Signed-off-by: Samuel Just --- diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index d881c6e1dc3..087b623333b 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -180,6 +180,10 @@ enum { l_osdc_osdop_omap_rd, l_osdc_osdop_omap_del, + l_osdc_replica_read_sent, + l_osdc_replica_read_bounced, + l_osdc_replica_read_completed, + l_osdc_last, }; @@ -378,6 +382,13 @@ void Objecter::init() pcb.add_u64_counter(l_osdc_osdop_omap_del, "omap_del", "OSD OMAP delete operations"); + pcb.add_u64_counter(l_osdc_replica_read_sent, "replica_read_sent", + "Operations sent to replica"); + pcb.add_u64_counter(l_osdc_replica_read_bounced, "replica_read_bounced", + "Operations bounced by replica to be resent to primary"); + pcb.add_u64_counter(l_osdc_replica_read_completed, "replica_read_completed", + "Operations completed by replica"); + logger = pcb.create_perf_counters(); cct->get_perfcounters_collection()->add(logger); } @@ -2328,6 +2339,10 @@ void Objecter::_send_op_account(Op *op) ldout(cct, 20) << " note: not requesting reply" << dendl; } + if (op->target.used_replica) { + logger->inc(l_osdc_replica_read_sent); + } + logger->inc(l_osdc_op_active); logger->inc(l_osdc_op); logger->inc(l_osdc_oplen_avg, op->ops.size()); @@ -3477,6 +3492,15 @@ void Objecter::handle_osd_op_reply(MOSDOpReply *m) return; } + if (op->target.flags & (CEPH_OSD_FLAG_BALANCE_READS | + CEPH_OSD_FLAG_LOCALIZE_READS)) { + if (rc == -EAGAIN) { + logger->inc(l_osdc_replica_read_bounced); + } else { + logger->inc(l_osdc_replica_read_completed); + } + } + if (rc == -EAGAIN) { ldout(cct, 7) << " got -EAGAIN, resubmitting" << dendl; if (op->has_completion())