diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java index 93ea1c1014fa..f89263a9b32d 100644 --- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java +++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java @@ -336,12 +336,18 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo String BLOCK_CACHE_HIT_COUNT_DESC = "Count of the hit on the block cache."; String BLOCK_CACHE_PRIMARY_HIT_COUNT = "blockCacheHitCountPrimary"; String BLOCK_CACHE_PRIMARY_HIT_COUNT_DESC = "Count of hit on primary replica in the block cache."; + String BLOCK_CACHE_HIT_CACHING_COUNT = "blockCacheHitCachingCount"; + String BLOCK_CACHE_HIT_CACHING_COUNT_DESC = + "Count of the hit on the block cache, for cacheable requests."; String BLOCK_CACHE_MISS_COUNT = "blockCacheMissCount"; String BLOCK_COUNT_MISS_COUNT_DESC = "Number of requests for a block that missed the block cache."; String BLOCK_CACHE_PRIMARY_MISS_COUNT = "blockCacheMissCountPrimary"; String BLOCK_COUNT_PRIMARY_MISS_COUNT_DESC = "Number of requests for a block of primary replica that missed the block cache."; + String BLOCK_CACHE_MISS_CACHING_COUNT = "blockCacheMissCachingCount"; + String BLOCK_COUNT_MISS_CACHING_COUNT_DESC = + "Number of requests for a block that missed the block cache, for cacheable requests."; String BLOCK_CACHE_EVICTION_COUNT = "blockCacheEvictionCount"; String BLOCK_CACHE_EVICTION_COUNT_DESC = "Count of the number of blocks evicted from the block cache." diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java index e8054127f42d..bbae0587eb83 100644 --- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java +++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java @@ -372,11 +372,16 @@ public void getMetrics(MetricsCollector metricsCollector, boolean all) { rsWrap.getBlockCacheHitCount()) .addCounter(Interns.info(BLOCK_CACHE_PRIMARY_HIT_COUNT, BLOCK_CACHE_PRIMARY_HIT_COUNT_DESC), rsWrap.getBlockCachePrimaryHitCount()) + .addCounter(Interns.info(BLOCK_CACHE_HIT_CACHING_COUNT, BLOCK_CACHE_HIT_CACHING_COUNT_DESC), + rsWrap.getBlockCacheHitCachingCount()) .addCounter(Interns.info(BLOCK_CACHE_MISS_COUNT, BLOCK_COUNT_MISS_COUNT_DESC), rsWrap.getBlockCacheMissCount()) .addCounter( Interns.info(BLOCK_CACHE_PRIMARY_MISS_COUNT, BLOCK_COUNT_PRIMARY_MISS_COUNT_DESC), rsWrap.getBlockCachePrimaryMissCount()) + .addCounter( + Interns.info(BLOCK_CACHE_MISS_CACHING_COUNT, BLOCK_COUNT_MISS_CACHING_COUNT_DESC), + rsWrap.getBlockCacheMissCachingCount()) .addCounter(Interns.info(BLOCK_CACHE_EVICTION_COUNT, BLOCK_CACHE_EVICTION_COUNT_DESC), rsWrap.getBlockCacheEvictedCount()) .addCounter( diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java index c294cc3b5316..26612e148256 100644 --- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java +++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java @@ -299,6 +299,11 @@ public interface MetricsRegionServerWrapper { */ long getBlockCachePrimaryHitCount(); + /** + * Get the count of hits to the block cache, for cacheable requests only. + */ + long getBlockCacheHitCachingCount(); + /** * Get the count of misses to the block cache. */ @@ -309,6 +314,11 @@ public interface MetricsRegionServerWrapper { */ long getBlockCachePrimaryMissCount(); + /** + * Get the count of misses to the block cache, for cacheable requests only. + */ + long getBlockCacheMissCachingCount(); + /** * Get the number of items evicted from the block cache. */ diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java index ed3fbe491c2a..dd8c9c551270 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java @@ -330,6 +330,11 @@ public long getBlockCachePrimaryHitCount() { return this.cacheStats != null ? this.cacheStats.getPrimaryHitCount() : 0L; } + @Override + public long getBlockCacheHitCachingCount() { + return this.cacheStats != null ? this.cacheStats.getHitCachingCount() : 0L; + } + @Override public long getBlockCacheMissCount() { return this.cacheStats != null ? this.cacheStats.getMissCount() : 0L; @@ -340,6 +345,11 @@ public long getBlockCachePrimaryMissCount() { return this.cacheStats != null ? this.cacheStats.getPrimaryMissCount() : 0L; } + @Override + public long getBlockCacheMissCachingCount() { + return this.cacheStats != null ? this.cacheStats.getMissCachingCount() : 0L; + } + @Override public long getBlockCacheEvictedCount() { return this.cacheStats != null ? this.cacheStats.getEvictedCount() : 0L; diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java index 157de87774ae..32c80e18004e 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java @@ -332,6 +332,11 @@ public long getBlockCachePrimaryHitCount() { return 422; } + @Override + public long getBlockCacheHitCachingCount() { + return 16; + } + @Override public long getBlockCacheMissCount() { return 417; @@ -342,6 +347,11 @@ public long getBlockCachePrimaryMissCount() { return 421; } + @Override + public long getBlockCacheMissCachingCount() { + return 17; + } + @Override public long getBlockCacheEvictedCount() { return 418; diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegionServer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegionServer.java index fa3148df3fe8..73e045229340 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegionServer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegionServer.java @@ -111,7 +111,9 @@ public void testWrapperSource() { HELPER.assertGauge("blockCacheDataBlockCount", 300, serverSource); HELPER.assertGauge("blockCacheSize", 415, serverSource); HELPER.assertCounter("blockCacheHitCount", 416, serverSource); + HELPER.assertCounter("blockCacheHitCachingCount", 16, serverSource); HELPER.assertCounter("blockCacheMissCount", 417, serverSource); + HELPER.assertCounter("blockCacheMissCachingCount", 17, serverSource); HELPER.assertCounter("blockCacheEvictionCount", 418, serverSource); HELPER.assertGauge("blockCacheCountHitPercent", 98, serverSource); HELPER.assertGauge("blockCacheExpressHitPercent", 97, serverSource);