diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e8f00b1..8a0dea7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,10 @@ Version template: --> # Alfred Telemetry Changelog +## [0.9.3] - 2023-01-13 +### Added +* Added TomcatMetrics [#142] + ## [0.9.2] - 2022-12-23 ### Fixed diff --git a/alfred-telemetry-platform/docs/README.md b/alfred-telemetry-platform/docs/README.md index 311f67b9..919659ff 100644 --- a/alfred-telemetry-platform/docs/README.md +++ b/alfred-telemetry-platform/docs/README.md @@ -120,6 +120,29 @@ alfred.telemetry.export.prometheus.max-requests=1 ``` # Supported metrics +## Tomcat metrics +The Tomcat metrics bindings will provide several tomcat metrics. + +**Control Property**: `alfred.telemetry.binder.tomcat.enabled` +Metrics provided + +| Name | +|:-------------------------------------| +| tomcat.cache.access | +| tomcat.cache.hit | +| tomcat.connections.config.max | +| tomcat.connections.current | +| tomcat.connections.keepalive.current | +| tomcat.global.error | +| tomcat.global.received | +| tomcat.global.request | +| tomcat.global.request.max | +| tomcat.global.sent | +| tomcat.servlet.error | +| tomcat.servlet.request | +| tomcat.servlet.request.max | +| tomcat.threads.busy | +| tomcat.threads.config.max | ## Jvm metrics The JVM metrics bindings will provide several jvm metrics. diff --git a/alfred-telemetry-platform/src/main/java/eu/xenit/alfred/telemetry/binder/AlfrescoTomcatMetrics.java b/alfred-telemetry-platform/src/main/java/eu/xenit/alfred/telemetry/binder/AlfrescoTomcatMetrics.java new file mode 100644 index 00000000..a19f1834 --- /dev/null +++ b/alfred-telemetry-platform/src/main/java/eu/xenit/alfred/telemetry/binder/AlfrescoTomcatMetrics.java @@ -0,0 +1,26 @@ +package eu.xenit.alfred.telemetry.binder; + +import io.micrometer.core.instrument.MeterRegistry; +import io.micrometer.core.instrument.binder.tomcat.TomcatMetrics; + +import javax.annotation.Nonnull; +import javax.management.MBeanServer; +import java.util.ArrayList; + +public class AlfrescoTomcatMetrics implements NamedMeterBinder { + private MBeanServer mBeanServer; + + public AlfrescoTomcatMetrics(MBeanServer mBeanServer) { + this.mBeanServer = mBeanServer; + } + + @Override + public void bindTo(@Nonnull MeterRegistry registry) { + new TomcatMetrics(null, new ArrayList<>(), mBeanServer).bindTo(registry); + } + + @Override + public String getName() { + return "tomcat"; + } +} diff --git a/alfred-telemetry-platform/src/main/resources/alfresco/module/alfred-telemetry-platform/context/binder-context.xml b/alfred-telemetry-platform/src/main/resources/alfresco/module/alfred-telemetry-platform/context/binder-context.xml index 2cf102d8..fa7ea2d2 100644 --- a/alfred-telemetry-platform/src/main/resources/alfresco/module/alfred-telemetry-platform/context/binder-context.xml +++ b/alfred-telemetry-platform/src/main/resources/alfresco/module/alfred-telemetry-platform/context/binder-context.xml @@ -10,7 +10,9 @@ - + + + diff --git a/build.gradle b/build.gradle index 09e2b592..2ad72de3 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ def copyPropertyValueIfExists(sourcePropertyName, targetPropertyName) { allprojects { group = 'eu.xenit.alfred.telemetry' - version = '0.9.2' + version = '0.9.3' apply plugin: 'java' apply plugin: 'jacoco'