From ace17592118061c8fd1c23d464a261de94f67cc4 Mon Sep 17 00:00:00 2001 From: Irene Cho Date: Tue, 27 Jun 2017 16:06:25 -0400 Subject: [PATCH 1/3] add meter metrics for page cache eviction ref T67358 --- .../query/engine/EngineRemovalListener.java | 20 +++++++++++++++++++ .../hydra/store/common/PageCacheMetrics.java | 8 ++++++++ 2 files changed, 28 insertions(+) diff --git a/hydra-data/src/main/java/com/addthis/hydra/data/query/engine/EngineRemovalListener.java b/hydra-data/src/main/java/com/addthis/hydra/data/query/engine/EngineRemovalListener.java index af80cf1c2..6701f950e 100644 --- a/hydra-data/src/main/java/com/addthis/hydra/data/query/engine/EngineRemovalListener.java +++ b/hydra-data/src/main/java/com/addthis/hydra/data/query/engine/EngineRemovalListener.java @@ -16,6 +16,7 @@ import java.util.concurrent.TimeUnit; +import com.google.common.cache.RemovalCause; import com.google.common.cache.RemovalListener; import com.google.common.cache.RemovalNotification; @@ -37,6 +38,18 @@ class EngineRemovalListener implements RemovalListener { static final Meter directoriesEvicted = Metrics.newMeter(QueryEngineCache.class, "directoriesEvicted", "directoriesEvicted", TimeUnit.MINUTES); + static final Meter replacedEvicted = Metrics.newMeter(QueryEngineCache.class, "ReplacedEvicted", + "ReplacedEvicted", TimeUnit.MINUTES); + + static final Meter collectedEvicted = Metrics.newMeter(QueryEngineCache.class, "CollectedEvicted", + "CollectedEvicted", TimeUnit.MINUTES); + + static final Meter expiredEvicted = Metrics.newMeter(QueryEngineCache.class, "ExpiredEvicted", + "ExpiredEvicted", TimeUnit.MINUTES); + + static final Meter sizeEvicted = Metrics.newMeter(QueryEngineCache.class, "SizeEvicted", + "SizeEvicted", TimeUnit.MINUTES); + private final QueryEngineCache engineCache; public EngineRemovalListener(QueryEngineCache engineCache) { @@ -57,6 +70,13 @@ public void onRemoval(RemovalNotification notification) { } if (currentEngine == null) { directoriesEvicted.mark(); + if(notification.getCause() == RemovalCause.REPLACED) { + replacedEvicted.mark(); + } + collectedEvicted.mark(); + expiredEvicted.mark(); + sizeEvicted.mark(); + } } } diff --git a/hydra-store/src/main/java/com/addthis/hydra/store/common/PageCacheMetrics.java b/hydra-store/src/main/java/com/addthis/hydra/store/common/PageCacheMetrics.java index ba62c3c3f..a3a207865 100644 --- a/hydra-store/src/main/java/com/addthis/hydra/store/common/PageCacheMetrics.java +++ b/hydra-store/src/main/java/com/addthis/hydra/store/common/PageCacheMetrics.java @@ -13,11 +13,15 @@ */ package com.addthis.hydra.store.common; +import java.util.concurrent.TimeUnit; + import com.addthis.codec.codables.BytesCodable; import com.addthis.hydra.store.nonconcurrent.NonConcurrentPageCache; + import com.yammer.metrics.Metrics; import com.yammer.metrics.core.Gauge; import com.yammer.metrics.core.Histogram; +import com.yammer.metrics.core.Meter; public class PageCacheMetrics { @@ -49,6 +53,8 @@ public class PageCacheMetrics { // This metrics counts compressed bytes public final Histogram numberKeysPerPage; + public final Meter pagesDeletedMeter; + public PageCacheMetrics(AbstractPageCache cache) { parent = cache; memEstimateGauge = Metrics.newGauge(cache.getClass(), @@ -111,6 +117,8 @@ public Long value() { Metrics.newHistogram(cache.getClass(), "numberKeysPerPage", parent.scope) : null; + pagesDeletedMeter = Metrics.newMeter(cache.getClass(), "pagesDeleted", "pagesDeleted", TimeUnit.MINUTES); + pagesDeletedMeter.mark(); } } From f026042dab7437f2da2e9f51aa75e87858b666f3 Mon Sep 17 00:00:00 2001 From: Irene Cho Date: Tue, 27 Jun 2017 17:17:12 -0400 Subject: [PATCH 2/3] changed static --- .../java/com/addthis/hydra/store/common/PageCacheMetrics.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hydra-store/src/main/java/com/addthis/hydra/store/common/PageCacheMetrics.java b/hydra-store/src/main/java/com/addthis/hydra/store/common/PageCacheMetrics.java index a3a207865..ec8625ada 100644 --- a/hydra-store/src/main/java/com/addthis/hydra/store/common/PageCacheMetrics.java +++ b/hydra-store/src/main/java/com/addthis/hydra/store/common/PageCacheMetrics.java @@ -53,7 +53,7 @@ public class PageCacheMetrics { // This metrics counts compressed bytes public final Histogram numberKeysPerPage; - public final Meter pagesDeletedMeter; + public static final Meter pagesDeletedMeter = null; public PageCacheMetrics(AbstractPageCache cache) { parent = cache; From b53055758fd8679b494cb89a412310b59c67de1d Mon Sep 17 00:00:00 2001 From: Irene Cho Date: Tue, 27 Jun 2017 17:23:34 -0400 Subject: [PATCH 3/3] back to prev --- .../java/com/addthis/hydra/store/common/PageCacheMetrics.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hydra-store/src/main/java/com/addthis/hydra/store/common/PageCacheMetrics.java b/hydra-store/src/main/java/com/addthis/hydra/store/common/PageCacheMetrics.java index ec8625ada..bd3b74747 100644 --- a/hydra-store/src/main/java/com/addthis/hydra/store/common/PageCacheMetrics.java +++ b/hydra-store/src/main/java/com/addthis/hydra/store/common/PageCacheMetrics.java @@ -53,7 +53,7 @@ public class PageCacheMetrics { // This metrics counts compressed bytes public final Histogram numberKeysPerPage; - public static final Meter pagesDeletedMeter = null; + public static Meter pagesDeletedMeter; public PageCacheMetrics(AbstractPageCache cache) { parent = cache;