@Override
  public int checkRegions(String[] targets) throws Exception {
    String configuredReadTableTimeoutsStr = conf.get(HBASE_CANARY_REGION_READ_TABLE_TIMEOUT);
    try {
      LOG.info("Canary tool is running in Region mode");
      if (configuredReadTableTimeoutsStr != null) {
        populateReadTableTimeoutsMap(configuredReadTableTimeoutsStr);
      }
    } catch (IllegalArgumentException e) {
      LOG.error("Constructing read table timeouts map failed ", e);
      return USAGE_EXIT_CODE;
    }
    return runMonitor(targets);
  }
HBase Canary Tool for "canary monitoring" of a running HBase cluster. There are three modes:
<ol>
<li>region mode (Default): For each region, try to get one row per column family outputting
information on failure (ERROR) or else the latency.</li>
<li>regionserver mode: For each regionserver try to get one row from one table selected randomly
outputting information on failure (ERROR) or else the latency.</li>
<li>zookeeper mode: for each zookeeper instance, selects a znode outputting information on
failure (ERROR) or else the latency.</li>
</ol>
hbase-server/src/main/java/org/apache/hadoop/hbase/tool/CanaryTool.java