View Javadoc

1   /**
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  
19  package org.apache.hadoop.hbase.regionserver;
20  
21  import org.apache.hadoop.hbase.metrics.BaseSource;
22  import org.apache.hadoop.hbase.metrics.JvmPauseMonitorSource;
23  
24  /**
25   * Interface for classes that expose metrics about the regionserver.
26   */
27  public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSource {
28  
29    /**
30     * The name of the metrics
31     */
32    String METRICS_NAME = "Server";
33  
34    /**
35     * The name of the metrics context that metrics will be under.
36     */
37    String METRICS_CONTEXT = "regionserver";
38  
39    /**
40     * Description
41     */
42    String METRICS_DESCRIPTION = "Metrics about HBase RegionServer";
43  
44    /**
45     * The name of the metrics context that metrics will be under in jmx
46     */
47    String METRICS_JMX_CONTEXT = "RegionServer,sub=" + METRICS_NAME;
48  
49    /**
50     * Update the Put time histogram
51     *
52     * @param t time it took
53     */
54    void updatePut(long t);
55  
56    /**
57     * Update the PutBatch time histogram if a batch contains a Put op
58     * @param t
59     */
60    void updatePutBatch(long t);
61  
62    /**
63     * Update the Delete time histogram
64     *
65     * @param t time it took
66     */
67    void updateDelete(long t);
68  
69    /**
70     * Update the Delete time histogram if a batch contains a delete op
71     * @param t time it took
72     */
73    void updateDeleteBatch(long t);
74  
75    /**
76     * Update checkAndDelete histogram
77     * @param t time it took
78     */
79    void updateCheckAndDelete(long t);
80  
81    /**
82     * Update checkAndPut histogram
83     * @param t time it took
84     */
85    void updateCheckAndPut(long t);
86  
87    /**
88     * Update the Get time histogram .
89     *
90     * @param t time it took
91     */
92    void updateGet(long t);
93  
94    /**
95     * Update the Increment time histogram.
96     *
97     * @param t time it took
98     */
99    void updateIncrement(long t);
100 
101   /**
102    * Update the Append time histogram.
103    *
104    * @param t time it took
105    */
106   void updateAppend(long t);
107 
108   /**
109    * Update the Replay time histogram.
110    *
111    * @param t time it took
112    */
113   void updateReplay(long t);
114 
115   /**
116    * Update the scan size.
117    *
118    * @param scanSize size of the scan
119    */
120   void updateScanSize(long scanSize);
121 
122   /**
123    * Update the scan time.
124    * */
125   void updateScanTime(long t);
126 
127   /**
128    * Increment the number of slow Puts that have happened.
129    */
130   void incrSlowPut();
131 
132   /**
133    * Increment the number of slow Deletes that have happened.
134    */
135   void incrSlowDelete();
136 
137   /**
138    * Increment the number of slow Gets that have happened.
139    */
140   void incrSlowGet();
141 
142   /**
143    * Increment the number of slow Increments that have happened.
144    */
145   void incrSlowIncrement();
146 
147   /**
148    * Increment the number of slow Appends that have happened.
149    */
150   void incrSlowAppend();
151 
152   /**
153    * Update the split transaction time histogram
154    * @param t time it took, in milliseconds
155    */
156   void updateSplitTime(long t);
157 
158   /**
159    * Increment number of a requested splits
160    */
161   void incrSplitRequest();
162 
163   /**
164    * Increment number of successful splits
165    */
166   void incrSplitSuccess();
167 
168   /**
169    * Update the flush time histogram
170    * @param t time it took, in milliseconds
171    */
172   void updateFlushTime(long t);
173 
174   /**
175    * Update the flush memstore size histogram
176    * @param bytes the number of bytes in the memstore
177    */
178   void updateFlushMemstoreSize(long bytes);
179 
180   /**
181    * Update the flush output file size histogram
182    * @param bytes the number of bytes in the output file
183    */
184   void updateFlushOutputSize(long bytes);
185 
186   /**
187    * Update the compaction time histogram, both major and minor
188    * @param isMajor whether compaction is a major compaction
189    * @param t time it took, in milliseconds
190    */
191   void updateCompactionTime(boolean isMajor, long t);
192 
193   /**
194    * Update the compaction input number of files histogram
195    * @param isMajor whether compaction is a major compaction
196    * @param c number of files
197    */
198   void updateCompactionInputFileCount(boolean isMajor, long c);
199 
200   /**
201    * Update the compaction total input file size histogram
202    * @param isMajor whether compaction is a major compaction
203    * @param bytes the number of bytes of the compaction input file
204    */
205   void updateCompactionInputSize(boolean isMajor, long bytes);
206 
207   /**
208    * Update the compaction output number of files histogram
209    * @param isMajor whether compaction is a major compaction
210    * @param c number of files
211    */
212   void updateCompactionOutputFileCount(boolean isMajor, long c);
213 
214   /**
215    * Update the compaction total output file size
216    * @param isMajor whether compaction is a major compaction
217    * @param bytes the number of bytes of the compaction input file
218    */
219   void updateCompactionOutputSize(boolean isMajor, long bytes);
220 
221   // Strings used for exporting to metrics system.
222   String REGION_COUNT = "regionCount";
223   String REGION_COUNT_DESC = "Number of regions";
224   String STORE_COUNT = "storeCount";
225   String STORE_COUNT_DESC = "Number of Stores";
226   String WALFILE_COUNT = "hlogFileCount";
227   String WALFILE_COUNT_DESC = "Number of WAL Files";
228   String WALFILE_SIZE = "hlogFileSize";
229   String WALFILE_SIZE_DESC = "Size of all WAL Files";
230   String STOREFILE_COUNT = "storeFileCount";
231   String STOREFILE_COUNT_DESC = "Number of Store Files";
232   String STORE_REF_COUNT = "storeRefCount";
233   String STORE_REF_COUNT_DESC = "Store reference count";
234   String MAX_COMPACTED_STORE_FILE_REF_COUNT = "maxCompactedStoreFileRefCount";
235   String MEMSTORE_SIZE = "memStoreSize";
236   String MEMSTORE_SIZE_DESC = "Size of the memstore";
237   String STOREFILE_SIZE = "storeFileSize";
238   String MAX_STORE_FILE_AGE = "maxStoreFileAge";
239   String MIN_STORE_FILE_AGE = "minStoreFileAge";
240   String AVG_STORE_FILE_AGE = "avgStoreFileAge";
241   String NUM_REFERENCE_FILES = "numReferenceFiles";
242   String MAX_STORE_FILE_AGE_DESC = "Max age of store files hosted on this region server";
243   String MIN_STORE_FILE_AGE_DESC = "Min age of store files hosted on this region server";
244   String AVG_STORE_FILE_AGE_DESC = "Average age of store files hosted on this region server";
245   String NUM_REFERENCE_FILES_DESC = "Number of reference file on this region server";
246   String STOREFILE_SIZE_DESC = "Size of storefiles being served.";
247   String TOTAL_REQUEST_COUNT = "totalRequestCount";
248   String TOTAL_REQUEST_COUNT_DESC =
249       "Total number of requests this RegionServer has answered.";
250   String TOTAL_ROW_ACTION_REQUEST_COUNT = "totalRowActionRequestCount";
251   String TOTAL_ROW_ACTION_REQUEST_COUNT_DESC =
252       "Total number of region requests this RegionServer has answered, count by row-level action";
253   String READ_REQUEST_COUNT = "readRequestCount";
254   String READ_REQUEST_COUNT_DESC =
255       "Number of read requests this region server has answered.";
256   String WRITE_REQUEST_COUNT = "writeRequestCount";
257   String WRITE_REQUEST_COUNT_DESC =
258       "Number of mutation requests this region server has answered.";
259   String READ_REQUEST_RATE = "readRequestRate";
260   String READ_REQUEST_RATE_DESC =
261       "Rate of answering the read requests by this region server per second.";
262   String WRITE_REQUEST_RATE = "writeRequestRate";
263   String WRITE_REQUEST_RATE_DESC =
264       "Rate of answering the mutation requests by this region server per second.";
265   String CHECK_MUTATE_FAILED_COUNT = "checkMutateFailedCount";
266   String CHECK_MUTATE_FAILED_COUNT_DESC =
267       "Number of Check and Mutate calls that failed the checks.";
268   String CHECK_MUTATE_PASSED_COUNT = "checkMutatePassedCount";
269   String CHECK_MUTATE_PASSED_COUNT_DESC =
270       "Number of Check and Mutate calls that passed the checks.";
271   String STOREFILE_INDEX_SIZE = "storeFileIndexSize";
272   String STOREFILE_INDEX_SIZE_DESC = "Size of indexes in storefiles on disk.";
273   String STATIC_INDEX_SIZE = "staticIndexSize";
274   String STATIC_INDEX_SIZE_DESC = "Uncompressed size of the static indexes.";
275   String STATIC_BLOOM_SIZE = "staticBloomSize";
276   String STATIC_BLOOM_SIZE_DESC =
277       "Uncompressed size of the static bloom filters.";
278   String NUMBER_OF_MUTATIONS_WITHOUT_WAL = "mutationsWithoutWALCount";
279   String NUMBER_OF_MUTATIONS_WITHOUT_WAL_DESC =
280       "Number of mutations that have been sent by clients with the write ahead logging turned off.";
281   String DATA_SIZE_WITHOUT_WAL = "mutationsWithoutWALSize";
282   String DATA_SIZE_WITHOUT_WAL_DESC =
283       "Size of data that has been sent by clients with the write ahead logging turned off.";
284   String PERCENT_FILES_LOCAL = "percentFilesLocal";
285   String PERCENT_FILES_LOCAL_DESC =
286       "The percent of HFiles that are stored on the local hdfs data node.";
287   String PERCENT_FILES_LOCAL_SECONDARY_REGIONS = "percentFilesLocalSecondaryRegions";
288   String PERCENT_FILES_LOCAL_SECONDARY_REGIONS_DESC =
289     "The percent of HFiles used by secondary regions that are stored on the local hdfs data node.";
290   String SPLIT_QUEUE_LENGTH = "splitQueueLength";
291   String SPLIT_QUEUE_LENGTH_DESC = "Length of the queue for splits.";
292   String COMPACTION_QUEUE_LENGTH = "compactionQueueLength";
293   String LARGE_COMPACTION_QUEUE_LENGTH = "largeCompactionQueueLength";
294   String SMALL_COMPACTION_QUEUE_LENGTH = "smallCompactionQueueLength";
295   String COMPACTION_QUEUE_LENGTH_DESC = "Length of the queue for compactions.";
296   String LARGE_COMPACTION_QUEUE_LENGTH_DESC = "Length of the queue for compactions with input size "
297       + "larger than throttle threshold (2.5GB by default)";
298   String SMALL_COMPACTION_QUEUE_LENGTH_DESC = "Length of the queue for compactions with input size "
299       + "smaller than throttle threshold (2.5GB by default)";
300   String FLUSH_QUEUE_LENGTH = "flushQueueLength";
301   String FLUSH_QUEUE_LENGTH_DESC = "Length of the queue for region flushes";
302   String BLOCK_CACHE_FREE_SIZE = "blockCacheFreeSize";
303   String BLOCK_CACHE_FREE_DESC =
304       "Size of the block cache that is not occupied.";
305   String BLOCK_CACHE_COUNT = "blockCacheCount";
306   String BLOCK_CACHE_COUNT_DESC = "Number of block in the block cache.";
307   String BLOCK_CACHE_SIZE = "blockCacheSize";
308   String BLOCK_CACHE_SIZE_DESC = "Size of the block cache.";
309   String BLOCK_CACHE_HIT_COUNT = "blockCacheHitCount";
310   String BLOCK_CACHE_HIT_COUNT_DESC = "Count of the hit on the block cache.";
311   String BLOCK_CACHE_PRIMARY_HIT_COUNT = "blockCacheHitCountPrimary";
312   String BLOCK_CACHE_PRIMARY_HIT_COUNT_DESC = "Count of hit on primary replica in the block cache.";
313   String BLOCK_CACHE_MISS_COUNT = "blockCacheMissCount";
314   String BLOCK_COUNT_MISS_COUNT_DESC =
315       "Number of requests for a block that missed the block cache.";
316   String BLOCK_CACHE_PRIMARY_MISS_COUNT = "blockCacheMissCountPrimary";
317   String BLOCK_COUNT_PRIMARY_MISS_COUNT_DESC =
318       "Number of requests for a block of primary replica that missed the block cache.";
319   String BLOCK_CACHE_EVICTION_COUNT = "blockCacheEvictionCount";
320   String BLOCK_CACHE_EVICTION_COUNT_DESC =
321       "Count of the number of blocks evicted from the block cache.";
322   String BLOCK_CACHE_PRIMARY_EVICTION_COUNT = "blockCacheEvictionCountPrimary";
323   String BLOCK_CACHE_PRIMARY_EVICTION_COUNT_DESC =
324       "Count of the number of blocks evicted from primary replica in the block cache.";
325   String BLOCK_CACHE_HIT_PERCENT = "blockCacheCountHitPercent";
326   String BLOCK_CACHE_HIT_PERCENT_DESC =
327       "Percent of block cache requests that are hits";
328   String BLOCK_CACHE_EXPRESS_HIT_PERCENT = "blockCacheExpressHitPercent";
329   String BLOCK_CACHE_EXPRESS_HIT_PERCENT_DESC =
330       "The percent of the time that requests with the cache turned on hit the cache.";
331   String BLOCK_CACHE_FAILED_INSERTION_COUNT = "blockCacheFailedInsertionCount";
332   String BLOCK_CACHE_FAILED_INSERTION_COUNT_DESC = "Number of times that a block cache " +
333       "insertion failed. Usually due to size restrictions.";
334   String BLOCK_CACHE_DATA_MISS_COUNT = "blockCacheDataMissCount";
335   String BLOCK_CACHE_ENCODED_DATA_MISS_COUNT = "blockCacheEncodedDataMissCount";
336   String BLOCK_CACHE_LEAF_INDEX_MISS_COUNT = "blockCacheLeafIndexMissCount";
337   String BLOCK_CACHE_BLOOM_CHUNK_MISS_COUNT = "blockCacheBloomChunkMissCount";
338   String BLOCK_CACHE_META_MISS_COUNT = "blockCacheMetaMissCount";
339   String BLOCK_CACHE_ROOT_INDEX_MISS_COUNT = "blockCacheRootIndexMissCount";
340   String BLOCK_CACHE_INTERMEDIATE_INDEX_MISS_COUNT = "blockCacheIntermediateIndexMissCount";
341   String BLOCK_CACHE_FILE_INFO_MISS_COUNT = "blockCacheFileInfoMissCount";
342   String BLOCK_CACHE_GENERAL_BLOOM_META_MISS_COUNT = "blockCacheGeneralBloomMetaMissCount";
343   String BLOCK_CACHE_DELETE_FAMILY_BLOOM_MISS_COUNT = "blockCacheDeleteFamilyBloomMissCount";
344   String BLOCK_CACHE_TRAILER_MISS_COUNT = "blockCacheTrailerMissCount";
345   String BLOCK_CACHE_DATA_HIT_COUNT = "blockCacheDataHitCount";
346   String BLOCK_CACHE_ENCODED_DATA_HIT_COUNT = "blockCacheEncodedDataHitCount";
347   String BLOCK_CACHE_LEAF_INDEX_HIT_COUNT = "blockCacheLeafIndexHitCount";
348   String BLOCK_CACHE_BLOOM_CHUNK_HIT_COUNT = "blockCacheBloomChunkHitCount";
349   String BLOCK_CACHE_META_HIT_COUNT = "blockCacheMetaHitCount";
350   String BLOCK_CACHE_ROOT_INDEX_HIT_COUNT = "blockCacheRootIndexHitCount";
351   String BLOCK_CACHE_INTERMEDIATE_INDEX_HIT_COUNT = "blockCacheIntermediateIndexHitCount";
352   String BLOCK_CACHE_FILE_INFO_HIT_COUNT = "blockCacheFileInfoHitCount";
353   String BLOCK_CACHE_GENERAL_BLOOM_META_HIT_COUNT = "blockCacheGeneralBloomMetaHitCount";
354   String BLOCK_CACHE_DELETE_FAMILY_BLOOM_HIT_COUNT = "blockCacheDeleteFamilyBloomHitCount";
355   String BLOCK_CACHE_TRAILER_HIT_COUNT = "blockCacheTrailerHitCount";
356 
357   String L1_CACHE_HIT_COUNT = "l1CacheHitCount";
358   String L1_CACHE_HIT_COUNT_DESC = "L1 cache hit count.";
359   String L1_CACHE_MISS_COUNT = "l1CacheMissCount";
360   String L1_CACHE_MISS_COUNT_DESC = "L1 cache miss count.";
361   String L1_CACHE_HIT_RATIO = "l1CacheHitRatio";
362   String L1_CACHE_HIT_RATIO_DESC = "L1 cache hit ratio.";
363   String L1_CACHE_MISS_RATIO = "l1CacheMissRatio";
364   String L1_CACHE_MISS_RATIO_DESC = "L1 cache miss ratio.";
365   String L2_CACHE_HIT_COUNT = "l2CacheHitCount";
366   String L2_CACHE_HIT_COUNT_DESC = "L2 cache hit count.";
367   String L2_CACHE_MISS_COUNT = "l2CacheMissCount";
368   String L2_CACHE_MISS_COUNT_DESC = "L2 cache miss count.";
369   String L2_CACHE_HIT_RATIO = "l2CacheHitRatio";
370   String L2_CACHE_HIT_RATIO_DESC = "L2 cache hit ratio.";
371   String L2_CACHE_MISS_RATIO = "l2CacheMissRatio";
372   String L2_CACHE_MISS_RATIO_DESC = "L2 cache miss ratio.";
373 
374   String RS_START_TIME_NAME = "regionServerStartTime";
375   String ZOOKEEPER_QUORUM_NAME = "zookeeperQuorum";
376   String SERVER_NAME_NAME = "serverName";
377   String CLUSTER_ID_NAME = "clusterId";
378   String RS_START_TIME_DESC = "RegionServer Start Time";
379   String ZOOKEEPER_QUORUM_DESC = "Zookeeper Quorum";
380   String SERVER_NAME_DESC = "Server Name";
381   String CLUSTER_ID_DESC = "Cluster Id";
382   String UPDATES_BLOCKED_TIME = "updatesBlockedTime";
383   String UPDATES_BLOCKED_DESC =
384       "Number of MS updates have been blocked so that the memstore can be flushed.";
385   String DELETE_KEY = "delete";
386   String CHECK_AND_DELETE_KEY = "checkAndDelete";
387   String CHECK_AND_PUT_KEY = "checkAndPut";
388   String DELETE_BATCH_KEY = "deleteBatch";
389   String GET_SIZE_KEY = "getSize";
390   String GET_KEY = "get";
391   String INCREMENT_KEY = "increment";
392   String PUT_KEY = "put";
393   String PUT_BATCH_KEY = "putBatch";
394   String APPEND_KEY = "append";
395   String REPLAY_KEY = "replay";
396   String SCAN_KEY = "scan";
397   String SCAN_SIZE_KEY = "scanSize";
398   String SCAN_TIME_KEY = "scanTime";
399 
400   String SLOW_PUT_KEY = "slowPutCount";
401   String SLOW_GET_KEY = "slowGetCount";
402   String SLOW_DELETE_KEY = "slowDeleteCount";
403   String SLOW_INCREMENT_KEY = "slowIncrementCount";
404   String SLOW_APPEND_KEY = "slowAppendCount";
405   String SLOW_PUT_DESC =
406       "The number of batches containing puts that took over 1000ms to complete";
407   String SLOW_DELETE_DESC =
408       "The number of batches containing delete(s) that took over 1000ms to complete";
409   String SLOW_GET_DESC = "The number of Gets that took over 1000ms to complete";
410   String SLOW_INCREMENT_DESC =
411       "The number of Increments that took over 1000ms to complete";
412   String SLOW_APPEND_DESC =
413       "The number of Appends that took over 1000ms to complete";
414 
415   String FLUSHED_CELLS = "flushedCellsCount";
416   String FLUSHED_CELLS_DESC = "The number of cells flushed to disk";
417   String FLUSHED_CELLS_SIZE = "flushedCellsSize";
418   String FLUSHED_CELLS_SIZE_DESC = "The total amount of data flushed to disk, in bytes";
419   String COMPACTED_CELLS = "compactedCellsCount";
420   String COMPACTED_CELLS_DESC = "The number of cells processed during minor compactions";
421   String COMPACTED_CELLS_SIZE = "compactedCellsSize";
422   String COMPACTED_CELLS_SIZE_DESC =
423       "The total amount of data processed during minor compactions, in bytes";
424   String MAJOR_COMPACTED_CELLS = "majorCompactedCellsCount";
425   String MAJOR_COMPACTED_CELLS_DESC =
426       "The number of cells processed during major compactions";
427   String MAJOR_COMPACTED_CELLS_SIZE = "majorCompactedCellsSize";
428   String MAJOR_COMPACTED_CELLS_SIZE_DESC =
429       "The total amount of data processed during major compactions, in bytes";
430 
431   String TOTAL_BYTES_READ = "totalBytesRead";
432   String TOTAL_BYTES_READ_DESC = "The total number of bytes read from HDFS";
433   String LOCAL_BYTES_READ = "localBytesRead";
434   String LOCAL_BYTES_READ_DESC =
435       "The number of bytes read from the local HDFS DataNode";
436   String SHORTCIRCUIT_BYTES_READ = "shortCircuitBytesRead";
437   String SHORTCIRCUIT_BYTES_READ_DESC = "The number of bytes read through HDFS short circuit read";
438   String ZEROCOPY_BYTES_READ = "zeroCopyBytesRead";
439   String ZEROCOPY_BYTES_READ_DESC =
440       "The number of bytes read through HDFS zero copy";
441 
442   String BLOCKED_REQUESTS_COUNT = "blockedRequestCount";
443   String BLOCKED_REQUESTS_COUNT_DESC = "The number of blocked requests because of memstore size is "
444       + "larger than blockingMemStoreSize";
445 
446   String SPLIT_KEY = "splitTime";
447   String SPLIT_REQUEST_KEY = "splitRequestCount";
448   String SPLIT_REQUEST_DESC = "Number of splits requested";
449   String SPLIT_SUCCESS_KEY = "splitSuccessCount";
450   String SPLIT_SUCCESS_DESC = "Number of successfully executed splits";
451 
452   String FLUSH_TIME = "flushTime";
453   String FLUSH_TIME_DESC = "Histogram for the time in millis for memstore flush";
454   String FLUSH_MEMSTORE_SIZE = "flushMemstoreSize";
455   String FLUSH_MEMSTORE_SIZE_DESC = "Histogram for number of bytes in the memstore for a flush";
456   String FLUSH_OUTPUT_SIZE = "flushOutputSize";
457   String FLUSH_OUTPUT_SIZE_DESC = "Histogram for number of bytes in the resulting file for a flush";
458   String FLUSHED_OUTPUT_BYTES = "flushedOutputBytes";
459   String FLUSHED_OUTPUT_BYTES_DESC = "Total number of bytes written from flush";
460   String FLUSHED_MEMSTORE_BYTES = "flushedMemstoreBytes";
461   String FLUSHED_MEMSTORE_BYTES_DESC = "Total number of bytes of cells in memstore from flush";
462 
463   String COMPACTION_TIME = "compactionTime";
464   String COMPACTION_TIME_DESC
465     = "Histogram for the time in millis for compaction, both major and minor";
466   String COMPACTION_INPUT_FILE_COUNT = "compactionInputFileCount";
467   String COMPACTION_INPUT_FILE_COUNT_DESC
468     = "Histogram for the compaction input number of files, both major and minor";
469   String COMPACTION_INPUT_SIZE = "compactionInputSize";
470   String COMPACTION_INPUT_SIZE_DESC
471     = "Histogram for the compaction total input file sizes, both major and minor";
472   String COMPACTION_OUTPUT_FILE_COUNT = "compactionOutputFileCount";
473   String COMPACTION_OUTPUT_FILE_COUNT_DESC
474     = "Histogram for the compaction output number of files, both major and minor";
475   String COMPACTION_OUTPUT_SIZE = "compactionOutputSize";
476   String COMPACTION_OUTPUT_SIZE_DESC
477     = "Histogram for the compaction total output file sizes, both major and minor";
478   String COMPACTED_INPUT_BYTES = "compactedInputBytes";
479   String COMPACTED_INPUT_BYTES_DESC
480     = "Total number of bytes that is read for compaction, both major and minor";
481   String COMPACTED_OUTPUT_BYTES = "compactedOutputBytes";
482   String COMPACTED_OUTPUT_BYTES_DESC
483     = "Total number of bytes that is output from compaction, both major and minor";
484 
485   String MAJOR_COMPACTION_TIME = "majorCompactionTime";
486   String MAJOR_COMPACTION_TIME_DESC
487     = "Histogram for the time in millis for compaction, major only";
488   String MAJOR_COMPACTION_INPUT_FILE_COUNT = "majorCompactionInputFileCount";
489   String MAJOR_COMPACTION_INPUT_FILE_COUNT_DESC
490     = "Histogram for the compaction input number of files, major only";
491   String MAJOR_COMPACTION_INPUT_SIZE = "majorCompactionInputSize";
492   String MAJOR_COMPACTION_INPUT_SIZE_DESC
493     = "Histogram for the compaction total input file sizes, major only";
494   String MAJOR_COMPACTION_OUTPUT_FILE_COUNT = "majorCompactionOutputFileCount";
495   String MAJOR_COMPACTION_OUTPUT_FILE_COUNT_DESC
496     = "Histogram for the compaction output number of files, major only";
497   String MAJOR_COMPACTION_OUTPUT_SIZE = "majorCompactionOutputSize";
498   String MAJOR_COMPACTION_OUTPUT_SIZE_DESC
499     = "Histogram for the compaction total output file sizes, major only";
500   String MAJOR_COMPACTED_INPUT_BYTES = "majorCompactedInputBytes";
501   String MAJOR_COMPACTED_INPUT_BYTES_DESC
502     = "Total number of bytes that is read for compaction, major only";
503   String MAJOR_COMPACTED_OUTPUT_BYTES = "majorCompactedOutputBytes";
504   String MAJOR_COMPACTED_OUTPUT_BYTES_DESC
505     = "Total number of bytes that is output from compaction, major only";
506 
507   String HEDGED_READS = "hedgedReads";
508   String HEDGED_READS_DESC = "The number of times we started a hedged read";
509   String HEDGED_READ_WINS = "hedgedReadWins";
510   String HEDGED_READ_WINS_DESC =
511     "The number of times we started a hedged read and a hedged read won";
512   String HEDGED_READ_IN_CUR_THREAD = "hedgedReadOpsInCurThread";
513   String HEDGED_READ_IN_CUR_THREAD_DESC =
514     "The number of times we execute a hedged read in current thread as a fallback for task rejection";
515 
516   String RPC_GET_REQUEST_COUNT = "rpcGetRequestCount";
517   String RPC_GET_REQUEST_COUNT_DESC = "Number of rpc get requests this region server has answered.";
518   String RPC_SCAN_REQUEST_COUNT = "rpcScanRequestCount";
519   String RPC_SCAN_REQUEST_COUNT_DESC =
520       "Number of rpc scan requests this region server has answered.";
521   String RPC_MULTI_REQUEST_COUNT = "rpcMultiRequestCount";
522   String RPC_MULTI_REQUEST_COUNT_DESC =
523       "Number of rpc multi requests this region server has answered.";
524   String RPC_MUTATE_REQUEST_COUNT = "rpcMutateRequestCount";
525   String RPC_MUTATE_REQUEST_COUNT_DESC =
526       "Number of rpc mutation requests this region server has answered.";
527   String AVERAGE_REGION_SIZE = "averageRegionSize";
528   String AVERAGE_REGION_SIZE_DESC =
529       "Average region size over the region server including memstore and storefile sizes.";
530 }