Repository: hbase
Updated Branches:
  refs/heads/master 6bad35e72 -> 880db3eee


HBASE-17965 Canary tool should print the regionserver name on failure

Signed-off-by: Andrew Purtell <[email protected]>


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

Branch: refs/heads/master
Commit: 880db3eee4f1908854f4ac9f778758213eaab20a
Parents: eb6ded4
Author: Karan Mehta <[email protected]>
Authored: Wed Apr 26 17:14:02 2017 -0700
Committer: Andrew Purtell <[email protected]>
Committed: Wed Apr 26 18:30:13 2017 -0700

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/tool/Canary.java    | 56 ++++++++++----------
 .../hadoop/hbase/tool/TestCanaryTool.java       | 12 ++---
 2 files changed, 32 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/880db3ee/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
index 9b048ea..475e811 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
@@ -116,15 +116,15 @@ public final class Canary implements Tool {
   public interface Sink {
     public long getReadFailureCount();
     public long incReadFailureCount();
-    public void publishReadFailure(HRegionInfo region, Exception e);
-    public void publishReadFailure(HRegionInfo region, HColumnDescriptor 
column, Exception e);
+    public void publishReadFailure(ServerName serverName, HRegionInfo region, 
Exception e);
+    public void publishReadFailure(ServerName serverName, HRegionInfo region, 
HColumnDescriptor column, Exception e);
     public void updateReadFailedHostList(HRegionInfo region, String 
serverName);
     public Map<String,String> getReadFailures();
-    public void publishReadTiming(HRegionInfo region, HColumnDescriptor 
column, long msTime);
+    public void publishReadTiming(ServerName serverName, HRegionInfo region, 
HColumnDescriptor column, long msTime);
     public long getWriteFailureCount();
-    public void publishWriteFailure(HRegionInfo region, Exception e);
-    public void publishWriteFailure(HRegionInfo region, HColumnDescriptor 
column, Exception e);
-    public void publishWriteTiming(HRegionInfo region, HColumnDescriptor 
column, long msTime);
+    public void publishWriteFailure(ServerName serverName, HRegionInfo region, 
Exception e);
+    public void publishWriteFailure(ServerName serverName, HRegionInfo region, 
HColumnDescriptor column, Exception e);
+    public void publishWriteTiming(ServerName serverName, HRegionInfo region, 
HColumnDescriptor column, long msTime);
     public void updateWriteFailedHostList(HRegionInfo region, String 
serverName);
     public Map<String,String> getWriteFailures();
   }
@@ -155,16 +155,16 @@ public final class Canary implements Tool {
     }
 
     @Override
-    public void publishReadFailure(HRegionInfo region, Exception e) {
+    public void publishReadFailure(ServerName serverName, HRegionInfo region, 
Exception e) {
       readFailureCount.incrementAndGet();
-      LOG.error(String.format("read from region %s failed", 
region.getRegionNameAsString()), e);
+      LOG.error(String.format("read from region %s on regionserver %s failed", 
region.getRegionNameAsString(), serverName), e);
     }
 
     @Override
-    public void publishReadFailure(HRegionInfo region, HColumnDescriptor 
column, Exception e) {
+    public void publishReadFailure(ServerName serverName, HRegionInfo region, 
HColumnDescriptor column, Exception e) {
       readFailureCount.incrementAndGet();
-      LOG.error(String.format("read from region %s column family %s failed",
-                region.getRegionNameAsString(), column.getNameAsString()), e);
+      LOG.error(String.format("read from region %s on regionserver %s column 
family %s failed",
+                region.getRegionNameAsString(), serverName, 
column.getNameAsString()), e);
     }
 
     @Override
@@ -173,9 +173,9 @@ public final class Canary implements Tool {
     }
 
     @Override
-    public void publishReadTiming(HRegionInfo region, HColumnDescriptor 
column, long msTime) {
-      LOG.info(String.format("read from region %s column family %s in %dms",
-        region.getRegionNameAsString(), column.getNameAsString(), msTime));
+    public void publishReadTiming(ServerName serverName, HRegionInfo region, 
HColumnDescriptor column, long msTime) {
+      LOG.info(String.format("read from region %s on regionserver %s column 
family %s in %dms",
+        region.getRegionNameAsString(), serverName, column.getNameAsString(), 
msTime));
     }
 
     @Override
@@ -194,22 +194,22 @@ public final class Canary implements Tool {
     }
 
     @Override
-    public void publishWriteFailure(HRegionInfo region, Exception e) {
+    public void publishWriteFailure(ServerName serverName, HRegionInfo region, 
Exception e) {
       writeFailureCount.incrementAndGet();
-      LOG.error(String.format("write to region %s failed", 
region.getRegionNameAsString()), e);
+      LOG.error(String.format("write to region %s on regionserver %s failed", 
region.getRegionNameAsString(), serverName), e);
     }
 
     @Override
-    public void publishWriteFailure(HRegionInfo region, HColumnDescriptor 
column, Exception e) {
+    public void publishWriteFailure(ServerName serverName, HRegionInfo region, 
HColumnDescriptor column, Exception e) {
       writeFailureCount.incrementAndGet();
-      LOG.error(String.format("write to region %s column family %s failed",
-        region.getRegionNameAsString(), column.getNameAsString()), e);
+      LOG.error(String.format("write to region %s on regionserver %s column 
family %s failed",
+        region.getRegionNameAsString(), serverName, column.getNameAsString()), 
e);
     }
 
     @Override
-    public void publishWriteTiming(HRegionInfo region, HColumnDescriptor 
column, long msTime) {
-      LOG.info(String.format("write to region %s column family %s in %dms",
-        region.getRegionNameAsString(), column.getNameAsString(), msTime));
+    public void publishWriteTiming(ServerName serverName, HRegionInfo region, 
HColumnDescriptor column, long msTime) {
+      LOG.info(String.format("write to region %s on regionserver %s column 
family %s in %dms",
+        region.getRegionNameAsString(), serverName, column.getNameAsString(), 
msTime));
     }
 
     @Override
@@ -332,7 +332,7 @@ public final class Canary implements Tool {
         tableDesc = table.getTableDescriptor();
       } catch (IOException e) {
         LOG.debug("sniffRegion failed", e);
-        sink.publishReadFailure(region, e);
+        sink.publishReadFailure(serverName, region, e);
         if (table != null) {
           try {
             table.close();
@@ -386,9 +386,9 @@ public final class Canary implements Tool {
             rs.next();
           }
           stopWatch.stop();
-          sink.publishReadTiming(region, column, stopWatch.getTime());
+          sink.publishReadTiming(serverName, region, column, 
stopWatch.getTime());
         } catch (Exception e) {
-          sink.publishReadFailure(region, column, e);
+          sink.publishReadFailure(serverName, region, column, e);
           sink.updateReadFailedHostList(region, serverName.getHostname());
         } finally {
           if (rs != null) {
@@ -438,14 +438,14 @@ public final class Canary implements Tool {
             long startTime = System.currentTimeMillis();
             table.put(put);
             long time = System.currentTimeMillis() - startTime;
-            sink.publishWriteTiming(region, column, time);
+            sink.publishWriteTiming(serverName, region, column, time);
           } catch (Exception e) {
-            sink.publishWriteFailure(region, column, e);
+            sink.publishWriteFailure(serverName, region, column, e);
           }
         }
         table.close();
       } catch (IOException e) {
-        sink.publishWriteFailure(region, e);
+        sink.publishWriteFailure(serverName, region, e);
         sink.updateWriteFailedHostList(region, serverName.getHostname());
       }
       return null;

http://git-wip-us.apache.org/repos/asf/hbase/blob/880db3ee/hbase-server/src/test/java/org/apache/hadoop/hbase/tool/TestCanaryTool.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/tool/TestCanaryTool.java 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/tool/TestCanaryTool.java
index 5b8acd2..0c9ae06 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/tool/TestCanaryTool.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/tool/TestCanaryTool.java
@@ -1,5 +1,5 @@
 /**
- *
+q *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -19,10 +19,7 @@
 
 package org.apache.hadoop.hbase.tool;
 
-import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.HColumnDescriptor;
-import org.apache.hadoop.hbase.HRegionInfo;
-import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.*;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Table;
 import org.apache.hadoop.hbase.testclassification.MediumTests;
@@ -32,7 +29,6 @@ import org.apache.log4j.Appender;
 import org.apache.log4j.LogManager;
 import org.apache.log4j.spi.LoggingEvent;
 import com.google.common.collect.Iterables;
-import org.apache.hadoop.hbase.HConstants;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -120,7 +116,7 @@ public class TestCanaryTool {
     ToolRunner.run(testingUtility.getConfiguration(), canary, args);
     assertEquals("verify no read error count", 0, 
canary.getReadFailures().size());
     assertEquals("verify no write error count", 0, 
canary.getWriteFailures().size());
-    verify(sink, atLeastOnce()).publishReadTiming(isA(HRegionInfo.class), 
isA(HColumnDescriptor.class), anyLong());
+    verify(sink, atLeastOnce()).publishReadTiming(isA(ServerName.class), 
isA(HRegionInfo.class), isA(HColumnDescriptor.class), anyLong());
   }
 
   //no table created, so there should be no regions
@@ -168,7 +164,7 @@ public class TestCanaryTool {
     conf.setBoolean(HConstants.HBASE_CANARY_READ_RAW_SCAN_KEY, true);
     ToolRunner.run(conf, canary, args);
     verify(sink, atLeastOnce())
-        .publishReadTiming(isA(HRegionInfo.class), 
isA(HColumnDescriptor.class), anyLong());
+        .publishReadTiming(isA(ServerName.class), isA(HRegionInfo.class), 
isA(HColumnDescriptor.class), anyLong());
     assertEquals("verify no read error count", 0, 
canary.getReadFailures().size());
   }
 

Reply via email to