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.classification.InterfaceAudience;
22  import org.apache.hadoop.hbase.metrics.BaseSourceImpl;
23  import org.apache.hadoop.hbase.metrics.Interns;
24  import org.apache.hadoop.metrics2.MetricHistogram;
25  import org.apache.hadoop.metrics2.MetricsCollector;
26  import org.apache.hadoop.metrics2.MetricsRecordBuilder;
27  import org.apache.hadoop.metrics2.lib.MutableFastCounter;
28  
29  /**
30   * Hadoop2 implementation of MetricsRegionServerSource.
31   *
32   * Implements BaseSource through BaseSourceImpl, following the pattern
33   */
34  @InterfaceAudience.Private
35  public class MetricsRegionServerSourceImpl
36      extends BaseSourceImpl implements MetricsRegionServerSource {
37  
38    final MetricsRegionServerWrapper rsWrap;
39    private final MetricHistogram putHisto;
40    private final MetricHistogram deleteHisto;
41    private final MetricHistogram getHisto;
42    private final MetricHistogram incrementHisto;
43    private final MetricHistogram appendHisto;
44    private final MetricHistogram replayHisto;
45    private final MetricHistogram scanSizeHisto;
46    private final MetricHistogram scanTimeHisto;
47  
48    private final MutableFastCounter slowPut;
49    private final MutableFastCounter slowDelete;
50    private final MutableFastCounter slowGet;
51    private final MutableFastCounter slowIncrement;
52    private final MutableFastCounter slowAppend;
53    private final MutableFastCounter splitRequest;
54    private final MutableFastCounter splitSuccess;
55  
56    private final MetricHistogram splitTimeHisto;
57  
58    // flush related metrics
59    private final MetricHistogram flushTimeHisto;
60    private final MetricHistogram flushMemstoreSizeHisto;
61    private final MetricHistogram flushOutputSizeHisto;
62    private final MutableFastCounter flushedMemstoreBytes;
63    private final MutableFastCounter flushedOutputBytes;
64  
65    // compaction related metrics
66    private final MetricHistogram compactionTimeHisto;
67    private final MetricHistogram compactionInputFileCountHisto;
68    private final MetricHistogram compactionInputSizeHisto;
69    private final MetricHistogram compactionOutputFileCountHisto;
70    private final MetricHistogram compactionOutputSizeHisto;
71    private final MutableFastCounter compactedInputBytes;
72    private final MutableFastCounter compactedOutputBytes;
73  
74    private final MetricHistogram majorCompactionTimeHisto;
75    private final MetricHistogram majorCompactionInputFileCountHisto;
76    private final MetricHistogram majorCompactionInputSizeHisto;
77    private final MetricHistogram majorCompactionOutputFileCountHisto;
78    private final MetricHistogram majorCompactionOutputSizeHisto;
79    private final MutableFastCounter majorCompactedInputBytes;
80    private final MutableFastCounter majorCompactedOutputBytes;
81  
82    public MetricsRegionServerSourceImpl(MetricsRegionServerWrapper rsWrap) {
83      this(METRICS_NAME, METRICS_DESCRIPTION, METRICS_CONTEXT, METRICS_JMX_CONTEXT, rsWrap);
84    }
85  
86    public MetricsRegionServerSourceImpl(String metricsName,
87                                         String metricsDescription,
88                                         String metricsContext,
89                                         String metricsJmxContext,
90                                         MetricsRegionServerWrapper rsWrap) {
91      super(metricsName, metricsDescription, metricsContext, metricsJmxContext);
92      this.rsWrap = rsWrap;
93  
94      putHisto = getMetricsRegistry().newTimeHistogram(MUTATE_KEY);
95      slowPut = getMetricsRegistry().newCounter(SLOW_MUTATE_KEY, SLOW_MUTATE_DESC, 0L);
96  
97      deleteHisto = getMetricsRegistry().newTimeHistogram(DELETE_KEY);
98      slowDelete = getMetricsRegistry().newCounter(SLOW_DELETE_KEY, SLOW_DELETE_DESC, 0L);
99  
100     getHisto = getMetricsRegistry().newTimeHistogram(GET_KEY);
101     slowGet = getMetricsRegistry().newCounter(SLOW_GET_KEY, SLOW_GET_DESC, 0L);
102 
103     incrementHisto = getMetricsRegistry().newTimeHistogram(INCREMENT_KEY);
104     slowIncrement = getMetricsRegistry().newCounter(SLOW_INCREMENT_KEY, SLOW_INCREMENT_DESC, 0L);
105 
106     appendHisto = getMetricsRegistry().newTimeHistogram(APPEND_KEY);
107     slowAppend = getMetricsRegistry().newCounter(SLOW_APPEND_KEY, SLOW_APPEND_DESC, 0L);
108 
109     replayHisto = getMetricsRegistry().newTimeHistogram(REPLAY_KEY);
110     scanSizeHisto = getMetricsRegistry().newSizeHistogram(SCAN_SIZE_KEY);
111     scanTimeHisto = getMetricsRegistry().newTimeHistogram(SCAN_TIME_KEY);
112 
113     flushTimeHisto = getMetricsRegistry().newTimeHistogram(FLUSH_TIME, FLUSH_TIME_DESC);
114     flushMemstoreSizeHisto = getMetricsRegistry()
115         .newSizeHistogram(FLUSH_MEMSTORE_SIZE, FLUSH_MEMSTORE_SIZE_DESC);
116     flushOutputSizeHisto = getMetricsRegistry().newSizeHistogram(FLUSH_OUTPUT_SIZE,
117       FLUSH_OUTPUT_SIZE_DESC);
118     flushedOutputBytes = getMetricsRegistry().newCounter(FLUSHED_OUTPUT_BYTES,
119       FLUSHED_OUTPUT_BYTES_DESC, 0L);
120     flushedMemstoreBytes = getMetricsRegistry().newCounter(FLUSHED_MEMSTORE_BYTES,
121       FLUSHED_MEMSTORE_BYTES_DESC, 0L);
122 
123     compactionTimeHisto = getMetricsRegistry()
124         .newTimeHistogram(COMPACTION_TIME, COMPACTION_TIME_DESC);
125     compactionInputFileCountHisto = getMetricsRegistry()
126       .newHistogram(COMPACTION_INPUT_FILE_COUNT, COMPACTION_INPUT_FILE_COUNT_DESC);
127     compactionInputSizeHisto = getMetricsRegistry()
128         .newSizeHistogram(COMPACTION_INPUT_SIZE, COMPACTION_INPUT_SIZE_DESC);
129     compactionOutputFileCountHisto = getMetricsRegistry()
130         .newHistogram(COMPACTION_OUTPUT_FILE_COUNT, COMPACTION_OUTPUT_FILE_COUNT_DESC);
131     compactionOutputSizeHisto = getMetricsRegistry()
132       .newSizeHistogram(COMPACTION_OUTPUT_SIZE, COMPACTION_OUTPUT_SIZE_DESC);
133     compactedInputBytes = getMetricsRegistry()
134         .newCounter(COMPACTED_INPUT_BYTES, COMPACTED_INPUT_BYTES_DESC, 0L);
135     compactedOutputBytes = getMetricsRegistry()
136         .newCounter(COMPACTED_OUTPUT_BYTES, COMPACTED_OUTPUT_BYTES_DESC, 0L);
137 
138     majorCompactionTimeHisto = getMetricsRegistry()
139         .newTimeHistogram(MAJOR_COMPACTION_TIME, MAJOR_COMPACTION_TIME_DESC);
140     majorCompactionInputFileCountHisto = getMetricsRegistry()
141       .newHistogram(MAJOR_COMPACTION_INPUT_FILE_COUNT, MAJOR_COMPACTION_INPUT_FILE_COUNT_DESC);
142     majorCompactionInputSizeHisto = getMetricsRegistry()
143         .newSizeHistogram(MAJOR_COMPACTION_INPUT_SIZE, MAJOR_COMPACTION_INPUT_SIZE_DESC);
144     majorCompactionOutputFileCountHisto = getMetricsRegistry()
145         .newHistogram(MAJOR_COMPACTION_OUTPUT_FILE_COUNT, MAJOR_COMPACTION_OUTPUT_FILE_COUNT_DESC);
146     majorCompactionOutputSizeHisto = getMetricsRegistry()
147       .newSizeHistogram(MAJOR_COMPACTION_OUTPUT_SIZE, MAJOR_COMPACTION_OUTPUT_SIZE_DESC);
148     majorCompactedInputBytes = getMetricsRegistry()
149         .newCounter(MAJOR_COMPACTED_INPUT_BYTES, MAJOR_COMPACTED_INPUT_BYTES_DESC, 0L);
150     majorCompactedOutputBytes = getMetricsRegistry()
151         .newCounter(MAJOR_COMPACTED_OUTPUT_BYTES, MAJOR_COMPACTED_OUTPUT_BYTES_DESC, 0L);
152 
153     splitTimeHisto = getMetricsRegistry().newTimeHistogram(SPLIT_KEY);
154     splitRequest = getMetricsRegistry().newCounter(SPLIT_REQUEST_KEY, SPLIT_REQUEST_DESC, 0L);
155     splitSuccess = getMetricsRegistry().newCounter(SPLIT_SUCCESS_KEY, SPLIT_SUCCESS_DESC, 0L);
156   }
157 
158   @Override
159   public void updatePut(long t) {
160     putHisto.add(t);
161   }
162 
163   @Override
164   public void updateDelete(long t) {
165     deleteHisto.add(t);
166   }
167 
168   @Override
169   public void updateGet(long t) {
170     getHisto.add(t);
171   }
172 
173   @Override
174   public void updateIncrement(long t) {
175     incrementHisto.add(t);
176   }
177 
178   @Override
179   public void updateAppend(long t) {
180     appendHisto.add(t);
181   }
182 
183   @Override
184   public void updateReplay(long t) {
185     replayHisto.add(t);
186   }
187 
188   @Override
189   public void updateScanSize(long scanSize) {
190     scanSizeHisto.add(scanSize);
191   }
192 
193   @Override
194   public void updateScanTime(long t) {
195     scanTimeHisto.add(t);
196   }
197 
198   @Override
199   public void incrSlowPut() {
200    slowPut.incr();
201   }
202 
203   @Override
204   public void incrSlowDelete() {
205     slowDelete.incr();
206   }
207 
208   @Override
209   public void incrSlowGet() {
210     slowGet.incr();
211   }
212 
213   @Override
214   public void incrSlowIncrement() {
215     slowIncrement.incr();
216   }
217 
218   @Override
219   public void incrSlowAppend() {
220     slowAppend.incr();
221   }
222 
223   @Override
224   public void incrSplitRequest() {
225     splitRequest.incr();
226   }
227 
228   @Override
229   public void incrSplitSuccess() {
230     splitSuccess.incr();
231   }
232 
233   @Override
234   public void updateSplitTime(long t) {
235     splitTimeHisto.add(t);
236   }
237 
238   @Override
239   public void updateFlushTime(long t) {
240     flushTimeHisto.add(t);
241   }
242 
243   @Override
244   public void updateFlushMemstoreSize(long bytes) {
245     flushMemstoreSizeHisto.add(bytes);
246     flushedMemstoreBytes.incr(bytes);
247   }
248 
249   @Override
250   public void updateFlushOutputSize(long bytes) {
251     flushOutputSizeHisto.add(bytes);
252     flushedOutputBytes.incr(bytes);
253   }
254 
255   @Override
256   public void updateCompactionTime(boolean isMajor, long t) {
257     compactionTimeHisto.add(t);
258     if (isMajor) {
259       majorCompactionTimeHisto.add(t);
260     }
261   }
262 
263   @Override
264   public void updateCompactionInputFileCount(boolean isMajor, long c) {
265     compactionInputFileCountHisto.add(c);
266     if (isMajor) {
267       majorCompactionInputFileCountHisto.add(c);
268     }
269   }
270 
271   @Override
272   public void updateCompactionInputSize(boolean isMajor, long bytes) {
273     compactionInputSizeHisto.add(bytes);
274     compactedInputBytes.incr(bytes);
275     if (isMajor) {
276       majorCompactionInputSizeHisto.add(bytes);
277       majorCompactedInputBytes.incr(bytes);
278     }
279   }
280 
281   @Override
282   public void updateCompactionOutputFileCount(boolean isMajor, long c) {
283     compactionOutputFileCountHisto.add(c);
284     if (isMajor) {
285       majorCompactionOutputFileCountHisto.add(c);
286     }
287   }
288 
289   @Override
290   public void updateCompactionOutputSize(boolean isMajor, long bytes) {
291     compactionOutputSizeHisto.add(bytes);
292     compactedOutputBytes.incr(bytes);
293     if (isMajor) {
294       majorCompactionOutputSizeHisto.add(bytes);
295       majorCompactedOutputBytes.incr(bytes);
296     }
297   }
298 
299   /**
300    * Yes this is a get function that doesn't return anything.  Thanks Hadoop for breaking all
301    * expectations of java programmers.  Instead of returning anything Hadoop metrics expects
302    * getMetrics to push the metrics into the collector.
303    *
304    * @param metricsCollector Collector to accept metrics
305    * @param all              push all or only changed?
306    */
307   @Override
308   public void getMetrics(MetricsCollector metricsCollector, boolean all) {
309 
310     MetricsRecordBuilder mrb = metricsCollector.addRecord(metricsName);
311 
312     // rsWrap can be null because this function is called inside of init.
313     if (rsWrap != null) {
314       mrb.addGauge(Interns.info(REGION_COUNT, REGION_COUNT_DESC), rsWrap.getNumOnlineRegions())
315           .addGauge(Interns.info(STORE_COUNT, STORE_COUNT_DESC), rsWrap.getNumStores())
316           .addGauge(Interns.info(WALFILE_COUNT, WALFILE_COUNT_DESC), rsWrap.getNumWALFiles())
317           .addGauge(Interns.info(WALFILE_SIZE, WALFILE_SIZE_DESC), rsWrap.getWALFileSize())
318           .addGauge(Interns.info(STOREFILE_COUNT, STOREFILE_COUNT_DESC), rsWrap.getNumStoreFiles())
319           .addGauge(Interns.info(MEMSTORE_SIZE, MEMSTORE_SIZE_DESC), rsWrap.getMemstoreSize())
320           .addGauge(Interns.info(STOREFILE_SIZE, STOREFILE_SIZE_DESC), rsWrap.getStoreFileSize())
321           .addGauge(Interns.info(MAX_STORE_FILE_AGE, MAX_STORE_FILE_AGE_DESC),
322               rsWrap.getMaxStoreFileAge())
323           .addGauge(Interns.info(MIN_STORE_FILE_AGE, MIN_STORE_FILE_AGE_DESC),
324               rsWrap.getMinStoreFileAge())
325           .addGauge(Interns.info(AVG_STORE_FILE_AGE, AVG_STORE_FILE_AGE_DESC),
326               rsWrap.getAvgStoreFileAge())
327           .addGauge(Interns.info(NUM_REFERENCE_FILES, NUM_REFERENCE_FILES_DESC),
328               rsWrap.getNumReferenceFiles())
329           .addGauge(Interns.info(RS_START_TIME_NAME, RS_START_TIME_DESC),
330               rsWrap.getStartCode())
331           .addGauge(Interns.info(AVERAGE_REGION_SIZE, AVERAGE_REGION_SIZE_DESC), rsWrap.getAverageRegionSize())
332           .addGauge(Interns.info(READ_REQUEST_RATE, READ_REQUEST_RATE_DESC),
333               rsWrap.getReadRequestsRate())
334           .addGauge(Interns.info(WRITE_REQUEST_RATE, WRITE_REQUEST_RATE_DESC),
335               rsWrap.getWriteRequestsRate())
336           .addCounter(Interns.info(TOTAL_REQUEST_COUNT, TOTAL_REQUEST_COUNT_DESC),
337               rsWrap.getTotalRequestCount())
338           .addCounter(Interns.info(READ_REQUEST_COUNT, READ_REQUEST_COUNT_DESC),
339               rsWrap.getReadRequestsCount())
340           .addCounter(Interns.info(WRITE_REQUEST_COUNT, WRITE_REQUEST_COUNT_DESC),
341               rsWrap.getWriteRequestsCount())
342           .addCounter(Interns.info(RPC_GET_REQUEST_COUNT, RPC_GET_REQUEST_COUNT_DESC),
343             rsWrap.getRpcGetRequestsCount())
344           .addCounter(Interns.info(RPC_SCAN_REQUEST_COUNT, RPC_SCAN_REQUEST_COUNT_DESC),
345             rsWrap.getRpcScanRequestsCount())
346           .addCounter(Interns.info(RPC_MULTI_REQUEST_COUNT, RPC_MULTI_REQUEST_COUNT_DESC),
347             rsWrap.getRpcMultiRequestsCount())
348           .addCounter(Interns.info(RPC_MUTATE_REQUEST_COUNT, RPC_MUTATE_REQUEST_COUNT_DESC),
349             rsWrap.getRpcMutateRequestsCount())
350           .addCounter(Interns.info(CHECK_MUTATE_FAILED_COUNT, CHECK_MUTATE_FAILED_COUNT_DESC),
351               rsWrap.getCheckAndMutateChecksFailed())
352           .addCounter(Interns.info(CHECK_MUTATE_PASSED_COUNT, CHECK_MUTATE_PASSED_COUNT_DESC),
353               rsWrap.getCheckAndMutateChecksPassed())
354           .addGauge(Interns.info(STOREFILE_INDEX_SIZE, STOREFILE_INDEX_SIZE_DESC),
355               rsWrap.getStoreFileIndexSize())
356           .addGauge(Interns.info(STATIC_INDEX_SIZE, STATIC_INDEX_SIZE_DESC),
357               rsWrap.getTotalStaticIndexSize())
358           .addGauge(Interns.info(STATIC_BLOOM_SIZE, STATIC_BLOOM_SIZE_DESC),
359             rsWrap.getTotalStaticBloomSize())
360           .addGauge(
361             Interns.info(NUMBER_OF_MUTATIONS_WITHOUT_WAL, NUMBER_OF_MUTATIONS_WITHOUT_WAL_DESC),
362               rsWrap.getNumMutationsWithoutWAL())
363           .addGauge(Interns.info(DATA_SIZE_WITHOUT_WAL, DATA_SIZE_WITHOUT_WAL_DESC),
364               rsWrap.getDataInMemoryWithoutWAL())
365           .addGauge(Interns.info(PERCENT_FILES_LOCAL, PERCENT_FILES_LOCAL_DESC),
366               rsWrap.getPercentFileLocal())
367           .addGauge(Interns.info(PERCENT_FILES_LOCAL_SECONDARY_REGIONS,
368               PERCENT_FILES_LOCAL_SECONDARY_REGIONS_DESC),
369               rsWrap.getPercentFileLocalSecondaryRegions())
370           .addGauge(Interns.info(SPLIT_QUEUE_LENGTH, SPLIT_QUEUE_LENGTH_DESC),
371               rsWrap.getSplitQueueSize())
372           .addGauge(Interns.info(COMPACTION_QUEUE_LENGTH, COMPACTION_QUEUE_LENGTH_DESC),
373               rsWrap.getCompactionQueueSize())
374           .addGauge(Interns.info(SMALL_COMPACTION_QUEUE_LENGTH, SMALL_COMPACTION_QUEUE_LENGTH_DESC),
375             rsWrap.getSmallCompactionQueueSize())
376           .addGauge(Interns.info(LARGE_COMPACTION_QUEUE_LENGTH, LARGE_COMPACTION_QUEUE_LENGTH_DESC),
377             rsWrap.getLargeCompactionQueueSize())
378           .addGauge(Interns.info(FLUSH_QUEUE_LENGTH, FLUSH_QUEUE_LENGTH_DESC),
379               rsWrap.getFlushQueueSize())
380 
381           .addGauge(Interns.info(BLOCK_CACHE_FREE_SIZE, BLOCK_CACHE_FREE_DESC),
382               rsWrap.getBlockCacheFreeSize())
383           .addGauge(Interns.info(BLOCK_CACHE_COUNT, BLOCK_CACHE_COUNT_DESC),
384               rsWrap.getBlockCacheCount())
385           .addGauge(Interns.info(BLOCK_CACHE_SIZE, BLOCK_CACHE_SIZE_DESC),
386               rsWrap.getBlockCacheSize())
387           .addCounter(Interns.info(BLOCK_CACHE_HIT_COUNT, BLOCK_CACHE_HIT_COUNT_DESC),
388               rsWrap.getBlockCacheHitCount())
389           .addCounter(Interns.info(BLOCK_CACHE_PRIMARY_HIT_COUNT,
390             BLOCK_CACHE_PRIMARY_HIT_COUNT_DESC), rsWrap.getBlockCachePrimaryHitCount())
391           .addCounter(Interns.info(BLOCK_CACHE_MISS_COUNT, BLOCK_COUNT_MISS_COUNT_DESC),
392               rsWrap.getBlockCacheMissCount())
393           .addCounter(Interns.info(BLOCK_CACHE_PRIMARY_MISS_COUNT,
394             BLOCK_COUNT_PRIMARY_MISS_COUNT_DESC), rsWrap.getBlockCachePrimaryMissCount())
395           .addCounter(Interns.info(BLOCK_CACHE_EVICTION_COUNT, BLOCK_CACHE_EVICTION_COUNT_DESC),
396               rsWrap.getBlockCacheEvictedCount())
397           .addCounter(Interns.info(BLOCK_CACHE_PRIMARY_EVICTION_COUNT,
398             BLOCK_CACHE_PRIMARY_EVICTION_COUNT_DESC), rsWrap.getBlockCachePrimaryEvictedCount())
399           .addGauge(Interns.info(BLOCK_CACHE_HIT_PERCENT, BLOCK_CACHE_HIT_PERCENT_DESC),
400               rsWrap.getBlockCacheHitPercent())
401           .addGauge(Interns.info(BLOCK_CACHE_EXPRESS_HIT_PERCENT,
402               BLOCK_CACHE_EXPRESS_HIT_PERCENT_DESC), rsWrap.getBlockCacheHitCachingPercent())
403           .addCounter(Interns.info(BLOCK_CACHE_FAILED_INSERTION_COUNT,
404               BLOCK_CACHE_FAILED_INSERTION_COUNT_DESC),rsWrap.getBlockCacheFailedInsertions())
405           .addCounter(Interns.info(BLOCK_CACHE_DATA_MISS_COUNT, ""), rsWrap.getDataMissCount())
406           .addCounter(Interns.info(BLOCK_CACHE_LEAF_INDEX_MISS_COUNT, ""),
407               rsWrap.getLeafIndexMissCount())
408           .addCounter(Interns.info(BLOCK_CACHE_BLOOM_CHUNK_MISS_COUNT, ""),
409               rsWrap.getBloomChunkMissCount())
410           .addCounter(Interns.info(BLOCK_CACHE_META_MISS_COUNT, ""), rsWrap.getMetaMissCount())
411           .addCounter(Interns.info(BLOCK_CACHE_ROOT_INDEX_MISS_COUNT, ""),
412               rsWrap.getRootIndexMissCount())
413           .addCounter(Interns.info(BLOCK_CACHE_INTERMEDIATE_INDEX_MISS_COUNT, ""),
414               rsWrap.getIntermediateIndexMissCount())
415           .addCounter(Interns.info(BLOCK_CACHE_FILE_INFO_MISS_COUNT, ""),
416               rsWrap.getFileInfoMissCount())
417           .addCounter(Interns.info(BLOCK_CACHE_GENERAL_BLOOM_META_MISS_COUNT, ""),
418               rsWrap.getGeneralBloomMetaMissCount())
419           .addCounter(Interns.info(BLOCK_CACHE_DELETE_FAMILY_BLOOM_MISS_COUNT, ""),
420               rsWrap.getDeleteFamilyBloomMissCount())
421           .addCounter(Interns.info(BLOCK_CACHE_TRAILER_MISS_COUNT, ""),
422               rsWrap.getTrailerMissCount())
423           .addCounter(Interns.info(BLOCK_CACHE_DATA_HIT_COUNT, ""), rsWrap.getDataHitCount())
424           .addCounter(Interns.info(BLOCK_CACHE_LEAF_INDEX_HIT_COUNT, ""),
425               rsWrap.getLeafIndexHitCount())
426           .addCounter(Interns.info(BLOCK_CACHE_BLOOM_CHUNK_HIT_COUNT, ""),
427               rsWrap.getBloomChunkHitCount())
428           .addCounter(Interns.info(BLOCK_CACHE_META_HIT_COUNT, ""), rsWrap.getMetaHitCount())
429           .addCounter(Interns.info(BLOCK_CACHE_ROOT_INDEX_HIT_COUNT, ""),
430               rsWrap.getRootIndexHitCount())
431           .addCounter(Interns.info(BLOCK_CACHE_INTERMEDIATE_INDEX_HIT_COUNT, ""),
432               rsWrap.getIntermediateIndexHitCount())
433           .addCounter(Interns.info(BLOCK_CACHE_FILE_INFO_HIT_COUNT, ""),
434               rsWrap.getFileInfoHitCount())
435           .addCounter(Interns.info(BLOCK_CACHE_GENERAL_BLOOM_META_HIT_COUNT, ""),
436               rsWrap.getGeneralBloomMetaHitCount())
437           .addCounter(Interns.info(BLOCK_CACHE_DELETE_FAMILY_BLOOM_HIT_COUNT, ""),
438               rsWrap.getDeleteFamilyBloomHitCount())
439           .addCounter(Interns.info(BLOCK_CACHE_TRAILER_HIT_COUNT, ""), rsWrap.getTrailerHitCount())
440           .addCounter(Interns.info(UPDATES_BLOCKED_TIME, UPDATES_BLOCKED_DESC),
441               rsWrap.getUpdatesBlockedTime())
442           .addCounter(Interns.info(FLUSHED_CELLS, FLUSHED_CELLS_DESC),
443               rsWrap.getFlushedCellsCount())
444           .addCounter(Interns.info(COMPACTED_CELLS, COMPACTED_CELLS_DESC),
445               rsWrap.getCompactedCellsCount())
446           .addCounter(Interns.info(MAJOR_COMPACTED_CELLS, MAJOR_COMPACTED_CELLS_DESC),
447               rsWrap.getMajorCompactedCellsCount())
448           .addCounter(Interns.info(FLUSHED_CELLS_SIZE, FLUSHED_CELLS_SIZE_DESC),
449               rsWrap.getFlushedCellsSize())
450           .addCounter(Interns.info(COMPACTED_CELLS_SIZE, COMPACTED_CELLS_SIZE_DESC),
451               rsWrap.getCompactedCellsSize())
452           .addCounter(Interns.info(MAJOR_COMPACTED_CELLS_SIZE, MAJOR_COMPACTED_CELLS_SIZE_DESC),
453               rsWrap.getMajorCompactedCellsSize())
454           .addCounter(Interns.info(BLOCKED_REQUESTS_COUNT, BLOCKED_REQUESTS_COUNT_DESC),
455             rsWrap.getBlockedRequestsCount())
456           .tag(Interns.info(ZOOKEEPER_QUORUM_NAME, ZOOKEEPER_QUORUM_DESC),
457               rsWrap.getZookeeperQuorum())
458           .tag(Interns.info(SERVER_NAME_NAME, SERVER_NAME_DESC), rsWrap.getServerName())
459           .tag(Interns.info(CLUSTER_ID_NAME, CLUSTER_ID_DESC), rsWrap.getClusterId());
460     }
461 
462     metricsRegistry.snapshot(mrb, all);
463   }
464 }