From 60df76166c8f21c467508f2be367fcd05cbd76c9 Mon Sep 17 00:00:00 2001 From: Peter Alfonsi Date: Fri, 1 Mar 2024 10:53:18 -0800 Subject: [PATCH] Fixed reset impl for multi dim stats Signed-off-by: Peter Alfonsi --- .../cache/stats/MultiDimensionCacheStats.java | 2 ++ .../stats/MultiDimensionCacheStatsTests.java | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/server/src/main/java/org/opensearch/common/cache/stats/MultiDimensionCacheStats.java b/server/src/main/java/org/opensearch/common/cache/stats/MultiDimensionCacheStats.java index 1460f6366c10f..7546d129973a2 100644 --- a/server/src/main/java/org/opensearch/common/cache/stats/MultiDimensionCacheStats.java +++ b/server/src/main/java/org/opensearch/common/cache/stats/MultiDimensionCacheStats.java @@ -233,6 +233,8 @@ public void reset() { response.memorySize.dec(response.getMemorySize()); response.entries.dec(response.getEntries()); } + totalStats.memorySize.dec(totalStats.getMemorySize()); + totalStats.entries.dec(totalStats.getEntries()); } private CacheStatsResponse internalGetStats(List dimensions) { diff --git a/server/src/test/java/org/opensearch/common/cache/stats/MultiDimensionCacheStatsTests.java b/server/src/test/java/org/opensearch/common/cache/stats/MultiDimensionCacheStatsTests.java index 59102c768a858..03cd831de14d4 100644 --- a/server/src/test/java/org/opensearch/common/cache/stats/MultiDimensionCacheStatsTests.java +++ b/server/src/test/java/org/opensearch/common/cache/stats/MultiDimensionCacheStatsTests.java @@ -11,6 +11,7 @@ import org.opensearch.common.Randomness; import org.opensearch.common.io.stream.BytesStreamOutput; import org.opensearch.common.metrics.CounterMetric; +import org.opensearch.common.recycler.Recycler; import org.opensearch.core.common.bytes.BytesReference; import org.opensearch.core.common.io.stream.BytesStreamInput; import org.opensearch.test.OpenSearchTestCase; @@ -189,6 +190,20 @@ public void testReset() throws Exception { assertEquals(originalResponse.getMemorySize(), stats.getMemorySizeByDimensions(dims)); assertEquals(originalResponse.getEntries(), stats.getEntriesByDimensions(dims)); } + + CacheStatsResponse expectedTotal = new CacheStatsResponse(); + for (Set dimSet : expected.keySet()) { + expectedTotal.add(expected.get(dimSet)); + } + expectedTotal.memorySize = new CounterMetric(); + expectedTotal.entries = new CounterMetric(); + assertEquals(expectedTotal, stats.getTotalStats()); + + assertEquals(expectedTotal.getHits(), stats.getTotalHits()); + assertEquals(expectedTotal.getMisses(), stats.getTotalMisses()); + assertEquals(expectedTotal.getEvictions(), stats.getTotalEvictions()); + assertEquals(expectedTotal.getMemorySize(), stats.getTotalMemorySize()); + assertEquals(expectedTotal.getEntries(), stats.getTotalEntries()); } private Map> getUsedDimensionValues(MultiDimensionCacheStats stats, int numValuesPerDim) {