This is an automated email from the ASF dual-hosted git repository.

pankajkumar pushed a commit to branch branch-3
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-3 by this push:
     new edb9f8aa106 HBASE-29562 Add RegionServer Metrics for excluded 
DataNodes (#7260)
edb9f8aa106 is described below

commit edb9f8aa106d89a39943cb17e8c4983ec9f4644c
Author: Sreenivasulu <[email protected]>
AuthorDate: Sat Feb 14 19:45:08 2026 +0530

    HBASE-29562 Add RegionServer Metrics for excluded DataNodes (#7260)
    
    Signed-off-by: Duo Zhang <[email protected]>
    Signed-off-by: Pankaj Kumar<[email protected]>
    (cherry picked from commit ad5bf7f11202595a57170ef8f2f67da1d1f86c91)
---
 .../hadoop/hbase/regionserver/MetricsRegionServerSource.java   |  6 ++++++
 .../hbase/regionserver/MetricsRegionServerSourceImpl.java      | 10 +++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git 
a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
 
b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
index f0b4a073383..25dfbbd180d 100644
--- 
a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
+++ 
b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
@@ -667,4 +667,10 @@ public interface MetricsRegionServerSource extends 
BaseSource, JvmPauseMonitorSo
     "Count of scanners which were expired due to scanner lease timeout";
   String CURRENT_REGION_CACHE_RATIO = "currentRegionCacheRatio";
   String CURRENT_REGION_CACHE_RATIO_DESC = "The percentage of caching 
completed for this region.";
+
+  String EXCLUDE_DATA_NODES_COUNT = "excludedDataNodesCount";
+  String EXCLUDE_DATA_NODES_COUNT_DESC =
+    "Count of slow/connect error DataNodes excluded during WAL write 
operation";
+  String EXCLUDE_DATA_NODES_DETAILS = "excludedDataNodesDetails";
+  String EXCLUDE_DATA_NODES_DETAILS_DESC = "Excluded DataNodes info";
 }
diff --git 
a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
 
b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
index faeea3e8fd9..8c44f80451f 100644
--- 
a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
+++ 
b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
@@ -369,7 +369,8 @@ public class MetricsRegionServerSourceImpl extends 
BaseSourceImpl
 
     // rsWrap can be null because this function is called inside of init.
     if (rsWrap != null) {
-      addGaugesToMetricsRecordBuilder(mrb)
+      MetricsRecordBuilder metricsRecordBuilder = 
addGaugesToMetricsRecordBuilder(mrb);
+      metricsRecordBuilder
         .addCounter(Interns.info(TOTAL_REQUEST_COUNT, 
TOTAL_REQUEST_COUNT_DESC),
           rsWrap.getTotalRequestCount())
         .addCounter(
@@ -496,10 +497,17 @@ public class MetricsRegionServerSourceImpl extends 
BaseSourceImpl
           rsWrap.getHedgedReadOpsInCurThread())
         .addCounter(Interns.info(BLOCKED_REQUESTS_COUNT, 
BLOCKED_REQUESTS_COUNT_DESC),
           rsWrap.getBlockedRequestsCount())
+        .addCounter(Interns.info(EXCLUDE_DATA_NODES_COUNT, 
EXCLUDE_DATA_NODES_COUNT_DESC),
+          rsWrap.getWALExcludeDNs().size())
         .tag(Interns.info(ZOOKEEPER_QUORUM_NAME, ZOOKEEPER_QUORUM_DESC),
           rsWrap.getZookeeperQuorum())
         .tag(Interns.info(SERVER_NAME_NAME, SERVER_NAME_DESC), 
rsWrap.getServerName())
         .tag(Interns.info(CLUSTER_ID_NAME, CLUSTER_ID_DESC), 
rsWrap.getClusterId());
+      if (!rsWrap.getWALExcludeDNs().isEmpty()) {
+        metricsRecordBuilder.tag(
+          Interns.info(EXCLUDE_DATA_NODES_DETAILS, 
EXCLUDE_DATA_NODES_DETAILS_DESC),
+          rsWrap.getWALExcludeDNs().toString());
+      }
     }
 
     metricsRegistry.snapshot(mrb, all);

Reply via email to