You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cs...@apache.org on 2019/12/21 09:03:20 UTC
[sling-org-apache-sling-distribution-journal] branch master
updated: SLING-8934 Create new metric for the number of subscribers of
distribution publisher (#18)
This is an automated email from the ASF dual-hosted git repository.
cschneider pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-distribution-journal.git
The following commit(s) were added to refs/heads/master by this push:
new d97a768 SLING-8934 Create new metric for the number of subscribers of distribution publisher (#18)
d97a768 is described below
commit d97a7688ceaf10e108ea75333ff85df7adca1d5e
Author: Alexei Krainiouk <ak...@adobe.com>
AuthorDate: Sat Dec 21 01:03:14 2019 -0800
SLING-8934 Create new metric for the number of subscribers of distribution publisher (#18)
---
.../journal/impl/publisher/DistributionPublisher.java | 10 ++++++++++
.../journal/impl/shared/DistributionMetricsService.java | 2 +-
2 files changed, 11 insertions(+), 1 deletion(-)
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 f5ac277..52b6a7a 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
@@ -43,6 +43,7 @@ import javax.annotation.Nonnull;
import javax.annotation.ParametersAreNonnullByDefault;
import javax.management.NotCompliantMBeanException;
+import org.apache.commons.io.IOUtils;
import org.apache.sling.distribution.journal.impl.event.DistributionEvent;
import org.apache.sling.distribution.journal.impl.queue.PubQueueProvider;
import org.apache.sling.distribution.journal.impl.shared.AgentState;
@@ -136,6 +137,8 @@ public class DistributionPublisher implements DistributionAgent {
private JMXRegistration reg;
+ private DistributionMetricsService.GaugeService<Integer> subscriberCountGauge;
+
public DistributionPublisher() {
log = new DefaultDistributionLog(pubAgentName, this.getClass(), DefaultDistributionLog.LogLevel.INFO);
REQ_TYPES.put(ADD, this::sendAndWait);
@@ -146,6 +149,7 @@ public class DistributionPublisher implements DistributionAgent {
@Activate
public void activate(PublisherConfiguration config, BundleContext context) {
requireNonNull(factory);
+ requireNonNull(distributionMetricsService);
pubAgentName = requireNonNull(config.name());
queuedTimeout = config.queuedTimeout();
@@ -167,6 +171,11 @@ public class DistributionPublisher implements DistributionAgent {
String msg = String.format("Started Publisher agent %s with packageBuilder %s, queuedTimeout %s",
pubAgentName, pkgType, queuedTimeout);
+ subscriberCountGauge = distributionMetricsService.createGauge(
+ DistributionMetricsService.PUB_COMPONENT + ".subscriber_count;pub_name=" + pubAgentName,
+ "Current number of publish subscribers",
+ () -> discoveryService.getTopologyView().getSubscribedAgentIds().size()
+ );
log.info(msg);
}
@@ -176,6 +185,7 @@ public class DistributionPublisher implements DistributionAgent {
componentReg.unregister();
String msg = String.format("Stopped Publisher agent %s with packageBuilder %s, queuedTimeout %s",
pubAgentName, pkgType, queuedTimeout);
+ IOUtils.closeQuietly(subscriberCountGauge);
log.info(msg);
}
diff --git a/src/main/java/org/apache/sling/distribution/journal/impl/shared/DistributionMetricsService.java b/src/main/java/org/apache/sling/distribution/journal/impl/shared/DistributionMetricsService.java
index 23c09ff..16504e9 100644
--- a/src/main/java/org/apache/sling/distribution/journal/impl/shared/DistributionMetricsService.java
+++ b/src/main/java/org/apache/sling/distribution/journal/impl/shared/DistributionMetricsService.java
@@ -46,7 +46,7 @@ public class DistributionMetricsService {
public static final String BASE_COMPONENT = "distribution.journal";
- private static final String PUB_COMPONENT = BASE_COMPONENT + ".publisher";
+ public static final String PUB_COMPONENT = BASE_COMPONENT + ".publisher";
public static final String SUB_COMPONENT = BASE_COMPONENT + ".subscriber";