SLING-12295 - Add queue size metric (#141)
diff --git a/src/main/java/org/apache/sling/distribution/journal/impl/publisher/DistributionPublisher.java b/src/main/java/org/apache/sling/distribution/journal/impl/publisher/DistributionPublisher.java
index 2adec23..8e362cd 100644
--- a/src/main/java/org/apache/sling/distribution/journal/impl/publisher/DistributionPublisher.java
+++ b/src/main/java/org/apache/sling/distribution/journal/impl/publisher/DistributionPublisher.java
@@ -140,6 +140,7 @@
requireNonNull(metricsService);
this.publishMetrics = new PublishMetrics(metricsService, pubAgentName);
this.pubQueueProvider = pubQueueProvider;
+ this.publishMetrics.queueSize(() -> pubQueueProvider.getMaxQueueSize(pubAgentName));
distLog = new DefaultDistributionLog(pubAgentName, this.getClass(), DefaultDistributionLog.LogLevel.INFO);
distributionLogEventListener = new DistributionLogEventListener(context, distLog, pubAgentName);
diff --git a/src/main/java/org/apache/sling/distribution/journal/impl/publisher/PublishMetrics.java b/src/main/java/org/apache/sling/distribution/journal/impl/publisher/PublishMetrics.java
index ef64ad5..5692450 100644
--- a/src/main/java/org/apache/sling/distribution/journal/impl/publisher/PublishMetrics.java
+++ b/src/main/java/org/apache/sling/distribution/journal/impl/publisher/PublishMetrics.java
@@ -43,6 +43,7 @@
private static final String QUEUE_CACHE_FETCH_COUNT = PUB_COMPONENT + "queue_cache_fetch_count";
private static final String QUEUE_ACCESS_ERROR_COUNT = PUB_COMPONENT + "queue_access_error_count";
private static final String SUBSCRIBER_COUNT = PUB_COMPONENT + "subscriber_count";
+ private static final String QUEUE_SIZE = PUB_COMPONENT + "queue_size";
private final List<Tag> tags;
private final MetricsService metricsService;
@@ -119,4 +120,8 @@
metricsService.gauge(getMetricName(SUBSCRIBER_COUNT, tags), subscriberCountCallback);
}
+ public void queueSize(Supplier<Integer> queueSizeCallback) {
+ metricsService.gauge(getMetricName(QUEUE_SIZE, tags), queueSizeCallback);
+ }
+
}