You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2022/10/17 21:18:44 UTC

[hbase] branch master updated: HBASE-27159 Emit source metrics for BlockCacheExpressHitPercent (#4830)

This is an automated email from the ASF dual-hosted git repository.

apurtell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new 5cacece7908 HBASE-27159 Emit source metrics for BlockCacheExpressHitPercent (#4830)
5cacece7908 is described below

commit 5cacece7908b8b2738dd3c8bc79255b27274f558
Author: d-c-manning <67...@users.noreply.github.com>
AuthorDate: Mon Oct 17 14:18:37 2022 -0700

    HBASE-27159 Emit source metrics for BlockCacheExpressHitPercent (#4830)
    
    Signed-off-by: Andrew Purtell <ap...@apache.org>
---
 .../hadoop/hbase/regionserver/MetricsRegionServerSource.java   |  6 ++++++
 .../hbase/regionserver/MetricsRegionServerSourceImpl.java      |  5 +++++
 .../hadoop/hbase/regionserver/MetricsRegionServerWrapper.java  | 10 ++++++++++
 .../hbase/regionserver/MetricsRegionServerWrapperImpl.java     | 10 ++++++++++
 .../hbase/regionserver/MetricsRegionServerWrapperStub.java     | 10 ++++++++++
 .../hadoop/hbase/regionserver/TestMetricsRegionServer.java     |  2 ++
 6 files changed, 43 insertions(+)

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 93ea1c1014f..f89263a9b32 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 e8054127f42..bbae0587eb8 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 class MetricsRegionServerSourceImpl extends BaseSourceImpl
           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 c294cc3b531..26612e14825 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 ed3fbe491c2..dd8c9c55127 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 @@ class MetricsRegionServerWrapperImpl implements MetricsRegionServerWrapper {
     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 @@ class MetricsRegionServerWrapperImpl implements MetricsRegionServerWrapper {
     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 157de87774a..32c80e18004 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 class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
     return 422;
   }
 
+  @Override
+  public long getBlockCacheHitCachingCount() {
+    return 16;
+  }
+
   @Override
   public long getBlockCacheMissCount() {
     return 417;
@@ -342,6 +347,11 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
     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 fa3148df3fe..73e04522934 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 class TestMetricsRegionServer {
     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);