]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: forward read, write, metadata average latency and stdev
authorVenky Shankar <vshankar@redhat.com>
Wed, 19 May 2021 05:18:00 +0000 (01:18 -0400)
committerNeeraj Pratap Singh <neesingh@redhat.com>
Fri, 16 Sep 2022 04:29:31 +0000 (09:59 +0530)
Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 9b4f210b58571c0d88e5e01b90e6106cd894c3be)

Conflicts:
src/client/Client.cc:Added 'if' condition in read,write and
metadata latencies in 'Client::collect_and_send_global_metrics()'

src/client/Client.cc
src/mds/cephfs_features.h

index 517426707a0d006d568d87ba7e38feb61d306e7f..bca6b95ffa231f54eba08768b80ca4606246c115 100644 (file)
@@ -6798,21 +6798,30 @@ void Client::collect_and_send_global_metrics() {
   // read latency
   if (_collect_and_send_global_metrics ||
       session->mds_metric_flags.test(CLIENT_METRIC_TYPE_READ_LATENCY)) {
-    metric = ClientMetricMessage(ReadLatencyPayload(logger->tget(l_c_read)));
+    metric = ClientMetricMessage(ReadLatencyPayload(logger->tget(l_c_read),
+                                                    logger->tget(l_c_rd_avg),
+                                                    logger->get(l_c_rd_sqsum),
+                                                    nr_read_request));
     message.push_back(metric);
   }
 
   // write latency
   if (_collect_and_send_global_metrics ||
       session->mds_metric_flags.test(CLIENT_METRIC_TYPE_WRITE_LATENCY)) {
-    metric = ClientMetricMessage(WriteLatencyPayload(logger->tget(l_c_wrlat)));
+    metric = ClientMetricMessage(WriteLatencyPayload(logger->tget(l_c_wrlat),
+                                                    logger->tget(l_c_wr_avg),
+                                                    logger->get(l_c_wr_sqsum),
+                                                    nr_write_request));
     message.push_back(metric);
   }
 
   // metadata latency
   if (_collect_and_send_global_metrics ||
       session->mds_metric_flags.test(CLIENT_METRIC_TYPE_METADATA_LATENCY)) {
-    metric = ClientMetricMessage(MetadataLatencyPayload(logger->tget(l_c_lat)));
+    metric = ClientMetricMessage(MetadataLatencyPayload(logger->tget(l_c_lat),
+                                                        logger->tget(l_c_md_avg),
+                                                        logger->get(l_c_md_sqsum),
+                                                        nr_metadata_request));
     message.push_back(metric);
   }
 
index a3d45d5c9ca44a12854b73867979d054b7948725..ddc760e2c01f7ec78e02cfb13ae579b9f56e7f9b 100644 (file)
@@ -73,6 +73,12 @@ namespace ceph {
     CLIENT_METRIC_TYPE_OPENED_INODES,          \
     CLIENT_METRIC_TYPE_READ_IO_SIZES,          \
     CLIENT_METRIC_TYPE_WRITE_IO_SIZES,         \
+    CLIENT_METRIC_TYPE_AVG_READ_LATENCY,       \
+    CLIENT_METRIC_TYPE_STDEV_READ_LATENCY,     \
+    CLIENT_METRIC_TYPE_AVG_WRITE_LATENCY,      \
+    CLIENT_METRIC_TYPE_STDEV_WRITE_LATENCY,    \
+    CLIENT_METRIC_TYPE_AVG_METADATA_LATENCY,   \
+    CLIENT_METRIC_TYPE_STDEV_METADATA_LATENCY, \
 }
 
 #define CEPHFS_FEATURES_MDS_SUPPORTED CEPHFS_FEATURES_ALL