This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 2cfba451df746271ea0fbf8000735c4f8c7698b5 Author: James Netherton <jamesnether...@gmail.com> AuthorDate: Tue Dec 3 11:46:55 2024 +0000 Add support for routePolicyExcludePattern to the Micrometer extension Fixes #6832 --- docs/modules/ROOT/pages/reference/extensions/micrometer.adoc | 6 ++++++ .../deployment/MicrometerMetricsConfigDefaultsTest.java | 2 ++ .../quarkus/component/micrometer/CamelMicrometerConfig.java | 10 ++++++++++ .../quarkus/component/micrometer/CamelMicrometerRecorder.java | 2 ++ 4 files changed, 20 insertions(+) diff --git a/docs/modules/ROOT/pages/reference/extensions/micrometer.adoc b/docs/modules/ROOT/pages/reference/extensions/micrometer.adoc index c1dd8a886c..35ff3c6cfe 100644 --- a/docs/modules/ROOT/pages/reference/extensions/micrometer.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/micrometer.adoc @@ -138,6 +138,12 @@ for both the camel context and routes. `route` captures metrics for routes only. camel context only. | `all`, `context`, `route` | `all` + +|icon:lock[title=Fixed at build time] [[quarkus.camel.metrics.route-policy-exclude-pattern]]`link:#quarkus.camel.metrics.route-policy-exclude-pattern[quarkus.camel.metrics.route-policy-exclude-pattern]` + +Comma separated list of route IDs to exclude from metrics collection. +| `string` +| |=== [.configuration-legend] diff --git a/extensions/micrometer/deployment/src/test/java/org/apache/camel/quarkus/component/micrometer/deployment/MicrometerMetricsConfigDefaultsTest.java b/extensions/micrometer/deployment/src/test/java/org/apache/camel/quarkus/component/micrometer/deployment/MicrometerMetricsConfigDefaultsTest.java index 0588c8cdb1..1b467409d1 100644 --- a/extensions/micrometer/deployment/src/test/java/org/apache/camel/quarkus/component/micrometer/deployment/MicrometerMetricsConfigDefaultsTest.java +++ b/extensions/micrometer/deployment/src/test/java/org/apache/camel/quarkus/component/micrometer/deployment/MicrometerMetricsConfigDefaultsTest.java @@ -44,6 +44,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertInstanceOf; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; public class MicrometerMetricsConfigDefaultsTest { @@ -67,6 +68,7 @@ public class MicrometerMetricsConfigDefaultsTest { MicrometerRoutePolicyConfiguration policyConfiguration = micrometerRoutePolicyFactory.getPolicyConfiguration(); assertTrue(policyConfiguration.isContextEnabled()); assertTrue(policyConfiguration.isRouteEnabled()); + assertNull(policyConfiguration.getExcludePattern()); MessageHistoryFactory messageHistoryFactory = context.getMessageHistoryFactory(); assertNotNull(messageHistoryFactory); diff --git a/extensions/micrometer/runtime/src/main/java/org/apache/camel/quarkus/component/micrometer/CamelMicrometerConfig.java b/extensions/micrometer/runtime/src/main/java/org/apache/camel/quarkus/component/micrometer/CamelMicrometerConfig.java index c6bedf87dc..d10d224d0d 100644 --- a/extensions/micrometer/runtime/src/main/java/org/apache/camel/quarkus/component/micrometer/CamelMicrometerConfig.java +++ b/extensions/micrometer/runtime/src/main/java/org/apache/camel/quarkus/component/micrometer/CamelMicrometerConfig.java @@ -16,6 +16,8 @@ */ package org.apache.camel.quarkus.component.micrometer; +import java.util.Optional; + import io.quarkus.runtime.annotations.ConfigItem; import io.quarkus.runtime.annotations.ConfigPhase; import io.quarkus.runtime.annotations.ConfigRoot; @@ -85,6 +87,14 @@ public class CamelMicrometerConfig { @ConfigItem(defaultValue = "all") public RoutePolicyLevel routePolicyLevel; + /** + * Comma separated list of route IDs to exclude from metrics collection. + * + * @asciidoclet + */ + @ConfigItem + public Optional<String> routePolicyExcludePattern; + public enum MetricsNamingStrategy { DEFAULT, LEGACY diff --git a/extensions/micrometer/runtime/src/main/java/org/apache/camel/quarkus/component/micrometer/CamelMicrometerRecorder.java b/extensions/micrometer/runtime/src/main/java/org/apache/camel/quarkus/component/micrometer/CamelMicrometerRecorder.java index bd4bf375f8..30158d1164 100644 --- a/extensions/micrometer/runtime/src/main/java/org/apache/camel/quarkus/component/micrometer/CamelMicrometerRecorder.java +++ b/extensions/micrometer/runtime/src/main/java/org/apache/camel/quarkus/component/micrometer/CamelMicrometerRecorder.java @@ -85,6 +85,8 @@ public class CamelMicrometerRecorder { policyConfiguration.setContextEnabled(false); policyConfiguration.setRouteEnabled(true); } + + config.routePolicyExcludePattern.ifPresent(policyConfiguration::setExcludePattern); } ManagementStrategy managementStrategy = camelContext.getManagementStrategy();