HBASE-20298 Doc change in read/write/total accounting metrics

This commit is contained in:
Michael Stack 2018-03-27 14:50:00 -07:00
parent 6318e3bf5f
commit b1b0db3195
4 changed files with 28 additions and 27 deletions

View File

@ -238,26 +238,30 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
String MIN_STORE_FILE_AGE = "minStoreFileAge"; String MIN_STORE_FILE_AGE = "minStoreFileAge";
String AVG_STORE_FILE_AGE = "avgStoreFileAge"; String AVG_STORE_FILE_AGE = "avgStoreFileAge";
String NUM_REFERENCE_FILES = "numReferenceFiles"; String NUM_REFERENCE_FILES = "numReferenceFiles";
String MAX_STORE_FILE_AGE_DESC = "Max age of store files hosted on this region server"; String MAX_STORE_FILE_AGE_DESC = "Max age of store files hosted on this RegionServer";
String MIN_STORE_FILE_AGE_DESC = "Min age of store files hosted on this region server"; String MIN_STORE_FILE_AGE_DESC = "Min age of store files hosted on this RegionServer";
String AVG_STORE_FILE_AGE_DESC = "Average age of store files hosted on this region server"; String AVG_STORE_FILE_AGE_DESC = "Average age of store files hosted on this RegionServer";
String NUM_REFERENCE_FILES_DESC = "Number of reference file on this region server"; String NUM_REFERENCE_FILES_DESC = "Number of reference file on this RegionServer";
String STOREFILE_SIZE_DESC = "Size of storefiles being served."; String STOREFILE_SIZE_DESC = "Size of storefiles being served.";
String TOTAL_REQUEST_COUNT = "totalRequestCount"; String TOTAL_REQUEST_COUNT = "totalRequestCount";
String TOTAL_REQUEST_COUNT_DESC = String TOTAL_REQUEST_COUNT_DESC =
"Total number of requests this RegionServer has answered."; "Total number of requests this RegionServer has answered; increments the count once for " +
"EVERY access whether an admin operation, a Scan, a Put or Put of 1M rows, or a Get " +
"of a non-existent row";
String TOTAL_ROW_ACTION_REQUEST_COUNT = "totalRowActionRequestCount"; String TOTAL_ROW_ACTION_REQUEST_COUNT = "totalRowActionRequestCount";
String TOTAL_ROW_ACTION_REQUEST_COUNT_DESC = String TOTAL_ROW_ACTION_REQUEST_COUNT_DESC =
"Total number of region requests this RegionServer has answered, count by row-level action"; "Total number of region requests this RegionServer has answered; counts by row-level " +
"action at the RPC Server (Sums 'readRequestsCount' and 'writeRequestsCount'); counts" +
"once per access whether a Put of 1M rows or a Get that returns 1M Results";
String READ_REQUEST_COUNT = "readRequestCount"; String READ_REQUEST_COUNT = "readRequestCount";
String READ_REQUEST_COUNT_DESC = String READ_REQUEST_COUNT_DESC =
"Number of read requests this region server has answered."; "Number of read requests with non-empty Results that this RegionServer has answered.";
String FILTERED_READ_REQUEST_COUNT = "filteredReadRequestCount"; String FILTERED_READ_REQUEST_COUNT = "filteredReadRequestCount";
String FILTERED_READ_REQUEST_COUNT_DESC = String FILTERED_READ_REQUEST_COUNT_DESC =
"Number of filtered read requests this region server has answered."; "Number of filtered read requests this RegionServer has answered.";
String WRITE_REQUEST_COUNT = "writeRequestCount"; String WRITE_REQUEST_COUNT = "writeRequestCount";
String WRITE_REQUEST_COUNT_DESC = String WRITE_REQUEST_COUNT_DESC =
"Number of mutation requests this region server has answered."; "Number of mutation requests this RegionServer has answered.";
String CHECK_MUTATE_FAILED_COUNT = "checkMutateFailedCount"; String CHECK_MUTATE_FAILED_COUNT = "checkMutateFailedCount";
String CHECK_MUTATE_FAILED_COUNT_DESC = String CHECK_MUTATE_FAILED_COUNT_DESC =
"Number of Check and Mutate calls that failed the checks."; "Number of Check and Mutate calls that failed the checks.";
@ -527,17 +531,17 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
= "Total number of bytes that is output from compaction, major only"; = "Total number of bytes that is output from compaction, major only";
String RPC_GET_REQUEST_COUNT = "rpcGetRequestCount"; String RPC_GET_REQUEST_COUNT = "rpcGetRequestCount";
String RPC_GET_REQUEST_COUNT_DESC = "Number of rpc get requests this region server has answered."; String RPC_GET_REQUEST_COUNT_DESC = "Number of rpc get requests this RegionServer has answered.";
String RPC_SCAN_REQUEST_COUNT = "rpcScanRequestCount"; String RPC_SCAN_REQUEST_COUNT = "rpcScanRequestCount";
String RPC_SCAN_REQUEST_COUNT_DESC = String RPC_SCAN_REQUEST_COUNT_DESC =
"Number of rpc scan requests this region server has answered."; "Number of rpc scan requests this RegionServer has answered.";
String RPC_MULTI_REQUEST_COUNT = "rpcMultiRequestCount"; String RPC_MULTI_REQUEST_COUNT = "rpcMultiRequestCount";
String RPC_MULTI_REQUEST_COUNT_DESC = String RPC_MULTI_REQUEST_COUNT_DESC =
"Number of rpc multi requests this region server has answered."; "Number of rpc multi requests this RegionServer has answered.";
String RPC_MUTATE_REQUEST_COUNT = "rpcMutateRequestCount"; String RPC_MUTATE_REQUEST_COUNT = "rpcMutateRequestCount";
String RPC_MUTATE_REQUEST_COUNT_DESC = String RPC_MUTATE_REQUEST_COUNT_DESC =
"Number of rpc mutation requests this region server has answered."; "Number of rpc mutation requests this RegionServer has answered.";
String AVERAGE_REGION_SIZE = "averageRegionSize"; String AVERAGE_REGION_SIZE = "averageRegionSize";
String AVERAGE_REGION_SIZE_DESC = String AVERAGE_REGION_SIZE_DESC =
"Average region size over the region server including memstore and storefile sizes."; "Average region size over the RegionServer including memstore and storefile sizes.";
} }

View File

@ -80,6 +80,7 @@ public class FastPathBalancedQueueRpcExecutor extends BalancedQueueRpcExecutor {
// if an empty queue of CallRunners so we are available for direct handoff when one comes in. // if an empty queue of CallRunners so we are available for direct handoff when one comes in.
final Deque<FastPathHandler> fastPathHandlerStack; final Deque<FastPathHandler> fastPathHandlerStack;
// Semaphore to coordinate loading of fastpathed loadedTask and our running it. // Semaphore to coordinate loading of fastpathed loadedTask and our running it.
// UNFAIR synchronization.
private Semaphore semaphore = new Semaphore(0); private Semaphore semaphore = new Semaphore(0);
// The task we get when fast-pathing. // The task we get when fast-pathing.
private CallRunner loadedCallRunner; private CallRunner loadedCallRunner;
@ -112,7 +113,7 @@ public class FastPathBalancedQueueRpcExecutor extends BalancedQueueRpcExecutor {
} }
/** /**
* @param task Task gotten via fastpath. * @param cr Task gotten via fastpath.
* @return True if we successfully loaded our task * @return True if we successfully loaded our task
*/ */
boolean loadCallRunner(final CallRunner cr) { boolean loadCallRunner(final CallRunner cr) {

View File

@ -47,7 +47,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.function.Function; import java.util.function.Function;
import javax.management.MalformedObjectNameException; import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServlet;
import org.apache.commons.lang3.RandomUtils; import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -168,7 +167,6 @@ import org.apache.hadoop.hbase.zookeeper.ZKUtil;
import org.apache.hadoop.hbase.zookeeper.ZKWatcher; import org.apache.hadoop.hbase.zookeeper.ZKWatcher;
import org.apache.hadoop.hbase.zookeeper.ZNodePaths; import org.apache.hadoop.hbase.zookeeper.ZNodePaths;
import org.apache.hadoop.ipc.RemoteException; import org.apache.hadoop.ipc.RemoteException;
import org.apache.hadoop.metrics2.util.MBeans;
import org.apache.hadoop.util.ReflectionUtils; import org.apache.hadoop.util.ReflectionUtils;
import org.apache.yetus.audience.InterfaceAudience; import org.apache.yetus.audience.InterfaceAudience;
import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.KeeperException;
@ -459,11 +457,6 @@ public class HRegionServer extends HasThread implements
*/ */
protected String clusterId; protected String clusterId;
/**
* MX Bean for RegionServerInfo
*/
private ObjectName mxBean = null;
/** /**
* Chore to clean periodically the moved region list * Chore to clean periodically the moved region list
*/ */
@ -1024,12 +1017,9 @@ public class HRegionServer extends HasThread implements
abort(prefix + t.getMessage(), t); abort(prefix + t.getMessage(), t);
} }
} }
// Run shutdown. if (this.leases != null) {
if (mxBean != null) { this.leases.closeAfterLeasesExpire();
MBeans.unregister(mxBean);
mxBean = null;
} }
if (this.leases != null) this.leases.closeAfterLeasesExpire();
if (this.splitLogWorker != null) { if (this.splitLogWorker != null) {
splitLogWorker.stop(); splitLogWorker.stop();
} }

View File

@ -418,11 +418,17 @@ The following metrics have changed names:
The following metrics have changed their meaning: The following metrics have changed their meaning:
* The metric 'blockCacheEvictionCount' published on a per-region server basis no longer includes blocks removed from the cache due to the invalidation of the hfiles they are from (e.g. via compaction). * The metric 'blockCacheEvictionCount' published on a per-region server basis no longer includes blocks removed from the cache due to the invalidation of the hfiles they are from (e.g. via compaction).
* The metric 'totalRequestCount' increments once per request; previously it incremented by the number of `Actions` carried in the request; e.g. if a request was a `multi` made of four Gets and two Puts, we'd increment 'totalRequestCount' by six; now we increment by one regardless. Expect to see lower values for this metric in hbase-2.0.0.
* The 'readRequestCount' now counts reads that return a non-empty row where in older hbases, we'd increment 'readRequestCount' whether a Result or not. This change will flatten the profile of the read-requests graphs if requests for non-existent rows. A YCSB read-heavy workload can do this dependent on how the database was loaded.
The following metrics have been removed: The following metrics have been removed:
* Metrics related to the Distributed Log Replay feature are no longer present. They were previsouly found in the region server context under the name 'replay'. See the section [[upgrade2.0.distributed.log.replay]] for details. * Metrics related to the Distributed Log Replay feature are no longer present. They were previsouly found in the region server context under the name 'replay'. See the section [[upgrade2.0.distributed.log.replay]] for details.
The following metrics have been added:
* 'totalRowActionRequestCount' is a count of region row actions summing reads and writes.
[[upgrade2.0.zkconfig]] [[upgrade2.0.zkconfig]]
.ZooKeeper configs no longer read from zoo.cfg .ZooKeeper configs no longer read from zoo.cfg