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);
+    }
+
 }