Repository: hbase
Updated Branches:
  refs/heads/branch-1 c64c0e85c -> 3606b890f


HBASE-16471 Region Server metrics context will be wrong when machine hostname 
contain "master" word (Pankaj Kumar)


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/3606b890
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/3606b890
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/3606b890

Branch: refs/heads/branch-1
Commit: 3606b890f86a826462e42da62e6244515a1710c9
Parents: c64c0e8
Author: Ashish Singhi <ashishsin...@apache.org>
Authored: Wed Aug 24 18:59:44 2016 +0530
Committer: Ashish Singhi <ashishsin...@apache.org>
Committed: Wed Aug 24 19:01:58 2016 +0530

----------------------------------------------------------------------
 .../ipc/MetricsHBaseServerSourceFactory.java    |  4 +--
 .../apache/hadoop/hbase/ipc/TestRpcMetrics.java | 29 ++++++++++++++++++++
 2 files changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/3606b890/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactory.java
----------------------------------------------------------------------
diff --git 
a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactory.java
 
b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactory.java
index d6b1392..e9a3348 100644
--- 
a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactory.java
+++ 
b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactory.java
@@ -47,9 +47,9 @@ public abstract class MetricsHBaseServerSourceFactory {
    * @return The Camel Cased context name.
    */
   protected static String createContextName(String serverName) {
-    if (serverName.contains("HMaster") || serverName.contains("master")) {
+    if (serverName.startsWith("HMaster") || serverName.startsWith("master")) {
       return "Master";
-    } else if (serverName.contains("HRegion") || 
serverName.contains("regionserver")) {
+    } else if (serverName.startsWith("HRegion") || 
serverName.startsWith("regionserver")) {
       return "RegionServer";
     }
     return "IPC";

http://git-wip-us.apache.org/repos/asf/hbase/blob/3606b890/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcMetrics.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcMetrics.java 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcMetrics.java
index 52518f8..2b8bdd7 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcMetrics.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcMetrics.java
@@ -137,5 +137,34 @@ public class TestRpcMetrics {
     HELPER.assertCounter("exceptions", 5, serverSource);
   }
 
+  @Test
+  public void testServerContextNameWithHostName() {
+    String[] masterServerNames = { "master/node-xyz/10.19.250.253:16020",
+        "master/node-regionserver-xyz/10.19.250.253:16020", 
"HMaster/node-xyz/10.19.250.253:16020",
+        "HMaster/node-regionserver-xyz/10.19.250.253:16020" };
+
+    String[] regionServerNames = { "regionserver/node-xyz/10.19.250.253:16020",
+        "regionserver/node-master1-xyz/10.19.250.253:16020",
+        "HRegionserver/node-xyz/10.19.250.253:16020",
+        "HRegionserver/node-master1-xyz/10.19.250.253:16020" };
+
+    MetricsHBaseServerSource masterSource = null;
+    for (String serverName : masterServerNames) {
+      masterSource = new MetricsHBaseServer(serverName, new 
MetricsHBaseServerWrapperStub())
+          .getMetricsSource();
+      assertEquals("master", masterSource.getMetricsContext());
+      assertEquals("Master,sub=IPC", masterSource.getMetricsJmxContext());
+      assertEquals("Master", masterSource.getMetricsName());
+    }
+
+    MetricsHBaseServerSource rsSource = null;
+    for (String serverName : regionServerNames) {
+      rsSource = new MetricsHBaseServer(serverName, new 
MetricsHBaseServerWrapperStub())
+          .getMetricsSource();
+      assertEquals("regionserver", rsSource.getMetricsContext());
+      assertEquals("RegionServer,sub=IPC", rsSource.getMetricsJmxContext());
+      assertEquals("RegionServer", rsSource.getMetricsName());
+    }
+  }
 }
 

Reply via email to