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();

Reply via email to