You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by dh...@apache.org on 2019/07/22 23:04:31 UTC

[geode] branch GEODE-7001-region-entry-count updated: Add data policy to region entry count gauge

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

dhemery pushed a commit to branch GEODE-7001-region-entry-count
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/GEODE-7001-region-entry-count by this push:
     new bf7d876  Add data policy to region entry count gauge
bf7d876 is described below

commit bf7d876ec4e686c98e5163ead2fd53d125b7bfce
Author: Dale Emery <de...@pivotal.io>
AuthorDate: Mon Jul 22 15:57:21 2019 -0700

    Add data policy to region entry count gauge
    
    Co-Authored-By: Michael Oleske <mo...@pivotal.io>
---
 .../apache/geode/internal/cache/LocalRegion.java   |  2 +-
 .../internal/cache/PartitionedRegionDataStore.java |  1 +
 .../geode/internal/cache/RegionPerfStats.java      |  8 ++++---
 .../geode/internal/cache/RegionPerfStatsTest.java  | 27 +++++++++++++++++-----
 4 files changed, 28 insertions(+), 10 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
index 46db44e..b5f5764 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
@@ -599,7 +599,7 @@ public class LocalRegion extends AbstractRegion implements LoaderHelperFactory,
         hasOwnStats = true;
         cachePerfStats =
             new RegionPerfStats(cache.getInternalDistributedSystem().getStatisticsManager(),
-                "RegionStats-" + regionName, cache.getCachePerfStats(), regionName,
+                "RegionStats-" + regionName, cache.getCachePerfStats(), regionName, getDataPolicy(),
                 cache.getMeterRegistry());
       }
     }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
index 346e4d0..732357e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
@@ -205,6 +205,7 @@ public class PartitionedRegionDataStore implements HasCachePerfStats {
     this.bucketStats =
         new RegionPerfStats(pr.getCache().getInternalDistributedSystem().getStatisticsManager(),
             "RegionStats-partition-" + pr.getName(), pr.getCachePerfStats(), pr.getName(),
+            pr.getDataPolicy(),
             pr.getCache().getMeterRegistry());
     this.keysOfInterest = new ConcurrentHashMap();
   }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionPerfStats.java b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionPerfStats.java
index 1e6e66a..59eb422 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionPerfStats.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionPerfStats.java
@@ -22,6 +22,7 @@ import io.micrometer.core.instrument.MeterRegistry;
 
 import org.apache.geode.StatisticsFactory;
 import org.apache.geode.annotations.VisibleForTesting;
+import org.apache.geode.cache.DataPolicy;
 import org.apache.geode.internal.NanoTimer;
 
 class RegionPerfStats extends CachePerfStats {
@@ -32,14 +33,14 @@ class RegionPerfStats extends CachePerfStats {
   private final AtomicLong entryCount;
 
   RegionPerfStats(StatisticsFactory statisticsFactory, String textId, CachePerfStats cachePerfStats,
-      String regionName, MeterRegistry meterRegistry) {
-    this(statisticsFactory, textId, createClock(), cachePerfStats, regionName,
+      String regionName, DataPolicy dataPolicy, MeterRegistry meterRegistry) {
+    this(statisticsFactory, textId, createClock(), cachePerfStats, regionName, dataPolicy,
         meterRegistry);
   }
 
   @VisibleForTesting
   RegionPerfStats(StatisticsFactory statisticsFactory, String textId, LongSupplier clock,
-      CachePerfStats cachePerfStats, String regionName,
+      CachePerfStats cachePerfStats, String regionName, DataPolicy dataPolicy,
       MeterRegistry meterRegistry) {
     super(statisticsFactory, textId, clock);
     this.cachePerfStats = cachePerfStats;
@@ -48,6 +49,7 @@ class RegionPerfStats extends CachePerfStats {
     entriesGauge = Gauge.builder("member.region.entries", entryCount::get)
         .description("Current number of entries in the region.")
         .tag("region.name", regionName)
+        .tag("data.policy", dataPolicy.toString())
         .baseUnit("entries")
         .register(meterRegistry);
     stats.setLongSupplier(entryCountId, entryCount::get);
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/RegionPerfStatsTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/RegionPerfStatsTest.java
index 0476798..b4ce7e0 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/RegionPerfStatsTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/RegionPerfStatsTest.java
@@ -39,11 +39,13 @@ import org.mockito.junit.MockitoRule;
 
 import org.apache.geode.Statistics;
 import org.apache.geode.StatisticsFactory;
+import org.apache.geode.cache.DataPolicy;
 
 public class RegionPerfStatsTest {
 
   private static final String REGION_NAME = "region1";
   private static final String TEXT_ID = "textId";
+  private static final DataPolicy DATA_POLICY = DataPolicy.PERSISTENT_REPLICATE;
 
   private MeterRegistry meterRegistry;
   private StatisticsFactory statisticsFactory;
@@ -66,7 +68,8 @@ public class RegionPerfStatsTest {
     when(statisticsFactory.createAtomicStatistics(any(), any())).thenReturn(statistics);
 
     regionPerfStats =
-        new RegionPerfStats(statisticsFactory, TEXT_ID, cachePerfStats, REGION_NAME, meterRegistry);
+        new RegionPerfStats(statisticsFactory, TEXT_ID, cachePerfStats, REGION_NAME, DATA_POLICY,
+            meterRegistry);
   }
 
   @After
@@ -84,8 +87,8 @@ public class RegionPerfStatsTest {
     StatisticsFactory statisticsFactory = mock(StatisticsFactory.class);
     when(statisticsFactory.createAtomicStatistics(any(), any())).thenReturn(mock(Statistics.class));
 
-    regionPerfStats =
-        new RegionPerfStats(statisticsFactory, TEXT_ID, cachePerfStats, REGION_NAME, meterRegistry);
+    new RegionPerfStats(statisticsFactory, TEXT_ID, cachePerfStats, REGION_NAME, DataPolicy.NORMAL,
+        meterRegistry);
 
     verify(statisticsFactory).createAtomicStatistics(any(), eq(TEXT_ID));
   }
@@ -94,9 +97,21 @@ public class RegionPerfStatsTest {
   public void constructor_createsEntriesGauge_taggedWithRegionName() {
     Gauge entriesGauge = meterRegistry
         .find("member.region.entries")
-        .tag("region.name", REGION_NAME)
         .gauge();
-    assertThat(entriesGauge).isNotNull();
+
+    assertThat(entriesGauge.getId().getTag("region.name"))
+        .as("region.name tag")
+        .isEqualTo(REGION_NAME);
+  }
+
+  @Test
+  public void constructor_createsEntriesGauge_taggedWithDataPolicy() {
+    Gauge entriesGauge = meterRegistry
+        .find("member.region.entries")
+        .gauge();
+    assertThat(entriesGauge.getId().getTag("data.policy"))
+        .as("data.policy tag")
+        .isEqualTo(DATA_POLICY.toString());
   }
 
   @Test
@@ -143,7 +158,7 @@ public class RegionPerfStatsTest {
   public void incEntryCount_doesNotUpdateMeterForOtherRegion() {
     regionPerfStats2 =
         new RegionPerfStats(statisticsFactory, "region2", () -> 0, cachePerfStats, "region2",
-            meterRegistry);
+            DataPolicy.NORMAL, meterRegistry);
 
     regionPerfStats.incEntryCount(1);
     regionPerfStats.incEntryCount(3);