]> git.apps.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>
Mon, 5 Sep 2022 13:45:04 +0000 (19:15 +0530)
Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 9b4f210b58571c0d88e5e01b90e6106cd894c3be)

Conflicts:
src/client/Client.cc:Added the 'if' condition to
read, write and metadata latency

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

index 796d14503eeb3a49fc1eebff3540c68771ed2579..6aefdb514a9f9c241be0362f3daa05632721a026 100644 (file)
@@ -6780,21 +6780,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 e934914ba5bb23857b5adc6d6c3397ed7ce4f8be..85a636e9b3f2e6d80176bf9b808d908312338744 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