]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: add recovery bytes counter to osd logger 23509/head
authorkungf <yang.wang@easystack.cn>
Thu, 9 Aug 2018 09:11:36 +0000 (17:11 +0800)
committerkungf <yang.wang@easystack.cn>
Thu, 9 Aug 2018 09:35:14 +0000 (17:35 +0800)
add recovery bytes counter, so we can get recovery bandwidth
from prometheus

Signed-off-by: kungf <yang.wang@easystack.cn>
src/osd/OSD.cc
src/osd/OSD.h
src/osd/ReplicatedBackend.cc

index 86e06dd561995b1b6adca5fe686b617f5b7d02a8..3d89b0260bcf4cd8e17af33c9fd3c919ea1de82e 100644 (file)
@@ -3074,6 +3074,11 @@ void OSD::create_logger()
     "Started recovery operations",
     "rop", PerfCountersBuilder::PRIO_INTERESTING);
 
+  osd_plb.add_u64_counter(
+   l_osd_rbytes, "recovery_bytes",
+   "recovery bytes",
+   "rbt", PerfCountersBuilder::PRIO_INTERESTING);
+
   osd_plb.add_u64(l_osd_loadavg, "loadavg", "CPU load");
   osd_plb.add_u64(l_osd_buf, "buffer_bytes", "Total allocated buffer size", NULL, 0, unit_t(UNIT_BYTES));
   osd_plb.add_u64(l_osd_history_alloc_bytes, "history_alloc_Mbytes", NULL, 0, unit_t(UNIT_BYTES));
index e435b99000a715df4aa0235d3795b75c6fc4e313..2d42a3e87e8cc95bb12939fdce6892216632aa7b 100644 (file)
@@ -121,6 +121,7 @@ enum {
   l_osd_push_outb,
 
   l_osd_rop,
+  l_osd_rbytes,
 
   l_osd_loadavg,
   l_osd_buf,
index 62f89eba14effc966cbb58d8f6a5df59f00536ad..2cfe72a7831bc0226126eeb8e05e56c3fdf6565e 100644 (file)
@@ -1696,6 +1696,7 @@ bool ReplicatedBackend::handle_pull_response(
 
   pi.stat.num_keys_recovered += pop.omap_entries.size();
   pi.stat.num_bytes_recovered += data.length();
+  get_parent()->get_logger()->inc(l_osd_rop, pop.omap_entries.size() + data.length());
 
   if (complete) {
     pi.stat.num_objects_recovered++;
@@ -1966,6 +1967,7 @@ int ReplicatedBackend::build_push_op(const ObjectRecoveryInfo &recovery_info,
   if (stat) {
     stat->num_keys_recovered += out_op->omap_entries.size();
     stat->num_bytes_recovered += out_op->data.length();
+    get_parent()->get_logger()->inc(l_osd_rbytes, out_op->omap_entries.size() + out_op->data.length());
   }
 
   get_parent()->get_logger()->inc(l_osd_push);