001/*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements.  See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership.  The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License.  You may obtain a copy of the License at
009 *
010 *     http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018package org.apache.hadoop.hbase.regionserver;
019
020import org.apache.hadoop.hbase.metrics.BaseSource;
021import org.apache.hadoop.hbase.metrics.JvmPauseMonitorSource;
022import org.apache.yetus.audience.InterfaceAudience;
023
024/**
025 * Interface for classes that expose metrics about the regionserver.
026 */
027@InterfaceAudience.Private
028public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSource {
029
030  /**
031   * The name of the metrics
032   */
033  String METRICS_NAME = "Server";
034
035  /**
036   * The name of the metrics context that metrics will be under.
037   */
038  String METRICS_CONTEXT = "regionserver";
039
040  /**
041   * Description
042   */
043  String METRICS_DESCRIPTION = "Metrics about HBase RegionServer";
044
045  /**
046   * The name of the metrics context that metrics will be under in jmx
047   */
048  String METRICS_JMX_CONTEXT = "RegionServer,sub=" + METRICS_NAME;
049
050  /**
051   * Update the Put time histogram
052   * @param t time it took
053   */
054  void updatePut(long t);
055
056  /**
057   * Update the PutBatch time histogram if a batch contains a Put op
058   * @param t time it took
059   */
060  void updatePutBatch(long t);
061
062  /**
063   * Update the Delete time histogram
064   * @param t time it took
065   */
066  void updateDelete(long t);
067
068  /**
069   * Update the Delete time histogram if a batch contains a delete op
070   * @param t time it took
071   */
072  void updateDeleteBatch(long t);
073
074  /**
075   * Update checkAndDelete histogram
076   * @param t time it took
077   */
078  void updateCheckAndDelete(long t);
079
080  /**
081   * Update checkAndPut histogram
082   * @param t time it took
083   */
084  void updateCheckAndPut(long t);
085
086  /**
087   * Update checkAndMutate histogram
088   * @param time              time it took
089   * @param blockBytesScanned how many block bytes were scanned for the check portion of the request
090   */
091  void updateCheckAndMutate(long time, long blockBytesScanned);
092
093  /**
094   * Update the Get time histogram .
095   * @param time              time it took
096   * @param blockBytesScanned how many block bytes were scanned for the request
097   */
098  void updateGet(long time, long blockBytesScanned);
099
100  /**
101   * Update the Increment time histogram.
102   * @param time              time it took
103   * @param blockBytesScanned how many block bytes were scanned fetching the current value to
104   *                          increment
105   */
106  void updateIncrement(long time, long blockBytesScanned);
107
108  /**
109   * Update the Append time histogram.
110   * @param time              time it took
111   * @param blockBytesScanned how many block bytes were scanned fetching the current value to append
112   */
113  void updateAppend(long time, long blockBytesScanned);
114
115  /**
116   * Update the Replay time histogram.
117   * @param t time it took
118   */
119  void updateReplay(long t);
120
121  /**
122   * Update the scan metrics.
123   * @param time              response time of scan
124   * @param responseCellSize  size of the scan resposne
125   * @param blockBytesScanned size of block bytes scanned to retrieve the response
126   */
127  void updateScan(long time, long responseCellSize, long blockBytesScanned);
128
129  /**
130   * Increment the number of slow Puts that have happened.
131   */
132  void incrSlowPut();
133
134  /**
135   * Increment the number of slow Deletes that have happened.
136   */
137  void incrSlowDelete();
138
139  /**
140   * Increment the number of slow Gets that have happened.
141   */
142  void incrSlowGet();
143
144  /**
145   * Increment the number of slow Increments that have happened.
146   */
147  void incrSlowIncrement();
148
149  /**
150   * Increment the number of slow Appends that have happened.
151   */
152  void incrSlowAppend();
153
154  /**
155   * Update the split transaction time histogram
156   * @param t time it took, in milliseconds
157   */
158  void updateSplitTime(long t);
159
160  /**
161   * Increment number of a requested splits
162   */
163  void incrSplitRequest();
164
165  /**
166   * Increment number of successful splits
167   */
168  void incrSplitSuccess();
169
170  /**
171   * Update the flush time histogram
172   * @param t time it took, in milliseconds
173   */
174  void updateFlushTime(long t);
175
176  /**
177   * Update the flush memstore size histogram
178   * @param bytes the number of bytes in the memstore
179   */
180  void updateFlushMemStoreSize(long bytes);
181
182  /**
183   * Update the flush output file size histogram
184   * @param bytes the number of bytes in the output file
185   */
186  void updateFlushOutputSize(long bytes);
187
188  /**
189   * Update the compaction time histogram, both major and minor
190   * @param isMajor whether compaction is a major compaction
191   * @param t       time it took, in milliseconds
192   */
193  void updateCompactionTime(boolean isMajor, long t);
194
195  /**
196   * Update the compaction input number of files histogram
197   * @param isMajor whether compaction is a major compaction
198   * @param c       number of files
199   */
200  void updateCompactionInputFileCount(boolean isMajor, long c);
201
202  /**
203   * Update the compaction total input file size histogram
204   * @param isMajor whether compaction is a major compaction
205   * @param bytes   the number of bytes of the compaction input file
206   */
207  void updateCompactionInputSize(boolean isMajor, long bytes);
208
209  /**
210   * Update the compaction output number of files histogram
211   * @param isMajor whether compaction is a major compaction
212   * @param c       number of files
213   */
214  void updateCompactionOutputFileCount(boolean isMajor, long c);
215
216  /**
217   * Update the compaction total output file size
218   * @param isMajor whether compaction is a major compaction
219   * @param bytes   the number of bytes of the compaction input file
220   */
221  void updateCompactionOutputSize(boolean isMajor, long bytes);
222
223  void incrScannerLeaseExpired();
224
225  // Strings used for exporting to metrics system.
226  String REGION_COUNT = "regionCount";
227  String REGION_COUNT_DESC = "Number of regions";
228  String STORE_COUNT = "storeCount";
229  String STORE_COUNT_DESC = "Number of Stores";
230  String WALFILE_COUNT = "hlogFileCount";
231  String WALFILE_COUNT_DESC = "Number of WAL Files";
232  String WALFILE_SIZE = "hlogFileSize";
233  String WALFILE_SIZE_DESC = "Size of all WAL Files";
234  String STOREFILE_COUNT = "storeFileCount";
235  String STOREFILE_COUNT_DESC = "Number of Store Files";
236  String STORE_REF_COUNT = "storeRefCount";
237  String STORE_REF_COUNT_DESC = "Store reference count";
238  String MAX_COMPACTED_STORE_FILE_REF_COUNT = "maxCompactedStoreFileRefCount";
239  String MEMSTORE_SIZE = "memStoreSize";
240  String MEMSTORE_SIZE_DESC = "Size of the memstore";
241  String MEMSTORE_HEAP_SIZE = "memStoreHeapSize";
242  String MEMSTORE_HEAP_SIZE_DESC = "On-heap Size of the memstore";
243  String MEMSTORE_OFFHEAP_SIZE = "memStoreOffHeapSize";
244  String MEMSTORE_OFFHEAP_SIZE_DESC = "Off-heap Size of the memstore";
245  String STOREFILE_SIZE = "storeFileSize";
246  String STOREFILE_SIZE_GROWTH_RATE = "storeFileSizeGrowthRate";
247  String MAX_STORE_FILE_AGE = "maxStoreFileAge";
248  String MIN_STORE_FILE_AGE = "minStoreFileAge";
249  String AVG_STORE_FILE_AGE = "avgStoreFileAge";
250  String NUM_REFERENCE_FILES = "numReferenceFiles";
251  String MAX_STORE_FILE_AGE_DESC = "Max age of store files hosted on this RegionServer";
252  String MIN_STORE_FILE_AGE_DESC = "Min age of store files hosted on this RegionServer";
253  String AVG_STORE_FILE_AGE_DESC = "Average age of store files hosted on this RegionServer";
254  String NUM_REFERENCE_FILES_DESC = "Number of reference file on this RegionServer";
255  String STOREFILE_SIZE_DESC = "Size of storefiles being served.";
256  String STOREFILE_SIZE_GROWTH_RATE_DESC =
257    "Bytes per second by which the size of storefiles being served grows.";
258  String TOTAL_REQUEST_COUNT = "totalRequestCount";
259  String TOTAL_REQUEST_COUNT_DESC =
260    "Total number of requests this RegionServer has answered; increments the count once for "
261      + "EVERY access whether an admin operation, a Scan, a Put or Put of 1M rows, or a Get "
262      + "of a non-existent row";
263  String TOTAL_ROW_ACTION_REQUEST_COUNT = "totalRowActionRequestCount";
264  String TOTAL_ROW_ACTION_REQUEST_COUNT_DESC =
265    "Total number of region requests this RegionServer has answered; counts by row-level "
266      + "action at the RPC Server (Sums 'readRequestsCount' and 'writeRequestsCount'); counts"
267      + "once per access whether a Put of 1M rows or a Get that returns 1M Results";
268  String READ_REQUEST_COUNT = "readRequestCount";
269  String FILTERED_READ_REQUEST_COUNT = "filteredReadRequestCount";
270  String FILTERED_READ_REQUEST_COUNT_DESC =
271    "Number of read requests this region server has answered.";
272  String READ_REQUEST_COUNT_DESC =
273    "Number of read requests with non-empty Results that this RegionServer has answered.";
274  String READ_REQUEST_RATE_PER_SECOND = "readRequestRatePerSecond";
275  String READ_REQUEST_RATE_DESC =
276    "Rate of answering the read requests by this region server per second.";
277  String CP_REQUEST_COUNT = "cpRequestCount";
278  String CP_REQUEST_COUNT_DESC =
279    "Number of coprocessor service requests this region server has answered.";
280  String WRITE_REQUEST_COUNT = "writeRequestCount";
281  String WRITE_REQUEST_COUNT_DESC = "Number of mutation requests this RegionServer has answered.";
282  String WRITE_REQUEST_RATE_PER_SECOND = "writeRequestRatePerSecond";
283  String WRITE_REQUEST_RATE_DESC =
284    "Rate of answering the mutation requests by this region server per second.";
285  String CHECK_MUTATE_FAILED_COUNT = "checkMutateFailedCount";
286  String CHECK_MUTATE_FAILED_COUNT_DESC =
287    "Number of Check and Mutate calls that failed the checks.";
288  String CHECK_MUTATE_PASSED_COUNT = "checkMutatePassedCount";
289  String CHECK_MUTATE_PASSED_COUNT_DESC =
290    "Number of Check and Mutate calls that passed the checks.";
291  String STOREFILE_INDEX_SIZE = "storeFileIndexSize";
292  String STOREFILE_INDEX_SIZE_DESC = "Size of indexes in storefiles on disk.";
293  String STATIC_INDEX_SIZE = "staticIndexSize";
294  String STATIC_INDEX_SIZE_DESC = "Uncompressed size of the static indexes.";
295  String STATIC_BLOOM_SIZE = "staticBloomSize";
296  String STATIC_BLOOM_SIZE_DESC = "Uncompressed size of the static bloom filters.";
297
298  String BLOOM_FILTER_REQUESTS_COUNT = "bloomFilterRequestsCount";
299  String BLOOM_FILTER_REQUESTS_COUNT_DESC = "Count of requests to bloom filters.";
300
301  String BLOOM_FILTER_NEGATIVE_RESULTS_COUNT = "bloomFilterNegativeResultsCount";
302  String BLOOM_FILTER_NEGATIVE_RESULTS_COUNT_DESC =
303    "Count of bloom filter requests which returned a negative result.";
304
305  String BLOOM_FILTER_ELIGIBLE_REQUESTS_COUNT = "bloomFilterEligibleRequestsCount";
306  String BLOOM_FILTER_ELIGIBLE_REQUESTS_COUNT_DESC =
307    "Count of requests which could have used bloom filters but didn't because they weren't configured or loaded";
308
309  String NUMBER_OF_MUTATIONS_WITHOUT_WAL = "mutationsWithoutWALCount";
310  String NUMBER_OF_MUTATIONS_WITHOUT_WAL_DESC =
311    "Number of mutations that have been sent by clients with the write ahead logging turned off.";
312  String DATA_SIZE_WITHOUT_WAL = "mutationsWithoutWALSize";
313  String DATA_SIZE_WITHOUT_WAL_DESC =
314    "Size of data that has been sent by clients with the write ahead logging turned off.";
315  String PERCENT_FILES_LOCAL = "percentFilesLocal";
316  String PERCENT_FILES_LOCAL_DESC =
317    "The percent of HFiles that are stored on the local hdfs data node. If not using "
318      + "region replicas, this should equal percentFilesLocalPrimaryRegions";
319  String PERCENT_FILES_LOCAL_PRIMARY_REGIONS = "percentFilesLocalPrimaryRegions";
320  String PERCENT_FILES_LOCAL_PRIMARY_REGIONS_DESC =
321    "The percent of HFiles used by primary regions that are stored on the local hdfs data node. "
322      + "This is the category of locality that you want to reach 100% when using region replicas";
323  String PERCENT_FILES_LOCAL_SECONDARY_REGIONS = "percentFilesLocalSecondaryRegions";
324  String PERCENT_FILES_LOCAL_SECONDARY_REGIONS_DESC =
325    "The percent of HFiles used by secondary regions that are stored on the local hdfs data node. "
326      + "This is not likely to reach 100%";
327  String SPLIT_QUEUE_LENGTH = "splitQueueLength";
328  String SPLIT_QUEUE_LENGTH_DESC = "Length of the queue for splits.";
329  String COMPACTION_QUEUE_LENGTH = "compactionQueueLength";
330  String LARGE_COMPACTION_QUEUE_LENGTH = "largeCompactionQueueLength";
331  String SMALL_COMPACTION_QUEUE_LENGTH = "smallCompactionQueueLength";
332  String COMPACTION_QUEUE_LENGTH_DESC = "Length of the queue for compactions.";
333  String LARGE_COMPACTION_QUEUE_LENGTH_DESC = "Length of the queue for compactions with input size "
334    + "larger than throttle threshold (2.5GB by default)";
335  String SMALL_COMPACTION_QUEUE_LENGTH_DESC = "Length of the queue for compactions with input size "
336    + "smaller than throttle threshold (2.5GB by default)";
337  String FLUSH_QUEUE_LENGTH = "flushQueueLength";
338  String FLUSH_QUEUE_LENGTH_DESC = "Length of the queue for region flushes";
339  String BLOCK_CACHE_FREE_SIZE = "blockCacheFreeSize";
340  String BLOCK_CACHE_FREE_DESC = "Size of the block cache that is not occupied.";
341  String BLOCK_CACHE_COUNT = "blockCacheCount";
342  String BLOCK_CACHE_COUNT_DESC = "Number of block in the block cache.";
343  String BLOCK_CACHE_DATA_BLOCK_COUNT = "blockCacheDataBlockCount";
344  String BLOCK_CACHE_DATA_BLOCK_COUNT_DESC = "Number of DATA block in the block cache.";
345  String BLOCK_CACHE_SIZE = "blockCacheSize";
346  String BLOCK_CACHE_SIZE_DESC = "Size of the block cache.";
347  String BLOCK_CACHE_HIT_COUNT = "blockCacheHitCount";
348  String BLOCK_CACHE_HIT_COUNT_DESC = "Count of the hit on the block cache.";
349  String BLOCK_CACHE_PRIMARY_HIT_COUNT = "blockCacheHitCountPrimary";
350  String BLOCK_CACHE_PRIMARY_HIT_COUNT_DESC = "Count of hit on primary replica in the block cache.";
351  String BLOCK_CACHE_HIT_CACHING_COUNT = "blockCacheHitCachingCount";
352  String BLOCK_CACHE_HIT_CACHING_COUNT_DESC =
353    "Count of the hit on the block cache, for cacheable requests.";
354  String BLOCK_CACHE_MISS_COUNT = "blockCacheMissCount";
355  String BLOCK_COUNT_MISS_COUNT_DESC =
356    "Number of requests for a block that missed the block cache.";
357  String BLOCK_CACHE_PRIMARY_MISS_COUNT = "blockCacheMissCountPrimary";
358  String BLOCK_COUNT_PRIMARY_MISS_COUNT_DESC =
359    "Number of requests for a block of primary replica that missed the block cache.";
360  String BLOCK_CACHE_MISS_CACHING_COUNT = "blockCacheMissCachingCount";
361  String BLOCK_COUNT_MISS_CACHING_COUNT_DESC =
362    "Number of requests for a block that missed the block cache, for cacheable requests.";
363  String BLOCK_CACHE_EVICTION_COUNT = "blockCacheEvictionCount";
364  String BLOCK_CACHE_EVICTION_COUNT_DESC =
365    "Count of the number of blocks evicted from the block cache."
366      + "(Not including blocks evicted because of HFile removal)";
367  String BLOCK_CACHE_PRIMARY_EVICTION_COUNT = "blockCacheEvictionCountPrimary";
368  String BLOCK_CACHE_PRIMARY_EVICTION_COUNT_DESC =
369    "Count of the number of blocks evicted from primary replica in the block cache.";
370  String BLOCK_CACHE_HIT_PERCENT = "blockCacheCountHitPercent";
371  String BLOCK_CACHE_HIT_PERCENT_DESC = "Percent of block cache requests that are hits";
372  String BLOCK_CACHE_EXPRESS_HIT_PERCENT = "blockCacheExpressHitPercent";
373  String BLOCK_CACHE_EXPRESS_HIT_PERCENT_DESC =
374    "The percent of the time that requests with the cache turned on hit the cache.";
375  String BLOCK_CACHE_FAILED_INSERTION_COUNT = "blockCacheFailedInsertionCount";
376  String BLOCK_CACHE_FAILED_INSERTION_COUNT_DESC =
377    "Number of times that a block cache " + "insertion failed. Usually due to size restrictions.";
378  String BLOCK_CACHE_DATA_MISS_COUNT = "blockCacheDataMissCount";
379  String BLOCK_CACHE_ENCODED_DATA_MISS_COUNT = "blockCacheEncodedDataMissCount";
380  String BLOCK_CACHE_LEAF_INDEX_MISS_COUNT = "blockCacheLeafIndexMissCount";
381  String BLOCK_CACHE_BLOOM_CHUNK_MISS_COUNT = "blockCacheBloomChunkMissCount";
382  String BLOCK_CACHE_META_MISS_COUNT = "blockCacheMetaMissCount";
383  String BLOCK_CACHE_ROOT_INDEX_MISS_COUNT = "blockCacheRootIndexMissCount";
384  String BLOCK_CACHE_INTERMEDIATE_INDEX_MISS_COUNT = "blockCacheIntermediateIndexMissCount";
385  String BLOCK_CACHE_FILE_INFO_MISS_COUNT = "blockCacheFileInfoMissCount";
386  String BLOCK_CACHE_GENERAL_BLOOM_META_MISS_COUNT = "blockCacheGeneralBloomMetaMissCount";
387  String BLOCK_CACHE_DELETE_FAMILY_BLOOM_MISS_COUNT = "blockCacheDeleteFamilyBloomMissCount";
388  String BLOCK_CACHE_TRAILER_MISS_COUNT = "blockCacheTrailerMissCount";
389  String BLOCK_CACHE_DATA_HIT_COUNT = "blockCacheDataHitCount";
390  String BLOCK_CACHE_ENCODED_DATA_HIT_COUNT = "blockCacheEncodedDataHitCount";
391  String BLOCK_CACHE_LEAF_INDEX_HIT_COUNT = "blockCacheLeafIndexHitCount";
392  String BLOCK_CACHE_BLOOM_CHUNK_HIT_COUNT = "blockCacheBloomChunkHitCount";
393  String BLOCK_CACHE_META_HIT_COUNT = "blockCacheMetaHitCount";
394  String BLOCK_CACHE_ROOT_INDEX_HIT_COUNT = "blockCacheRootIndexHitCount";
395  String BLOCK_CACHE_INTERMEDIATE_INDEX_HIT_COUNT = "blockCacheIntermediateIndexHitCount";
396  String BLOCK_CACHE_FILE_INFO_HIT_COUNT = "blockCacheFileInfoHitCount";
397  String BLOCK_CACHE_GENERAL_BLOOM_META_HIT_COUNT = "blockCacheGeneralBloomMetaHitCount";
398  String BLOCK_CACHE_DELETE_FAMILY_BLOOM_HIT_COUNT = "blockCacheDeleteFamilyBloomHitCount";
399  String BLOCK_CACHE_TRAILER_HIT_COUNT = "blockCacheTrailerHitCount";
400  String L1_CACHE_FREE_SIZE = "l1CacheFreeSize";
401  String L1_CACHE_FREE_SIZE_DESC = "Amount of free bytes in the L1 cache";
402  String L1_CACHE_SIZE = "l1CacheSize";
403  String L1_CACHE_SIZE_DESC = "Size of the L1 cache in bytes";
404  String L1_CACHE_COUNT = "l1CacheCount";
405  String L1_CACHE_COUNT_DESC = "Count of blocks in the L1 cache";
406  String L1_CACHE_EVICTION_COUNT = "l1CacheEvictionCount";
407  String L1_CACHE_EVICTION_COUNT_DESC = "Count of blocks evicted from the L1 cache";
408
409  String L1_CACHE_HIT_COUNT = "l1CacheHitCount";
410  String L1_CACHE_HIT_COUNT_DESC = "L1 cache hit count.";
411  String L1_CACHE_HIT_CAGHING_COUNT = "l1CacheHitCachingCount";
412  String L1_CACHE_HIT_CAGHING_COUNT_DESC =
413    "Count of the hit on the L1 cache, for cacheable requests";
414  String L1_CACHE_MISS_COUNT = "l1CacheMissCount";
415  String L1_CACHE_MISS_COUNT_DESC = "L1 cache miss count.";
416  String L1_CACHE_MISS_CACHING_COUNT = "l1CacheMissCachingCount";
417  String L1_CACHE_MISS_CACHING_COUNT_DESC =
418    "Count of the misses on the L1 cache, for cacheable requests";
419  String L1_CACHE_HIT_RATIO = "l1CacheHitRatio";
420  String L1_CACHE_HIT_RATIO_DESC = "L1 cache hit ratio.";
421  String L1_CACHE_HIT_CACHING_RATIO = "l1CacheHitCachingRatio";
422  String L1_CACHE_HIT_CACHING_RATIO_DESC = "Hit Caching ratio of L1 cache";
423  String L1_CACHE_MISS_RATIO = "l1CacheMissRatio";
424  String L1_CACHE_MISS_RATIO_DESC = "L1 cache miss ratio.";
425  String L1_CACHE_MISS_CACHING_RATIO = "l1CacheMissCachingRatio";
426  String L1_CACHE_MISS_CACHING_RATIO_DESC = "Miss Caching ratio of L1 cache";
427  String L2_CACHE_FREE_SIZE = "l2CacheFreeSize";
428  String L2_CACHE_FREE_SIZE_DESC = "Amount of free bytes in the L2 cache";
429  String L2_CACHE_SIZE = "l2CacheSize";
430  String L2_CACHE_SIZE_DESC = "Size of the L2 cache in bytes";
431  String L2_CACHE_COUNT = "l2CacheCount";
432  String L2_CACHE_COUNT_DESC = "Count of blocks in the L2 cache";
433  String L2_CACHE_EVICTION_COUNT = "l2CacheEvictionCount";
434  String L2_CACHE_EVICTION_COUNT_DESC = "Count of blocks evicted from the L2 cache";
435  String L2_CACHE_HIT_COUNT = "l2CacheHitCount";
436  String L2_CACHE_HIT_COUNT_DESC = "L2 cache hit count.";
437  String L2_CACHE_HIT_CACHING_COUNT = "l2CacheHitCachingCount";
438  String L2_CACHE_HIT_CACHING_COUNT_DESC =
439    "Count of the hit on the L2 cache, for cacheable requests";
440  String L2_CACHE_MISS_COUNT = "l2CacheMissCount";
441  String L2_CACHE_MISS_COUNT_DESC = "L2 cache miss count.";
442  String L2_CACHE_MISS_CACHING_COUNT = "l2CacheMissCachingCount";
443  String L2_CACHE_MISS_CACHING_COUNT_DESC =
444    "Count of the misses on the L2 cache, for cacheable requests";
445  String L2_CACHE_HIT_RATIO = "l2CacheHitRatio";
446  String L2_CACHE_HIT_RATIO_DESC = "L2 cache hit ratio.";
447  String L2_CACHE_HIT_CACHING_RATIO = "l2CacheHitCachingRatio";
448  String L2_CACHE_HIT_CACHING_RATIO_DESC = "Hit Caching ratio of L2 cache";
449  String L2_CACHE_MISS_RATIO = "l2CacheMissRatio";
450  String L2_CACHE_MISS_RATIO_DESC = "L2 cache miss ratio.";
451  String L2_CACHE_MISS_CACHING_RATIO = "l2CacheMissCachingRatio";
452  String L2_CACHE_MISS_CACHING_RATIO_DESC = "Miss Caching ratio of L2 cache";
453  String RS_START_TIME_NAME = "regionServerStartTime";
454  String ZOOKEEPER_QUORUM_NAME = "zookeeperQuorum";
455  String SERVER_NAME_NAME = "serverName";
456  String CLUSTER_ID_NAME = "clusterId";
457  String RS_START_TIME_DESC = "RegionServer Start Time";
458  String ZOOKEEPER_QUORUM_DESC = "ZooKeeper Quorum";
459  String SERVER_NAME_DESC = "Server Name";
460  String CLUSTER_ID_DESC = "Cluster Id";
461  String UPDATES_BLOCKED_TIME = "updatesBlockedTime";
462  String UPDATES_BLOCKED_DESC =
463    "Number of MS updates have been blocked so that the memstore can be flushed.";
464  String DELETE_KEY = "delete";
465  String CHECK_AND_DELETE_KEY = "checkAndDelete";
466  String CHECK_AND_PUT_KEY = "checkAndPut";
467  String CHECK_AND_MUTATE_KEY = "checkAndMutate";
468  String DELETE_BATCH_KEY = "deleteBatch";
469  String GET_SIZE_KEY = "getSize";
470  String GET_KEY = "get";
471  String INCREMENT_KEY = "increment";
472  String PUT_KEY = "put";
473  String PUT_BATCH_KEY = "putBatch";
474  String APPEND_KEY = "append";
475  String REPLAY_KEY = "replay";
476  String SCAN_KEY = "scan";
477  String SCAN_SIZE_KEY = "scanSize";
478  String SCAN_TIME_KEY = "scanTime";
479
480  String BLOCK_BYTES_SCANNED_KEY = "blockBytesScannedCount";
481  String BLOCK_BYTES_SCANNED_DESC = "Count of block bytes scanned by read requests";
482  String GET_BLOCK_BYTES_SCANNED_KEY = "getBlockBytesScanned";
483  String SCAN_BLOCK_BYTES_SCANNED_KEY = "scanBlockBytesScanned";
484  String CHECK_AND_MUTATE_BLOCK_BYTES_SCANNED_KEY = "checkAndMutateBlockBytesScanned";
485  String INCREMENT_BLOCK_BYTES_SCANNED_KEY = "incrementBlockBytesScanned";
486  String APPEND_BLOCK_BYTES_SCANNED_KEY = "appendBlockBytesScanned";
487  String SLOW_PUT_KEY = "slowPutCount";
488  String SLOW_GET_KEY = "slowGetCount";
489  String SLOW_DELETE_KEY = "slowDeleteCount";
490  String SLOW_INCREMENT_KEY = "slowIncrementCount";
491  String SLOW_APPEND_KEY = "slowAppendCount";
492  String SLOW_PUT_DESC = "The number of batches containing puts that took over 1000ms to complete";
493  String SLOW_DELETE_DESC =
494    "The number of batches containing delete(s) that took over 1000ms to complete";
495  String SLOW_GET_DESC = "The number of Gets that took over 1000ms to complete";
496  String SLOW_INCREMENT_DESC = "The number of Increments that took over 1000ms to complete";
497  String SLOW_APPEND_DESC = "The number of Appends that took over 1000ms to complete";
498
499  String FLUSHED_CELLS = "flushedCellsCount";
500  String FLUSHED_CELLS_DESC = "The number of cells flushed to disk";
501  String FLUSHED_CELLS_SIZE = "flushedCellsSize";
502  String FLUSHED_CELLS_SIZE_DESC = "The total amount of data flushed to disk, in bytes";
503  String COMPACTED_CELLS = "compactedCellsCount";
504  String COMPACTED_CELLS_DESC = "The number of cells processed during minor compactions";
505  String COMPACTED_CELLS_SIZE = "compactedCellsSize";
506  String COMPACTED_CELLS_SIZE_DESC =
507    "The total amount of data processed during minor compactions, in bytes";
508  String MAJOR_COMPACTED_CELLS = "majorCompactedCellsCount";
509  String MAJOR_COMPACTED_CELLS_DESC = "The number of cells processed during major compactions";
510  String MAJOR_COMPACTED_CELLS_SIZE = "majorCompactedCellsSize";
511  String MAJOR_COMPACTED_CELLS_SIZE_DESC =
512    "The total amount of data processed during major compactions, in bytes";
513  String CELLS_COUNT_COMPACTED_TO_MOB = "cellsCountCompactedToMob";
514  String CELLS_COUNT_COMPACTED_TO_MOB_DESC = "The number of cells moved to mob during compaction";
515  String CELLS_COUNT_COMPACTED_FROM_MOB = "cellsCountCompactedFromMob";
516  String CELLS_COUNT_COMPACTED_FROM_MOB_DESC =
517    "The number of cells moved from mob during compaction";
518  String CELLS_SIZE_COMPACTED_TO_MOB = "cellsSizeCompactedToMob";
519  String CELLS_SIZE_COMPACTED_TO_MOB_DESC =
520    "The total amount of cells move to mob during compaction, in bytes";
521  String CELLS_SIZE_COMPACTED_FROM_MOB = "cellsSizeCompactedFromMob";
522  String CELLS_SIZE_COMPACTED_FROM_MOB_DESC =
523    "The total amount of cells move from mob during compaction, in bytes";
524  String MOB_FLUSH_COUNT = "mobFlushCount";
525  String MOB_FLUSH_COUNT_DESC = "The number of the flushes in mob-enabled stores";
526  String MOB_FLUSHED_CELLS_COUNT = "mobFlushedCellsCount";
527  String MOB_FLUSHED_CELLS_COUNT_DESC = "The number of mob cells flushed to disk";
528  String MOB_FLUSHED_CELLS_SIZE = "mobFlushedCellsSize";
529  String MOB_FLUSHED_CELLS_SIZE_DESC = "The total amount of mob cells flushed to disk, in bytes";
530  String MOB_SCAN_CELLS_COUNT = "mobScanCellsCount";
531  String MOB_SCAN_CELLS_COUNT_DESC = "The number of scanned mob cells";
532  String MOB_SCAN_CELLS_SIZE = "mobScanCellsSize";
533  String MOB_SCAN_CELLS_SIZE_DESC = "The total amount of scanned mob cells, in bytes";
534  String MOB_FILE_CACHE_ACCESS_COUNT = "mobFileCacheAccessCount";
535  String MOB_FILE_CACHE_ACCESS_COUNT_DESC = "The count of accesses to the mob file cache";
536  String MOB_FILE_CACHE_MISS_COUNT = "mobFileCacheMissCount";
537  String MOB_FILE_CACHE_MISS_COUNT_DESC = "The count of misses to the mob file cache";
538  String MOB_FILE_CACHE_HIT_PERCENT = "mobFileCacheHitPercent";
539  String MOB_FILE_CACHE_HIT_PERCENT_DESC = "The hit percent to the mob file cache";
540  String MOB_FILE_CACHE_EVICTED_COUNT = "mobFileCacheEvictedCount";
541  String MOB_FILE_CACHE_EVICTED_COUNT_DESC = "The number of items evicted from the mob file cache";
542  String MOB_FILE_CACHE_COUNT = "mobFileCacheCount";
543  String MOB_FILE_CACHE_COUNT_DESC = "The count of cached mob files";
544
545  String HEDGED_READS = "hedgedReads";
546  String HEDGED_READS_DESC = "The number of times we started a hedged read";
547  String HEDGED_READ_WINS = "hedgedReadWins";
548  String HEDGED_READ_WINS_DESC =
549    "The number of times we started a hedged read and a hedged read won";
550  String HEDGED_READ_IN_CUR_THREAD = "hedgedReadOpsInCurThread";
551  String HEDGED_READ_IN_CUR_THREAD_DESC = "The number of times we execute a hedged read"
552    + " in current thread as a fallback for task rejection";
553
554  String TOTAL_BYTES_READ = "totalBytesRead";
555  String TOTAL_BYTES_READ_DESC = "The total number of bytes read from HDFS";
556  String LOCAL_BYTES_READ = "localBytesRead";
557  String LOCAL_BYTES_READ_DESC = "The number of bytes read from the local HDFS DataNode";
558  String SHORTCIRCUIT_BYTES_READ = "shortCircuitBytesRead";
559  String SHORTCIRCUIT_BYTES_READ_DESC = "The number of bytes read through HDFS short circuit read";
560  String ZEROCOPY_BYTES_READ = "zeroCopyBytesRead";
561  String ZEROCOPY_BYTES_READ_DESC = "The number of bytes read through HDFS zero copy";
562
563  String BLOCKED_REQUESTS_COUNT = "blockedRequestCount";
564  String BLOCKED_REQUESTS_COUNT_DESC = "The number of blocked requests because of memstore size is "
565    + "larger than blockingMemStoreSize";
566
567  String SPLIT_KEY = "splitTime";
568  String SPLIT_REQUEST_KEY = "splitRequestCount";
569  String SPLIT_REQUEST_DESC = "Number of splits requested";
570  String SPLIT_SUCCESS_KEY = "splitSuccessCount";
571  String SPLIT_SUCCESS_DESC = "Number of successfully executed splits";
572
573  String FLUSH_TIME = "flushTime";
574  String FLUSH_TIME_DESC = "Histogram for the time in millis for memstore flush";
575  String FLUSH_MEMSTORE_SIZE = "flushMemstoreSize";
576  String FLUSH_MEMSTORE_SIZE_DESC = "Histogram for number of bytes in the memstore for a flush";
577  String FLUSH_OUTPUT_SIZE = "flushOutputSize";
578  String FLUSH_OUTPUT_SIZE_DESC = "Histogram for number of bytes in the resulting file for a flush";
579  String FLUSHED_OUTPUT_BYTES = "flushedOutputBytes";
580  String FLUSHED_OUTPUT_BYTES_DESC = "Total number of bytes written from flush";
581  String FLUSHED_MEMSTORE_BYTES = "flushedMemstoreBytes";
582  String FLUSHED_MEMSTORE_BYTES_DESC = "Total number of bytes of cells in memstore from flush";
583
584  String COMPACTION_TIME = "compactionTime";
585  String COMPACTION_TIME_DESC =
586    "Histogram for the time in millis for compaction, both major and minor";
587  String COMPACTION_INPUT_FILE_COUNT = "compactionInputFileCount";
588  String COMPACTION_INPUT_FILE_COUNT_DESC =
589    "Histogram for the compaction input number of files, both major and minor";
590  String COMPACTION_INPUT_SIZE = "compactionInputSize";
591  String COMPACTION_INPUT_SIZE_DESC =
592    "Histogram for the compaction total input file sizes, both major and minor";
593  String COMPACTION_OUTPUT_FILE_COUNT = "compactionOutputFileCount";
594  String COMPACTION_OUTPUT_FILE_COUNT_DESC =
595    "Histogram for the compaction output number of files, both major and minor";
596  String COMPACTION_OUTPUT_SIZE = "compactionOutputSize";
597  String COMPACTION_OUTPUT_SIZE_DESC =
598    "Histogram for the compaction total output file sizes, both major and minor";
599  String COMPACTED_INPUT_BYTES = "compactedInputBytes";
600  String COMPACTED_INPUT_BYTES_DESC =
601    "Total number of bytes that is read for compaction, both major and minor";
602  String COMPACTED_OUTPUT_BYTES = "compactedOutputBytes";
603  String COMPACTED_OUTPUT_BYTES_DESC =
604    "Total number of bytes that is output from compaction, both major and minor";
605
606  String MAJOR_COMPACTION_TIME = "majorCompactionTime";
607  String MAJOR_COMPACTION_TIME_DESC = "Histogram for the time in millis for compaction, major only";
608  String MAJOR_COMPACTION_INPUT_FILE_COUNT = "majorCompactionInputFileCount";
609  String MAJOR_COMPACTION_INPUT_FILE_COUNT_DESC =
610    "Histogram for the compaction input number of files, major only";
611  String MAJOR_COMPACTION_INPUT_SIZE = "majorCompactionInputSize";
612  String MAJOR_COMPACTION_INPUT_SIZE_DESC =
613    "Histogram for the compaction total input file sizes, major only";
614  String MAJOR_COMPACTION_OUTPUT_FILE_COUNT = "majorCompactionOutputFileCount";
615  String MAJOR_COMPACTION_OUTPUT_FILE_COUNT_DESC =
616    "Histogram for the compaction output number of files, major only";
617  String MAJOR_COMPACTION_OUTPUT_SIZE = "majorCompactionOutputSize";
618  String MAJOR_COMPACTION_OUTPUT_SIZE_DESC =
619    "Histogram for the compaction total output file sizes, major only";
620  String MAJOR_COMPACTED_INPUT_BYTES = "majorCompactedInputBytes";
621  String MAJOR_COMPACTED_INPUT_BYTES_DESC =
622    "Total number of bytes that is read for compaction, major only";
623  String MAJOR_COMPACTED_OUTPUT_BYTES = "majorCompactedOutputBytes";
624  String MAJOR_COMPACTED_OUTPUT_BYTES_DESC =
625    "Total number of bytes that is output from compaction, major only";
626
627  String RPC_GET_REQUEST_COUNT = "rpcGetRequestCount";
628  String RPC_GET_REQUEST_COUNT_DESC = "Number of rpc get requests this RegionServer has answered.";
629  String RPC_SCAN_REQUEST_COUNT = "rpcScanRequestCount";
630  String RPC_SCAN_REQUEST_COUNT_DESC =
631    "Number of rpc scan requests this RegionServer has answered.";
632  String RPC_FULL_SCAN_REQUEST_COUNT = "rpcFullScanRequestCount";
633  String RPC_FULL_SCAN_REQUEST_COUNT_DESC =
634    "Number of rpc scan requests that were possible full region scans.";
635  String RPC_MULTI_REQUEST_COUNT = "rpcMultiRequestCount";
636  String RPC_MULTI_REQUEST_COUNT_DESC =
637    "Number of rpc multi requests this RegionServer has answered.";
638  String RPC_MUTATE_REQUEST_COUNT = "rpcMutateRequestCount";
639  String RPC_MUTATE_REQUEST_COUNT_DESC =
640    "Number of rpc mutation requests this RegionServer has answered.";
641  String MAX_STOREFILE_COUNT = "maxStoreFileCount";
642  String MAX_STOREFILE_COUNT_DESC = "Max store file count across all regions";
643  String AVERAGE_REGION_SIZE = "averageRegionSize";
644  String AVERAGE_REGION_SIZE_DESC =
645    "Average region size over the RegionServer including memstore and storefile sizes.";
646
647  /** Metrics for {@link org.apache.hadoop.hbase.io.ByteBuffAllocator} **/
648  String BYTE_BUFF_ALLOCATOR_HEAP_ALLOCATION_BYTES = "ByteBuffAllocatorHeapAllocationBytes";
649  String BYTE_BUFF_ALLOCATOR_HEAP_ALLOCATION_BYTES_DESC =
650    "Bytes of heap allocation from ByteBuffAllocator";
651  String BYTE_BUFF_ALLOCATOR_POOL_ALLOCATION_BYTES = "ByteBuffAllocatorPoolAllocationBytes";
652  String BYTE_BUFF_ALLOCATOR_POOL_ALLOCATION_BYTES_DESC =
653    "Bytes of pool allocation from ByteBuffAllocator";
654  String BYTE_BUFF_ALLOCATOR_HEAP_ALLOCATION_RATIO = "ByteBuffAllocatorHeapAllocationRatio";
655  String BYTE_BUFF_ALLOCATOR_HEAP_ALLOCATION_RATIO_DESC =
656    "Ratio of heap allocation from ByteBuffAllocator, means heapAllocation/totalAllocation";
657  String BYTE_BUFF_ALLOCATOR_TOTAL_BUFFER_COUNT = "ByteBuffAllocatorTotalBufferCount";
658  String BYTE_BUFF_ALLOCATOR_TOTAL_BUFFER_COUNT_DESC = "Total buffer count in ByteBuffAllocator";
659  String BYTE_BUFF_ALLOCATOR_USED_BUFFER_COUNT = "ByteBuffAllocatorUsedBufferCount";
660  String BYTE_BUFF_ALLOCATOR_USED_BUFFER_COUNT_DESC = "Used buffer count in ByteBuffAllocator";
661
662  String ACTIVE_SCANNERS = "activeScanners";
663  String ACTIVE_SCANNERS_DESC = "Gauge of currently active scanners";
664
665  String SCANNER_LEASE_EXPIRED_COUNT = "scannerLeaseExpiredCount";
666  String SCANNER_LEASE_EXPIRED_COUNT_DESC =
667    "Count of scanners which were expired due to scanner lease timeout";
668  String CURRENT_REGION_CACHE_RATIO = "currentRegionCacheRatio";
669  String CURRENT_REGION_CACHE_RATIO_DESC = "The percentage of caching completed for this region.";
670}