HBASE-27159 Emit source metrics for BlockCacheExpressHitPercent (#4830)

Signed-off-by: Andrew Purtell <apurtell@apache.org>
This commit is contained in:
d-c-manning 2022-10-17 14:18:37 -07:00 committed by GitHub
parent 77a21b93c5
commit 5cacece790
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 43 additions and 0 deletions

View File

@ -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_HIT_COUNT_DESC = "Count of the hit on the block cache.";
String BLOCK_CACHE_PRIMARY_HIT_COUNT = "blockCacheHitCountPrimary"; 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_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_CACHE_MISS_COUNT = "blockCacheMissCount";
String BLOCK_COUNT_MISS_COUNT_DESC = String BLOCK_COUNT_MISS_COUNT_DESC =
"Number of requests for a block that missed the block cache."; "Number of requests for a block that missed the block cache.";
String BLOCK_CACHE_PRIMARY_MISS_COUNT = "blockCacheMissCountPrimary"; String BLOCK_CACHE_PRIMARY_MISS_COUNT = "blockCacheMissCountPrimary";
String BLOCK_COUNT_PRIMARY_MISS_COUNT_DESC = String BLOCK_COUNT_PRIMARY_MISS_COUNT_DESC =
"Number of requests for a block of primary replica that missed the block cache."; "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 = "blockCacheEvictionCount";
String BLOCK_CACHE_EVICTION_COUNT_DESC = String BLOCK_CACHE_EVICTION_COUNT_DESC =
"Count of the number of blocks evicted from the block cache." "Count of the number of blocks evicted from the block cache."

View File

@ -372,11 +372,16 @@ public class MetricsRegionServerSourceImpl extends BaseSourceImpl
rsWrap.getBlockCacheHitCount()) rsWrap.getBlockCacheHitCount())
.addCounter(Interns.info(BLOCK_CACHE_PRIMARY_HIT_COUNT, BLOCK_CACHE_PRIMARY_HIT_COUNT_DESC), .addCounter(Interns.info(BLOCK_CACHE_PRIMARY_HIT_COUNT, BLOCK_CACHE_PRIMARY_HIT_COUNT_DESC),
rsWrap.getBlockCachePrimaryHitCount()) 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), .addCounter(Interns.info(BLOCK_CACHE_MISS_COUNT, BLOCK_COUNT_MISS_COUNT_DESC),
rsWrap.getBlockCacheMissCount()) rsWrap.getBlockCacheMissCount())
.addCounter( .addCounter(
Interns.info(BLOCK_CACHE_PRIMARY_MISS_COUNT, BLOCK_COUNT_PRIMARY_MISS_COUNT_DESC), Interns.info(BLOCK_CACHE_PRIMARY_MISS_COUNT, BLOCK_COUNT_PRIMARY_MISS_COUNT_DESC),
rsWrap.getBlockCachePrimaryMissCount()) 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), .addCounter(Interns.info(BLOCK_CACHE_EVICTION_COUNT, BLOCK_CACHE_EVICTION_COUNT_DESC),
rsWrap.getBlockCacheEvictedCount()) rsWrap.getBlockCacheEvictedCount())
.addCounter( .addCounter(

View File

@ -299,6 +299,11 @@ public interface MetricsRegionServerWrapper {
*/ */
long getBlockCachePrimaryHitCount(); 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. * Get the count of misses to the block cache.
*/ */
@ -309,6 +314,11 @@ public interface MetricsRegionServerWrapper {
*/ */
long getBlockCachePrimaryMissCount(); 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. * Get the number of items evicted from the block cache.
*/ */

View File

@ -330,6 +330,11 @@ class MetricsRegionServerWrapperImpl implements MetricsRegionServerWrapper {
return this.cacheStats != null ? this.cacheStats.getPrimaryHitCount() : 0L; return this.cacheStats != null ? this.cacheStats.getPrimaryHitCount() : 0L;
} }
@Override
public long getBlockCacheHitCachingCount() {
return this.cacheStats != null ? this.cacheStats.getHitCachingCount() : 0L;
}
@Override @Override
public long getBlockCacheMissCount() { public long getBlockCacheMissCount() {
return this.cacheStats != null ? this.cacheStats.getMissCount() : 0L; return this.cacheStats != null ? this.cacheStats.getMissCount() : 0L;
@ -340,6 +345,11 @@ class MetricsRegionServerWrapperImpl implements MetricsRegionServerWrapper {
return this.cacheStats != null ? this.cacheStats.getPrimaryMissCount() : 0L; return this.cacheStats != null ? this.cacheStats.getPrimaryMissCount() : 0L;
} }
@Override
public long getBlockCacheMissCachingCount() {
return this.cacheStats != null ? this.cacheStats.getMissCachingCount() : 0L;
}
@Override @Override
public long getBlockCacheEvictedCount() { public long getBlockCacheEvictedCount() {
return this.cacheStats != null ? this.cacheStats.getEvictedCount() : 0L; return this.cacheStats != null ? this.cacheStats.getEvictedCount() : 0L;

View File

@ -332,6 +332,11 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
return 422; return 422;
} }
@Override
public long getBlockCacheHitCachingCount() {
return 16;
}
@Override @Override
public long getBlockCacheMissCount() { public long getBlockCacheMissCount() {
return 417; return 417;
@ -342,6 +347,11 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
return 421; return 421;
} }
@Override
public long getBlockCacheMissCachingCount() {
return 17;
}
@Override @Override
public long getBlockCacheEvictedCount() { public long getBlockCacheEvictedCount() {
return 418; return 418;

View File

@ -111,7 +111,9 @@ public class TestMetricsRegionServer {
HELPER.assertGauge("blockCacheDataBlockCount", 300, serverSource); HELPER.assertGauge("blockCacheDataBlockCount", 300, serverSource);
HELPER.assertGauge("blockCacheSize", 415, serverSource); HELPER.assertGauge("blockCacheSize", 415, serverSource);
HELPER.assertCounter("blockCacheHitCount", 416, serverSource); HELPER.assertCounter("blockCacheHitCount", 416, serverSource);
HELPER.assertCounter("blockCacheHitCachingCount", 16, serverSource);
HELPER.assertCounter("blockCacheMissCount", 417, serverSource); HELPER.assertCounter("blockCacheMissCount", 417, serverSource);
HELPER.assertCounter("blockCacheMissCachingCount", 17, serverSource);
HELPER.assertCounter("blockCacheEvictionCount", 418, serverSource); HELPER.assertCounter("blockCacheEvictionCount", 418, serverSource);
HELPER.assertGauge("blockCacheCountHitPercent", 98, serverSource); HELPER.assertGauge("blockCacheCountHitPercent", 98, serverSource);
HELPER.assertGauge("blockCacheExpressHitPercent", 97, serverSource); HELPER.assertGauge("blockCacheExpressHitPercent", 97, serverSource);