This is an automated email from the ASF dual-hosted git repository.
tmaret 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 06de17d SLING-11157: Emit content distribution metrics per action
type (#104)
06de17d is described below
commit 06de17da7e0378fa61d22f950f50abaae3b898fd
Author: José Correia <[email protected]>
AuthorDate: Thu Mar 31 09:16:05 2022 +0200
SLING-11157: Emit content distribution metrics per action type (#104)
* Adds a new metric that counts the amount of package status changes
Co-authored-by: José Correia <[email protected]>
---
.../sling/distribution/journal/bookkeeper/BookKeeper.java | 4 ++++
.../journal/shared/DistributionMetricsService.java | 11 +++++++++++
.../sling/distribution/journal/bookkeeper/BookKeeperTest.java | 8 ++++++++
.../distribution/journal/impl/subscriber/SubscriberTest.java | 2 ++
.../journal/shared/DistributionMetricsServiceTest.java | 1 +
5 files changed, 26 insertions(+)
diff --git
a/src/main/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeper.java
b/src/main/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeper.java
index c5c6b9b..3dd4e54 100644
---
a/src/main/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeper.java
+++
b/src/main/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeper.java
@@ -173,6 +173,7 @@ public class BookKeeper implements Closeable {
Event event = new AppliedEvent(pkgMsg,
config.getSubAgentName()).toEvent();
eventAdmin.postEvent(event);
log.info("Imported distribution package {} at offset={}", pkgMsg,
offset);
+
distributionMetricsService.getPackageStatusCounter(Status.IMPORTED.name()).increment();
} catch (DistributionException | LoginException | IOException |
RuntimeException | ImportPostProcessException e) {
failure(pkgMsg, offset, e);
}
@@ -205,6 +206,7 @@ public class BookKeeper implements Closeable {
log.info("Invalidated the cache for the package {} at offset={}",
pkgMsg, offset);
+
distributionMetricsService.getPackageStatusCounter(Status.IMPORTED.name()).increment();
distributionMetricsService.getInvalidationProcessDuration().update((currentTimeMillis()
- invalidationStartTime), TimeUnit.MILLISECONDS);
distributionMetricsService.getInvalidationProcessSuccess().increment();
} catch (LoginException | PersistenceException |
InvalidationProcessException e) {
@@ -289,6 +291,7 @@ public class BookKeeper implements Closeable {
}
packageRetries.clear(pkgMsg.getPubAgentName());
context.stop();
+
distributionMetricsService.getPackageStatusCounter(Status.REMOVED.name()).increment();
}
public void skipPackage(long offset) throws LoginException,
PersistenceException {
@@ -381,6 +384,7 @@ public class BookKeeper implements Closeable {
throw new DistributionException("Error removing failed package",
e);
}
context.stop();
+
distributionMetricsService.getPackageStatusCounter(Status.REMOVED_FAILED.name()).increment();
}
private void storeStatus(ResourceResolver resolver, PackageStatus
packageStatus) throws PersistenceException {
diff --git
a/src/main/java/org/apache/sling/distribution/journal/shared/DistributionMetricsService.java
b/src/main/java/org/apache/sling/distribution/journal/shared/DistributionMetricsService.java
index de68952..b118d53 100644
---
a/src/main/java/org/apache/sling/distribution/journal/shared/DistributionMetricsService.java
+++
b/src/main/java/org/apache/sling/distribution/journal/shared/DistributionMetricsService.java
@@ -340,6 +340,17 @@ public class DistributionMetricsService {
getNameWithLabel(getMetricName(BASE_COMPONENT,
"journal_unavailable_error_code_count"), "error_code", errorCode));
}
+ /**
+ * Counter for all the different package status.
+ *
+ * @return a Sling Metric counter
+ */
+ public Counter getPackageStatusCounter(String status) {
+ return getCounter(
+ getNameWithLabel(getMetricName(BASE_COMPONENT,
"package_status_count"), "status", status)
+ );
+ }
+
public <T> GaugeService<T> createGauge(String name, String description,
Supplier<T> supplier) {
return new GaugeService<>(name, description, supplier);
}
diff --git
a/src/test/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeperTest.java
b/src/test/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeperTest.java
index 7174b12..87b33e9 100644
---
a/src/test/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeperTest.java
+++
b/src/test/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeperTest.java
@@ -131,6 +131,10 @@ public class BookKeeperTest {
@Test
public void testPackageImport() throws DistributionException {
+ when(distributionMetricsService.getPackageStatusCounter(
+ PackageStatusMessage.Status.IMPORTED.name())
+ ).thenReturn(mock(Counter.class));
+
try {
bookKeeper.importPackage(buildPackageMessage(PackageMessage.ReqType.ADD), 10,
currentTimeMillis());
} finally {
@@ -140,6 +144,10 @@ public class BookKeeperTest {
@Test
public void testCacheInvalidation() throws DistributionException {
+ when(distributionMetricsService.getPackageStatusCounter(
+ PackageStatusMessage.Status.IMPORTED.name())
+ ).thenReturn(mock(Counter.class));
+
try {
bookKeeper.invalidateCache(buildPackageMessage(PackageMessage.ReqType.INVALIDATE),
10);
} finally {
diff --git
a/src/test/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberTest.java
b/src/test/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberTest.java
index 045b47a..0fc92ef 100644
---
a/src/test/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberTest.java
+++
b/src/test/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberTest.java
@@ -524,6 +524,8 @@ public class SubscriberTest {
.thenReturn(counter);
when(distributionMetricsService.getImportPostProcessSuccess())
.thenReturn(counter);
+
when(distributionMetricsService.getPackageStatusCounter(any(String.class)))
+ .thenReturn(counter);
}
private void assumeNoPrecondition() {
diff --git
a/src/test/java/org/apache/sling/distribution/journal/shared/DistributionMetricsServiceTest.java
b/src/test/java/org/apache/sling/distribution/journal/shared/DistributionMetricsServiceTest.java
index c980a22..516369c 100644
---
a/src/test/java/org/apache/sling/distribution/journal/shared/DistributionMetricsServiceTest.java
+++
b/src/test/java/org/apache/sling/distribution/journal/shared/DistributionMetricsServiceTest.java
@@ -105,6 +105,7 @@ public class DistributionMetricsServiceTest {
assertNotNull(metrics.getRemovedFailedPackageDuration());
assertNotNull(metrics.getRemovedPackageDuration());
assertNotNull(metrics.getSendStoredStatusDuration());
+ assertNotNull(metrics.getPackageStatusCounter("mockStatus"));
}
@Test