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 */
018
019package org.apache.hadoop.hbase.regionserver;
020
021import org.apache.hadoop.hbase.metrics.BaseSource;
022import org.apache.hadoop.hbase.metrics.JvmPauseMonitorSource;
023import org.apache.yetus.audience.InterfaceAudience;
024
025/**
026 * Interface for classes that expose metrics about the regionserver.
027 */
028@InterfaceAudience.Private
029public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSource {
030
031  /**
032   * The name of the metrics
033   */
034  String METRICS_NAME = "Server";
035
036  /**
037   * The name of the metrics context that metrics will be under.
038   */
039  String METRICS_CONTEXT = "regionserver";
040
041  /**
042   * Description
043   */
044  String METRICS_DESCRIPTION = "Metrics about HBase RegionServer";
045
046  /**
047   * The name of the metrics context that metrics will be under in jmx
048   */
049  String METRICS_JMX_CONTEXT = "RegionServer,sub=" + METRICS_NAME;
050
051  /**
052   * Update the Put time histogram
053   *
054   * @param t time it took
055   */
056  void updatePut(long t);
057
058  /**
059   * Update the PutBatch time histogram if a batch contains a Put op
060   * @param t time it took
061   */
062  void updatePutBatch(long t);
063
064  /**
065   * Update the Delete time histogram
066   *
067   * @param t time it took
068   */
069  void updateDelete(long t);
070
071  /**
072   * Update the Delete time histogram if a batch contains a delete op
073   * @param t time it took
074   */
075  void updateDeleteBatch(long t);
076
077  /**
078   * Update checkAndDelete histogram
079   * @param t time it took
080   */
081  void updateCheckAndDelete(long t);
082
083  /**
084   * Update checkAndPut histogram
085   * @param t time it took
086   */
087  void updateCheckAndPut(long t);
088
089  /**
090   * Update checkAndMutate histogram
091   * @param t time it took
092   */
093  void updateCheckAndMutate(long t);
094
095  /**
096   * Update the Get time histogram .
097   *
098   * @param t time it took
099   */
100  void updateGet(long t);
101
102  /**
103   * Update the Increment time histogram.
104   *
105   * @param t time it took
106   */
107  void updateIncrement(long t);
108
109  /**
110   * Update the Append time histogram.
111   *
112   * @param t time it took
113   */
114  void updateAppend(long t);
115
116  /**
117   * Update the Replay time histogram.
118   *
119   * @param t time it took
120   */
121  void updateReplay(long t);
122
123  /**
124   * Update the scan size.
125   *
126   * @param scanSize size of the scan
127   */
128  void updateScanSize(long scanSize);
129
130  /**
131   * Update the scan time.
132   * */
133  void updateScanTime(long t);
134
135  /**
136   * Increment the number of slow Puts that have happened.
137   */
138  void incrSlowPut();
139
140  /**
141   * Increment the number of slow Deletes that have happened.
142   */
143  void incrSlowDelete();
144
145  /**
146   * Increment the number of slow Gets that have happened.
147   */
148  void incrSlowGet();
149
150  /**
151   * Increment the number of slow Increments that have happened.
152   */
153  void incrSlowIncrement();
154
155  /**
156   * Increment the number of slow Appends that have happened.
157   */
158  void incrSlowAppend();
159
160  /**
161   * Update the split transaction time histogram
162   * @param t time it took, in milliseconds
163   */
164  void updateSplitTime(long t);
165
166  /**
167   * Increment number of a requested splits
168   */
169  void incrSplitRequest();
170
171  /**
172   * Increment number of successful splits
173   */
174  void incrSplitSuccess();
175
176  /**
177   * Update the flush time histogram
178   * @param t time it took, in milliseconds
179   */
180  void updateFlushTime(long t);
181
182  /**
183   * Update the flush memstore size histogram
184   * @param bytes the number of bytes in the memstore
185   */
186  void updateFlushMemStoreSize(long bytes);
187
188  /**
189   * Update the flush output file size histogram
190   * @param bytes the number of bytes in the output file
191   */
192  void updateFlushOutputSize(long bytes);
193
194  /**
195   * Update the compaction time histogram, both major and minor
196   * @param isMajor whether compaction is a major compaction
197   * @param t time it took, in milliseconds
198   */
199  void updateCompactionTime(boolean isMajor, long t);
200
201  /**
202   * Update the compaction input number of files histogram
203   * @param isMajor whether compaction is a major compaction
204   * @param c number of files
205   */
206  void updateCompactionInputFileCount(boolean isMajor, long c);
207
208  /**
209   * Update the compaction total input file size histogram
210   * @param isMajor whether compaction is a major compaction
211   * @param bytes the number of bytes of the compaction input file
212   */
213  void updateCompactionInputSize(boolean isMajor, long bytes);
214
215  /**
216   * Update the compaction output number of files histogram
217   * @param isMajor whether compaction is a major compaction
218   * @param c number of files
219   */
220  void updateCompactionOutputFileCount(boolean isMajor, long c);
221
222  /**
223   * Update the compaction total output file size
224   * @param isMajor whether compaction is a major compaction
225   * @param bytes the number of bytes of the compaction input file
226   */
227  void updateCompactionOutputSize(boolean isMajor, long bytes);
228
229  // Strings used for exporting to metrics system.
230  String REGION_COUNT = "regionCount";
231  String REGION_COUNT_DESC = "Number of regions";
232  String STORE_COUNT = "storeCount";
233  String STORE_COUNT_DESC = "Number of Stores";
234  String WALFILE_COUNT = "hlogFileCount";
235  String WALFILE_COUNT_DESC = "Number of WAL Files";
236  String WALFILE_SIZE = "hlogFileSize";
237  String WALFILE_SIZE_DESC = "Size of all WAL Files";
238  String STOREFILE_COUNT = "storeFileCount";
239  String STOREFILE_COUNT_DESC = "Number of Store Files";
240  String STORE_REF_COUNT = "storeRefCount";
241  String STORE_REF_COUNT_DESC = "Store reference count";
242  String MAX_COMPACTED_STORE_FILE_REF_COUNT = "maxCompactedStoreFileRefCount";
243  String MEMSTORE_SIZE = "memStoreSize";
244  String MEMSTORE_SIZE_DESC = "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 =
282      "Number of mutation requests this RegionServer has answered.";
283  String WRITE_REQUEST_RATE_PER_SECOND = "writeRequestRatePerSecond";
284  String WRITE_REQUEST_RATE_DESC =
285      "Rate of answering the mutation requests by this region server per second.";
286  String CHECK_MUTATE_FAILED_COUNT = "checkMutateFailedCount";
287  String CHECK_MUTATE_FAILED_COUNT_DESC =
288      "Number of Check and Mutate calls that failed the checks.";
289  String CHECK_MUTATE_PASSED_COUNT = "checkMutatePassedCount";
290  String CHECK_MUTATE_PASSED_COUNT_DESC =
291      "Number of Check and Mutate calls that passed the checks.";
292  String STOREFILE_INDEX_SIZE = "storeFileIndexSize";
293  String STOREFILE_INDEX_SIZE_DESC = "Size of indexes in storefiles on disk.";
294  String STATIC_INDEX_SIZE = "staticIndexSize";
295  String STATIC_INDEX_SIZE_DESC = "Uncompressed size of the static indexes.";
296  String STATIC_BLOOM_SIZE = "staticBloomSize";
297  String STATIC_BLOOM_SIZE_DESC =
298      "Uncompressed size of the static bloom filters.";
299  String NUMBER_OF_MUTATIONS_WITHOUT_WAL = "mutationsWithoutWALCount";
300  String NUMBER_OF_MUTATIONS_WITHOUT_WAL_DESC =
301      "Number of mutations that have been sent by clients with the write ahead logging turned off.";
302  String DATA_SIZE_WITHOUT_WAL = "mutationsWithoutWALSize";
303  String DATA_SIZE_WITHOUT_WAL_DESC =
304      "Size of data that has been sent by clients with the write ahead logging turned off.";
305  String PERCENT_FILES_LOCAL = "percentFilesLocal";
306  String PERCENT_FILES_LOCAL_DESC =
307      "The percent of HFiles that are stored on the local hdfs data node.";
308  String PERCENT_FILES_LOCAL_SECONDARY_REGIONS = "percentFilesLocalSecondaryRegions";
309  String PERCENT_FILES_LOCAL_SECONDARY_REGIONS_DESC =
310    "The percent of HFiles used by secondary regions that are stored on the local hdfs data node.";
311  String SPLIT_QUEUE_LENGTH = "splitQueueLength";
312  String SPLIT_QUEUE_LENGTH_DESC = "Length of the queue for splits.";
313  String COMPACTION_QUEUE_LENGTH = "compactionQueueLength";
314  String LARGE_COMPACTION_QUEUE_LENGTH = "largeCompactionQueueLength";
315  String SMALL_COMPACTION_QUEUE_LENGTH = "smallCompactionQueueLength";
316  String COMPACTION_QUEUE_LENGTH_DESC = "Length of the queue for compactions.";
317  String LARGE_COMPACTION_QUEUE_LENGTH_DESC = "Length of the queue for compactions with input size "
318      + "larger than throttle threshold (2.5GB by default)";
319  String SMALL_COMPACTION_QUEUE_LENGTH_DESC = "Length of the queue for compactions with input size "
320      + "smaller than throttle threshold (2.5GB by default)";
321  String FLUSH_QUEUE_LENGTH = "flushQueueLength";
322  String FLUSH_QUEUE_LENGTH_DESC = "Length of the queue for region flushes";
323  String BLOCK_CACHE_FREE_SIZE = "blockCacheFreeSize";
324  String BLOCK_CACHE_FREE_DESC =
325      "Size of the block cache that is not occupied.";
326  String BLOCK_CACHE_COUNT = "blockCacheCount";
327  String BLOCK_CACHE_COUNT_DESC = "Number of block in the block cache.";
328  String BLOCK_CACHE_SIZE = "blockCacheSize";
329  String BLOCK_CACHE_SIZE_DESC = "Size of the block cache.";
330  String BLOCK_CACHE_HIT_COUNT = "blockCacheHitCount";
331  String BLOCK_CACHE_HIT_COUNT_DESC = "Count of the hit on the block cache.";
332  String BLOCK_CACHE_PRIMARY_HIT_COUNT = "blockCacheHitCountPrimary";
333  String BLOCK_CACHE_PRIMARY_HIT_COUNT_DESC = "Count of hit on primary replica in the block cache.";
334  String BLOCK_CACHE_MISS_COUNT = "blockCacheMissCount";
335  String BLOCK_COUNT_MISS_COUNT_DESC =
336      "Number of requests for a block that missed the block cache.";
337  String BLOCK_CACHE_PRIMARY_MISS_COUNT = "blockCacheMissCountPrimary";
338  String BLOCK_COUNT_PRIMARY_MISS_COUNT_DESC =
339      "Number of requests for a block of primary replica that missed the block cache.";
340  String BLOCK_CACHE_EVICTION_COUNT = "blockCacheEvictionCount";
341  String BLOCK_CACHE_EVICTION_COUNT_DESC =
342      "Count of the number of blocks evicted from the block cache."
343      + "(Not including blocks evicted because of HFile removal)";
344  String BLOCK_CACHE_PRIMARY_EVICTION_COUNT = "blockCacheEvictionCountPrimary";
345  String BLOCK_CACHE_PRIMARY_EVICTION_COUNT_DESC =
346      "Count of the number of blocks evicted from primary replica in the block cache.";
347  String BLOCK_CACHE_HIT_PERCENT = "blockCacheCountHitPercent";
348  String BLOCK_CACHE_HIT_PERCENT_DESC =
349      "Percent of block cache requests that are hits";
350  String BLOCK_CACHE_EXPRESS_HIT_PERCENT = "blockCacheExpressHitPercent";
351  String BLOCK_CACHE_EXPRESS_HIT_PERCENT_DESC =
352      "The percent of the time that requests with the cache turned on hit the cache.";
353  String BLOCK_CACHE_FAILED_INSERTION_COUNT = "blockCacheFailedInsertionCount";
354  String BLOCK_CACHE_FAILED_INSERTION_COUNT_DESC = "Number of times that a block cache " +
355      "insertion failed. Usually due to size restrictions.";
356  String BLOCK_CACHE_DATA_MISS_COUNT = "blockCacheDataMissCount";
357  String BLOCK_CACHE_ENCODED_DATA_MISS_COUNT = "blockCacheEncodedDataMissCount";
358  String BLOCK_CACHE_LEAF_INDEX_MISS_COUNT = "blockCacheLeafIndexMissCount";
359  String BLOCK_CACHE_BLOOM_CHUNK_MISS_COUNT = "blockCacheBloomChunkMissCount";
360  String BLOCK_CACHE_META_MISS_COUNT = "blockCacheMetaMissCount";
361  String BLOCK_CACHE_ROOT_INDEX_MISS_COUNT = "blockCacheRootIndexMissCount";
362  String BLOCK_CACHE_INTERMEDIATE_INDEX_MISS_COUNT = "blockCacheIntermediateIndexMissCount";
363  String BLOCK_CACHE_FILE_INFO_MISS_COUNT = "blockCacheFileInfoMissCount";
364  String BLOCK_CACHE_GENERAL_BLOOM_META_MISS_COUNT = "blockCacheGeneralBloomMetaMissCount";
365  String BLOCK_CACHE_DELETE_FAMILY_BLOOM_MISS_COUNT = "blockCacheDeleteFamilyBloomMissCount";
366  String BLOCK_CACHE_TRAILER_MISS_COUNT = "blockCacheTrailerMissCount";
367  String BLOCK_CACHE_DATA_HIT_COUNT = "blockCacheDataHitCount";
368  String BLOCK_CACHE_ENCODED_DATA_HIT_COUNT = "blockCacheEncodedDataHitCount";
369  String BLOCK_CACHE_LEAF_INDEX_HIT_COUNT = "blockCacheLeafIndexHitCount";
370  String BLOCK_CACHE_BLOOM_CHUNK_HIT_COUNT = "blockCacheBloomChunkHitCount";
371  String BLOCK_CACHE_META_HIT_COUNT = "blockCacheMetaHitCount";
372  String BLOCK_CACHE_ROOT_INDEX_HIT_COUNT = "blockCacheRootIndexHitCount";
373  String BLOCK_CACHE_INTERMEDIATE_INDEX_HIT_COUNT = "blockCacheIntermediateIndexHitCount";
374  String BLOCK_CACHE_FILE_INFO_HIT_COUNT = "blockCacheFileInfoHitCount";
375  String BLOCK_CACHE_GENERAL_BLOOM_META_HIT_COUNT = "blockCacheGeneralBloomMetaHitCount";
376  String BLOCK_CACHE_DELETE_FAMILY_BLOOM_HIT_COUNT = "blockCacheDeleteFamilyBloomHitCount";
377  String BLOCK_CACHE_TRAILER_HIT_COUNT = "blockCacheTrailerHitCount";
378  String L1_CACHE_HIT_COUNT = "l1CacheHitCount";
379  String L1_CACHE_HIT_COUNT_DESC = "L1 cache hit count.";
380  String L1_CACHE_MISS_COUNT = "l1CacheMissCount";
381  String L1_CACHE_MISS_COUNT_DESC = "L1 cache miss count.";
382  String L1_CACHE_HIT_RATIO = "l1CacheHitRatio";
383  String L1_CACHE_HIT_RATIO_DESC = "L1 cache hit ratio.";
384  String L1_CACHE_MISS_RATIO = "l1CacheMissRatio";
385  String L1_CACHE_MISS_RATIO_DESC = "L1 cache miss ratio.";
386  String L2_CACHE_HIT_COUNT = "l2CacheHitCount";
387  String L2_CACHE_HIT_COUNT_DESC = "L2 cache hit count.";
388  String L2_CACHE_MISS_COUNT = "l2CacheMissCount";
389  String L2_CACHE_MISS_COUNT_DESC = "L2 cache miss count.";
390  String L2_CACHE_HIT_RATIO = "l2CacheHitRatio";
391  String L2_CACHE_HIT_RATIO_DESC = "L2 cache hit ratio.";
392  String L2_CACHE_MISS_RATIO = "l2CacheMissRatio";
393  String L2_CACHE_MISS_RATIO_DESC = "L2 cache miss ratio.";
394  String RS_START_TIME_NAME = "regionServerStartTime";
395  String ZOOKEEPER_QUORUM_NAME = "zookeeperQuorum";
396  String SERVER_NAME_NAME = "serverName";
397  String CLUSTER_ID_NAME = "clusterId";
398  String RS_START_TIME_DESC = "RegionServer Start Time";
399  String ZOOKEEPER_QUORUM_DESC = "ZooKeeper Quorum";
400  String SERVER_NAME_DESC = "Server Name";
401  String CLUSTER_ID_DESC = "Cluster Id";
402  String UPDATES_BLOCKED_TIME = "updatesBlockedTime";
403  String UPDATES_BLOCKED_DESC =
404      "Number of MS updates have been blocked so that the memstore can be flushed.";
405  String DELETE_KEY = "delete";
406  String CHECK_AND_DELETE_KEY = "checkAndDelete";
407  String CHECK_AND_PUT_KEY = "checkAndPut";
408  String CHECK_AND_MUTATE_KEY = "checkAndMutate";
409  String DELETE_BATCH_KEY = "deleteBatch";
410  String GET_SIZE_KEY = "getSize";
411  String GET_KEY = "get";
412  String INCREMENT_KEY = "increment";
413  String PUT_KEY = "put";
414  String PUT_BATCH_KEY = "putBatch";
415  String APPEND_KEY = "append";
416  String REPLAY_KEY = "replay";
417  String SCAN_KEY = "scan";
418  String SCAN_SIZE_KEY = "scanSize";
419  String SCAN_TIME_KEY = "scanTime";
420
421  String SLOW_PUT_KEY = "slowPutCount";
422  String SLOW_GET_KEY = "slowGetCount";
423  String SLOW_DELETE_KEY = "slowDeleteCount";
424  String SLOW_INCREMENT_KEY = "slowIncrementCount";
425  String SLOW_APPEND_KEY = "slowAppendCount";
426  String SLOW_PUT_DESC =
427      "The number of batches containing puts that took over 1000ms to complete";
428  String SLOW_DELETE_DESC =
429      "The number of batches containing delete(s) that took over 1000ms to complete";
430  String SLOW_GET_DESC = "The number of Gets that took over 1000ms to complete";
431  String SLOW_INCREMENT_DESC =
432      "The number of Increments that took over 1000ms to complete";
433  String SLOW_APPEND_DESC =
434      "The number of Appends that took over 1000ms to complete";
435
436  String FLUSHED_CELLS = "flushedCellsCount";
437  String FLUSHED_CELLS_DESC = "The number of cells flushed to disk";
438  String FLUSHED_CELLS_SIZE = "flushedCellsSize";
439  String FLUSHED_CELLS_SIZE_DESC = "The total amount of data flushed to disk, in bytes";
440  String COMPACTED_CELLS = "compactedCellsCount";
441  String COMPACTED_CELLS_DESC = "The number of cells processed during minor compactions";
442  String COMPACTED_CELLS_SIZE = "compactedCellsSize";
443  String COMPACTED_CELLS_SIZE_DESC =
444      "The total amount of data processed during minor compactions, in bytes";
445  String MAJOR_COMPACTED_CELLS = "majorCompactedCellsCount";
446  String MAJOR_COMPACTED_CELLS_DESC =
447      "The number of cells processed during major compactions";
448  String MAJOR_COMPACTED_CELLS_SIZE = "majorCompactedCellsSize";
449  String MAJOR_COMPACTED_CELLS_SIZE_DESC =
450      "The total amount of data processed during major compactions, in bytes";
451  String CELLS_COUNT_COMPACTED_TO_MOB = "cellsCountCompactedToMob";
452  String CELLS_COUNT_COMPACTED_TO_MOB_DESC =
453      "The number of cells moved to mob during compaction";
454  String CELLS_COUNT_COMPACTED_FROM_MOB = "cellsCountCompactedFromMob";
455  String CELLS_COUNT_COMPACTED_FROM_MOB_DESC =
456      "The number of cells moved from mob during compaction";
457  String CELLS_SIZE_COMPACTED_TO_MOB = "cellsSizeCompactedToMob";
458  String CELLS_SIZE_COMPACTED_TO_MOB_DESC =
459      "The total amount of cells move to mob during compaction, in bytes";
460  String CELLS_SIZE_COMPACTED_FROM_MOB = "cellsSizeCompactedFromMob";
461  String CELLS_SIZE_COMPACTED_FROM_MOB_DESC =
462      "The total amount of cells move from mob during compaction, in bytes";
463  String MOB_FLUSH_COUNT = "mobFlushCount";
464  String MOB_FLUSH_COUNT_DESC = "The number of the flushes in mob-enabled stores";
465  String MOB_FLUSHED_CELLS_COUNT = "mobFlushedCellsCount";
466  String MOB_FLUSHED_CELLS_COUNT_DESC = "The number of mob cells flushed to disk";
467  String MOB_FLUSHED_CELLS_SIZE = "mobFlushedCellsSize";
468  String MOB_FLUSHED_CELLS_SIZE_DESC = "The total amount of mob cells flushed to disk, in bytes";
469  String MOB_SCAN_CELLS_COUNT = "mobScanCellsCount";
470  String MOB_SCAN_CELLS_COUNT_DESC = "The number of scanned mob cells";
471  String MOB_SCAN_CELLS_SIZE = "mobScanCellsSize";
472  String MOB_SCAN_CELLS_SIZE_DESC = "The total amount of scanned mob cells, in bytes";
473  String MOB_FILE_CACHE_ACCESS_COUNT = "mobFileCacheAccessCount";
474  String MOB_FILE_CACHE_ACCESS_COUNT_DESC = "The count of accesses to the mob file cache";
475  String MOB_FILE_CACHE_MISS_COUNT = "mobFileCacheMissCount";
476  String MOB_FILE_CACHE_MISS_COUNT_DESC = "The count of misses to the mob file cache";
477  String MOB_FILE_CACHE_HIT_PERCENT = "mobFileCacheHitPercent";
478  String MOB_FILE_CACHE_HIT_PERCENT_DESC = "The hit percent to the mob file cache";
479  String MOB_FILE_CACHE_EVICTED_COUNT = "mobFileCacheEvictedCount";
480  String MOB_FILE_CACHE_EVICTED_COUNT_DESC = "The number of items evicted from the mob file cache";
481  String MOB_FILE_CACHE_COUNT = "mobFileCacheCount";
482  String MOB_FILE_CACHE_COUNT_DESC = "The count of cached mob files";
483
484  String HEDGED_READS = "hedgedReads";
485  String HEDGED_READS_DESC = "The number of times we started a hedged read";
486  String HEDGED_READ_WINS = "hedgedReadWins";
487  String HEDGED_READ_WINS_DESC =
488      "The number of times we started a hedged read and a hedged read won";
489  String HEDGED_READ_IN_CUR_THREAD = "hedgedReadOpsInCurThread";
490  String HEDGED_READ_IN_CUR_THREAD_DESC =
491    "The number of times we execute a hedged read in current thread as a fallback for task rejection";
492
493  String TOTAL_BYTES_READ = "totalBytesRead";
494  String TOTAL_BYTES_READ_DESC = "The total number of bytes read from HDFS";
495  String LOCAL_BYTES_READ = "localBytesRead";
496  String LOCAL_BYTES_READ_DESC =
497      "The number of bytes read from the local HDFS DataNode";
498  String SHORTCIRCUIT_BYTES_READ = "shortCircuitBytesRead";
499  String SHORTCIRCUIT_BYTES_READ_DESC = "The number of bytes read through HDFS short circuit read";
500  String ZEROCOPY_BYTES_READ = "zeroCopyBytesRead";
501  String ZEROCOPY_BYTES_READ_DESC =
502      "The number of bytes read through HDFS zero copy";
503
504  String BLOCKED_REQUESTS_COUNT = "blockedRequestCount";
505  String BLOCKED_REQUESTS_COUNT_DESC = "The number of blocked requests because of memstore size is "
506      + "larger than blockingMemStoreSize";
507
508  String SPLIT_KEY = "splitTime";
509  String SPLIT_REQUEST_KEY = "splitRequestCount";
510  String SPLIT_REQUEST_DESC = "Number of splits requested";
511  String SPLIT_SUCCESS_KEY = "splitSuccessCount";
512  String SPLIT_SUCCESS_DESC = "Number of successfully executed splits";
513
514  String FLUSH_TIME = "flushTime";
515  String FLUSH_TIME_DESC = "Histogram for the time in millis for memstore flush";
516  String FLUSH_MEMSTORE_SIZE = "flushMemstoreSize";
517  String FLUSH_MEMSTORE_SIZE_DESC = "Histogram for number of bytes in the memstore for a flush";
518  String FLUSH_OUTPUT_SIZE = "flushOutputSize";
519  String FLUSH_OUTPUT_SIZE_DESC = "Histogram for number of bytes in the resulting file for a flush";
520  String FLUSHED_OUTPUT_BYTES = "flushedOutputBytes";
521  String FLUSHED_OUTPUT_BYTES_DESC = "Total number of bytes written from flush";
522  String FLUSHED_MEMSTORE_BYTES = "flushedMemstoreBytes";
523  String FLUSHED_MEMSTORE_BYTES_DESC = "Total number of bytes of cells in memstore from flush";
524
525  String COMPACTION_TIME = "compactionTime";
526  String COMPACTION_TIME_DESC
527    = "Histogram for the time in millis for compaction, both major and minor";
528  String COMPACTION_INPUT_FILE_COUNT = "compactionInputFileCount";
529  String COMPACTION_INPUT_FILE_COUNT_DESC
530    = "Histogram for the compaction input number of files, both major and minor";
531  String COMPACTION_INPUT_SIZE = "compactionInputSize";
532  String COMPACTION_INPUT_SIZE_DESC
533    = "Histogram for the compaction total input file sizes, both major and minor";
534  String COMPACTION_OUTPUT_FILE_COUNT = "compactionOutputFileCount";
535  String COMPACTION_OUTPUT_FILE_COUNT_DESC
536    = "Histogram for the compaction output number of files, both major and minor";
537  String COMPACTION_OUTPUT_SIZE = "compactionOutputSize";
538  String COMPACTION_OUTPUT_SIZE_DESC
539    = "Histogram for the compaction total output file sizes, both major and minor";
540  String COMPACTED_INPUT_BYTES = "compactedInputBytes";
541  String COMPACTED_INPUT_BYTES_DESC
542    = "Total number of bytes that is read for compaction, both major and minor";
543  String COMPACTED_OUTPUT_BYTES = "compactedOutputBytes";
544  String COMPACTED_OUTPUT_BYTES_DESC
545    = "Total number of bytes that is output from compaction, both major and minor";
546
547  String MAJOR_COMPACTION_TIME = "majorCompactionTime";
548  String MAJOR_COMPACTION_TIME_DESC
549    = "Histogram for the time in millis for compaction, major only";
550  String MAJOR_COMPACTION_INPUT_FILE_COUNT = "majorCompactionInputFileCount";
551  String MAJOR_COMPACTION_INPUT_FILE_COUNT_DESC
552    = "Histogram for the compaction input number of files, major only";
553  String MAJOR_COMPACTION_INPUT_SIZE = "majorCompactionInputSize";
554  String MAJOR_COMPACTION_INPUT_SIZE_DESC
555    = "Histogram for the compaction total input file sizes, major only";
556  String MAJOR_COMPACTION_OUTPUT_FILE_COUNT = "majorCompactionOutputFileCount";
557  String MAJOR_COMPACTION_OUTPUT_FILE_COUNT_DESC
558    = "Histogram for the compaction output number of files, major only";
559  String MAJOR_COMPACTION_OUTPUT_SIZE = "majorCompactionOutputSize";
560  String MAJOR_COMPACTION_OUTPUT_SIZE_DESC
561    = "Histogram for the compaction total output file sizes, major only";
562  String MAJOR_COMPACTED_INPUT_BYTES = "majorCompactedInputBytes";
563  String MAJOR_COMPACTED_INPUT_BYTES_DESC
564    = "Total number of bytes that is read for compaction, major only";
565  String MAJOR_COMPACTED_OUTPUT_BYTES = "majorCompactedOutputBytes";
566  String MAJOR_COMPACTED_OUTPUT_BYTES_DESC
567    = "Total number of bytes that is output from compaction, major only";
568
569  String RPC_GET_REQUEST_COUNT = "rpcGetRequestCount";
570  String RPC_GET_REQUEST_COUNT_DESC = "Number of rpc get requests this RegionServer has answered.";
571  String RPC_SCAN_REQUEST_COUNT = "rpcScanRequestCount";
572  String RPC_SCAN_REQUEST_COUNT_DESC =
573      "Number of rpc scan requests this RegionServer has answered.";
574  String RPC_MULTI_REQUEST_COUNT = "rpcMultiRequestCount";
575  String RPC_MULTI_REQUEST_COUNT_DESC =
576      "Number of rpc multi requests this RegionServer has answered.";
577  String RPC_MUTATE_REQUEST_COUNT = "rpcMutateRequestCount";
578  String RPC_MUTATE_REQUEST_COUNT_DESC =
579      "Number of rpc mutation requests this RegionServer has answered.";
580  String AVERAGE_REGION_SIZE = "averageRegionSize";
581  String AVERAGE_REGION_SIZE_DESC =
582      "Average region size over the RegionServer including memstore and storefile sizes.";
583
584  /** Metrics for {@link org.apache.hadoop.hbase.io.ByteBuffAllocator} **/
585  String BYTE_BUFF_ALLOCATOR_HEAP_ALLOCATION_BYTES = "ByteBuffAllocatorHeapAllocationBytes";
586  String BYTE_BUFF_ALLOCATOR_HEAP_ALLOCATION_BYTES_DESC =
587      "Bytes of heap allocation from ByteBuffAllocator";
588  String BYTE_BUFF_ALLOCATOR_POOL_ALLOCATION_BYTES = "ByteBuffAllocatorPoolAllocationBytes";
589  String BYTE_BUFF_ALLOCATOR_POOL_ALLOCATION_BYTES_DESC =
590      "Bytes of pool allocation from ByteBuffAllocator";
591  String BYTE_BUFF_ALLOCATOR_HEAP_ALLOCATION_RATIO = "ByteBuffAllocatorHeapAllocationRatio";
592  String BYTE_BUFF_ALLOCATOR_HEAP_ALLOCATION_RATIO_DESC =
593      "Ratio of heap allocation from ByteBuffAllocator, means heapAllocation/totalAllocation";
594  String BYTE_BUFF_ALLOCATOR_TOTAL_BUFFER_COUNT = "ByteBuffAllocatorTotalBufferCount";
595  String BYTE_BUFF_ALLOCATOR_TOTAL_BUFFER_COUNT_DESC = "Total buffer count in ByteBuffAllocator";
596  String BYTE_BUFF_ALLOCATOR_USED_BUFFER_COUNT = "ByteBuffAllocatorUsedBufferCount";
597  String BYTE_BUFF_ALLOCATOR_USED_BUFFER_COUNT_DESC = "Used buffer count in ByteBuffAllocator";
598}