This is an automated email from the ASF dual-hosted git repository.

pcongiusti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 7ae8d973767 chore(component): metrics skip camel info flag
7ae8d973767 is described below

commit 7ae8d97376711f74ed38670798d7a9d8fc55294f
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Thu Mar 20 11:22:06 2025 +0100

    chore(component): metrics skip camel info flag
---
 .../main/camel-main-configuration-metadata.json     |  1 +
 .../prometheus/MicrometerPrometheusConfigurer.java  |  6 ++++++
 .../micrometer/prometheus/MicrometerPrometheus.java | 16 ++++++++++++++++
 .../micrometer/json/AbstractMicrometerService.java  |  2 +-
 .../MicrometerMessageHistoryFactory.java            | 13 +++++++++++++
 .../routepolicy/MicrometerRoutePolicy.java          | 10 ++++++++++
 .../routepolicy/MicrometerRoutePolicyFactory.java   | 13 +++++++++++++
 .../MetricsConfigurationPropertiesConfigurer.java   |  7 +++++++
 .../META-INF/camel-main-configuration-metadata.json |  1 +
 core/camel-main/src/main/docs/main.adoc             |  3 ++-
 .../camel/main/MetricsConfigurationProperties.java  | 21 +++++++++++++++++++++
 .../ROOT/pages/camel-4x-upgrade-guide-4_11.adoc     | 12 ++++++++++++
 12 files changed, 103 insertions(+), 2 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
index c1c986ef4c7..b2d72d5918c 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
@@ -201,6 +201,7 @@
     { "name": "camel.metrics.namingStrategy", "description": "Controls the 
name style to use for metrics. Default = uses micrometer naming convention. 
Legacy = uses the classic naming style (camelCase)", "sourceType": 
"org.apache.camel.main.MetricsConfigurationProperties", "type": "string", 
"javaType": "java.lang.String", "defaultValue": "default", "enum": [ "default", 
"legacy" ] },
     { "name": "camel.metrics.path", "description": "The path endpoint used to 
expose the metrics.", "sourceType": 
"org.apache.camel.main.MetricsConfigurationProperties", "type": "string", 
"javaType": "java.lang.String", "defaultValue": "\/q\/metrics" },
     { "name": "camel.metrics.routePolicyLevel", "description": "Sets the level 
of information to capture. all = both context and routes.", "sourceType": 
"org.apache.camel.main.MetricsConfigurationProperties", "type": "string", 
"javaType": "java.lang.String", "defaultValue": "all", "enum": [ "all", 
"route", "context" ] },
+    { "name": "camel.metrics.skipCamelInfo", "description": "Skip the 
evaluation of app.info metric which contains runtime provider information 
(default, false).", "sourceType": 
"org.apache.camel.main.MetricsConfigurationProperties", "type": "boolean", 
"javaType": "boolean", "defaultValue": false },
     { "name": "camel.metrics.textFormatVersion", "description": "The 
text-format version to use with Prometheus scraping. 0.0.4 = text\/plain; 
version=0.0.4; charset=utf-8 1.0.0 = application\/openmetrics-text; 
version=1.0.0; charset=utf-8", "sourceType": 
"org.apache.camel.main.MetricsConfigurationProperties", "type": "string", 
"javaType": "java.lang.String", "defaultValue": "0.0.4", "enum": [ "0.0.4", 
"1.0.0" ] },
     { "name": "camel.opentelemetry.enabled", "description": "To enable 
OpenTelemetry", "sourceType": 
"org.apache.camel.main.OtelConfigurationProperties", "type": "boolean", 
"javaType": "boolean", "defaultValue": "false" },
     { "name": "camel.opentelemetry.encoding", "description": "Sets whether the 
header keys need to be encoded (connector specific) or not. The value is a 
boolean. Dashes need for instances to be encoded for JMS property keys.", 
"sourceType": "org.apache.camel.main.OtelConfigurationProperties", "type": 
"boolean", "javaType": "boolean", "defaultValue": "false" },
diff --git 
a/components/camel-micrometer-prometheus/src/generated/java/org/apache/camel/component/micrometer/prometheus/MicrometerPrometheusConfigurer.java
 
b/components/camel-micrometer-prometheus/src/generated/java/org/apache/camel/component/micrometer/prometheus/MicrometerPrometheusConfigurer.java
index 45a17b715b9..2b84fb571b7 100644
--- 
a/components/camel-micrometer-prometheus/src/generated/java/org/apache/camel/component/micrometer/prometheus/MicrometerPrometheusConfigurer.java
+++ 
b/components/camel-micrometer-prometheus/src/generated/java/org/apache/camel/component/micrometer/prometheus/MicrometerPrometheusConfigurer.java
@@ -45,6 +45,8 @@ public class MicrometerPrometheusConfigurer extends 
org.apache.camel.support.com
         case "path": target.setPath(property(camelContext, 
java.lang.String.class, value)); return true;
         case "routepolicylevel":
         case "routePolicyLevel": 
target.setRoutePolicyLevel(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "skipcamelinfo":
+        case "skipCamelInfo": target.setSkipCamelInfo(property(camelContext, 
boolean.class, value)); return true;
         case "textformatversion":
         case "textFormatVersion": 
target.setTextFormatVersion(property(camelContext, java.lang.String.class, 
value)); return true;
         default: return false;
@@ -76,6 +78,8 @@ public class MicrometerPrometheusConfigurer extends 
org.apache.camel.support.com
         case "path": return java.lang.String.class;
         case "routepolicylevel":
         case "routePolicyLevel": return java.lang.String.class;
+        case "skipcamelinfo":
+        case "skipCamelInfo": return boolean.class;
         case "textformatversion":
         case "textFormatVersion": return java.lang.String.class;
         default: return null;
@@ -108,6 +112,8 @@ public class MicrometerPrometheusConfigurer extends 
org.apache.camel.support.com
         case "path": return target.getPath();
         case "routepolicylevel":
         case "routePolicyLevel": return target.getRoutePolicyLevel();
+        case "skipcamelinfo":
+        case "skipCamelInfo": return target.isSkipCamelInfo();
         case "textformatversion":
         case "textFormatVersion": return target.getTextFormatVersion();
         default: return null;
diff --git 
a/components/camel-micrometer-prometheus/src/main/java/org/apache/camel/component/micrometer/prometheus/MicrometerPrometheus.java
 
b/components/camel-micrometer-prometheus/src/main/java/org/apache/camel/component/micrometer/prometheus/MicrometerPrometheus.java
index 816b17b4846..0b0ae88c3d0 100644
--- 
a/components/camel-micrometer-prometheus/src/main/java/org/apache/camel/component/micrometer/prometheus/MicrometerPrometheus.java
+++ 
b/components/camel-micrometer-prometheus/src/main/java/org/apache/camel/component/micrometer/prometheus/MicrometerPrometheus.java
@@ -103,6 +103,8 @@ public class MicrometerPrometheus extends ServiceSupport 
implements CamelMetrics
     private boolean enableInstrumentedThreadPoolFactory;
     @Metadata(defaultValue = "true")
     private boolean clearOnReload = true;
+    @Metadata(defaultValue = "false")
+    private boolean skipCamelInfo = false;
     @Metadata(defaultValue = "0.0.4", enums = "0.0.4,1.0.0")
     private String textFormatVersion = "0.0.4";
     @Metadata
@@ -227,6 +229,17 @@ public class MicrometerPrometheus extends ServiceSupport 
implements CamelMetrics
         this.clearOnReload = clearOnReload;
     }
 
+    public boolean isSkipCamelInfo() {
+        return skipCamelInfo;
+    }
+
+    /**
+     * Skip the evaluation of "app.info" metric which contains runtime 
provider information (default, `false`).
+     */
+    public void setSkipCamelInfo(boolean skipCamelInfo) {
+        this.skipCamelInfo = skipCamelInfo;
+    }
+
     public String getTextFormatVersion() {
         return textFormatVersion;
     }
@@ -295,6 +308,7 @@ public class MicrometerPrometheus extends ServiceSupport 
implements CamelMetrics
 
         if (isEnableRoutePolicy()) {
             MicrometerRoutePolicyFactory factory = new 
MicrometerRoutePolicyFactory();
+            factory.setSkipCamelInfo(isSkipCamelInfo());
             if ("legacy".equalsIgnoreCase(namingStrategy)) {
                 
factory.setNamingStrategy(MicrometerRoutePolicyNamingStrategy.LEGACY);
             }
@@ -317,6 +331,7 @@ public class MicrometerPrometheus extends ServiceSupport 
implements CamelMetrics
         ManagementStrategy managementStrategy = 
camelContext.getManagementStrategy();
         if (isEnableExchangeEventNotifier()) {
             MicrometerExchangeEventNotifier notifier = new 
MicrometerExchangeEventNotifier();
+            notifier.setSkipCamelInfo(isSkipCamelInfo());
             
notifier.setBaseEndpointURI(isBaseEndpointURIExchangeEventNotifier());
             if ("legacy".equalsIgnoreCase(namingStrategy)) {
                 notifier.setNamingStrategy(
@@ -331,6 +346,7 @@ public class MicrometerPrometheus extends ServiceSupport 
implements CamelMetrics
 
         if (isEnableRouteEventNotifier()) {
             MicrometerRouteEventNotifier notifier = new 
MicrometerRouteEventNotifier();
+            notifier.setSkipCamelInfo(isSkipCamelInfo());
             if ("legacy".equalsIgnoreCase(namingStrategy)) {
                 
notifier.setNamingStrategy(MicrometerRouteEventNotifierNamingStrategy.LEGACY);
             }
diff --git 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/json/AbstractMicrometerService.java
 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/json/AbstractMicrometerService.java
index ecba8f75e31..6cd8fc88fd5 100644
--- 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/json/AbstractMicrometerService.java
+++ 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/json/AbstractMicrometerService.java
@@ -139,7 +139,7 @@ public class AbstractMicrometerService extends 
ServiceSupport {
             }
         }
 
-        if (!this.skipCamelInfo) {
+        if (!isSkipCamelInfo()) {
             registerAppInfo(meterRegistry);
         }
 
diff --git 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistoryFactory.java
 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistoryFactory.java
index 58581605930..e2f00326fec 100644
--- 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistoryFactory.java
+++ 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistoryFactory.java
@@ -50,6 +50,7 @@ public class MicrometerMessageHistoryFactory extends 
ServiceSupport
     private boolean copyMessage;
     private String nodePattern;
     private boolean prettyPrint = true;
+    private boolean skipCamelInfo = false;
     private TimeUnit durationUnit = TimeUnit.MILLISECONDS;
     private MicrometerMessageHistoryNamingStrategy namingStrategy = 
MicrometerMessageHistoryNamingStrategy.DEFAULT;
 
@@ -87,6 +88,17 @@ public class MicrometerMessageHistoryFactory extends 
ServiceSupport
         this.prettyPrint = prettyPrint;
     }
 
+    public boolean isSkipCamelInfo() {
+        return skipCamelInfo;
+    }
+
+    /**
+     * Skip the evaluation of "app.info" metric which contains runtime 
provider information (default, `false`).
+     */
+    public void setSkipCamelInfo(boolean skipCamelInfo) {
+        this.skipCamelInfo = skipCamelInfo;
+    }
+
     public TimeUnit getDurationUnit() {
         return durationUnit;
     }
@@ -166,6 +178,7 @@ public class MicrometerMessageHistoryFactory extends 
ServiceSupport
                     = 
camelContext.hasService(MicrometerMessageHistoryService.class);
             if (messageHistoryService == null) {
                 messageHistoryService = new MicrometerMessageHistoryService();
+                messageHistoryService.setPrettyPrint(isPrettyPrint());
                 messageHistoryService.setMeterRegistry(getMeterRegistry());
                 messageHistoryService.setPrettyPrint(isPrettyPrint());
                 messageHistoryService.setDurationUnit(getDurationUnit());
diff --git 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicy.java
 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicy.java
index 09a6d9ed4cf..beaf0f6fa2d 100644
--- 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicy.java
+++ 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicy.java
@@ -58,6 +58,7 @@ public class MicrometerRoutePolicy extends RoutePolicySupport 
implements NonMana
     private final MicrometerRoutePolicyFactory factory;
     private MeterRegistry meterRegistry;
     private boolean prettyPrint;
+    private boolean skipCamelInfo;
     private TimeUnit durationUnit = TimeUnit.MILLISECONDS;
     private MicrometerRoutePolicyNamingStrategy namingStrategy = 
MicrometerRoutePolicyNamingStrategy.DEFAULT;
     private MicrometerRoutePolicyConfiguration configuration = 
MicrometerRoutePolicyConfiguration.DEFAULT;
@@ -246,6 +247,14 @@ public class MicrometerRoutePolicy extends 
RoutePolicySupport implements NonMana
         this.prettyPrint = prettyPrint;
     }
 
+    public boolean isSkipCamelInfo() {
+        return skipCamelInfo;
+    }
+
+    public void setSkipCamelInfo(boolean skipCamelInfo) {
+        this.skipCamelInfo = skipCamelInfo;
+    }
+
     public TimeUnit getDurationUnit() {
         return durationUnit;
     }
@@ -289,6 +298,7 @@ public class MicrometerRoutePolicy extends 
RoutePolicySupport implements NonMana
                     = 
route.getCamelContext().hasService(MicrometerRoutePolicyService.class);
             if (registryService == null) {
                 registryService = new MicrometerRoutePolicyService();
+                registryService.setSkipCamelInfo(isSkipCamelInfo());
                 registryService.setMeterRegistry(getMeterRegistry());
                 registryService.setPrettyPrint(isPrettyPrint());
                 registryService.setDurationUnit(getDurationUnit());
diff --git 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyFactory.java
 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyFactory.java
index 446b1de8034..2856c02a439 100644
--- 
a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyFactory.java
+++ 
b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyFactory.java
@@ -39,6 +39,7 @@ public class MicrometerRoutePolicyFactory extends 
ServiceSupport
     private MeterRegistry meterRegistry;
     private RouteMetric contextMetric;
     private boolean prettyPrint = true;
+    private boolean skipCamelInfo = false;
     private TimeUnit durationUnit = TimeUnit.MILLISECONDS;
     private MicrometerRoutePolicyNamingStrategy namingStrategy = 
MicrometerRoutePolicyNamingStrategy.DEFAULT;
     private MicrometerRoutePolicyConfiguration policyConfiguration = 
MicrometerRoutePolicyConfiguration.DEFAULT;
@@ -77,6 +78,17 @@ public class MicrometerRoutePolicyFactory extends 
ServiceSupport
         this.prettyPrint = prettyPrint;
     }
 
+    public boolean isSkipCamelInfo() {
+        return skipCamelInfo;
+    }
+
+    /**
+     * Skip the evaluation of "app.info" metric which contains runtime 
provider information (default, `false`).
+     */
+    public void setSkipCamelInfo(boolean skipCamelInfo) {
+        this.skipCamelInfo = skipCamelInfo;
+    }
+
     /**
      * Sets the time unit to use for requests per unit (eg requests per second)
      */
@@ -122,6 +134,7 @@ public class MicrometerRoutePolicyFactory extends 
ServiceSupport
         MicrometerRoutePolicy answer = new MicrometerRoutePolicy(this);
         answer.setMeterRegistry(getMeterRegistry());
         answer.setPrettyPrint(isPrettyPrint());
+        answer.setSkipCamelInfo(isSkipCamelInfo());
         answer.setDurationUnit(getDurationUnit());
         answer.setNamingStrategy(getNamingStrategy());
         answer.setConfiguration(getPolicyConfiguration());
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/MetricsConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/MetricsConfigurationPropertiesConfigurer.java
index af153a70c5c..9229784aee4 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/MetricsConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/MetricsConfigurationPropertiesConfigurer.java
@@ -34,6 +34,7 @@ public class MetricsConfigurationPropertiesConfigurer extends 
org.apache.camel.s
         map.put("NamingStrategy", java.lang.String.class);
         map.put("Path", java.lang.String.class);
         map.put("RoutePolicyLevel", java.lang.String.class);
+        map.put("SkipCamelInfo", boolean.class);
         map.put("TextFormatVersion", java.lang.String.class);
         ALL_OPTIONS = map;
     }
@@ -63,6 +64,8 @@ public class MetricsConfigurationPropertiesConfigurer extends 
org.apache.camel.s
         case "path": target.setPath(property(camelContext, 
java.lang.String.class, value)); return true;
         case "routepolicylevel":
         case "routePolicyLevel": 
target.setRoutePolicyLevel(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "skipcamelinfo":
+        case "skipCamelInfo": target.setSkipCamelInfo(property(camelContext, 
boolean.class, value)); return true;
         case "textformatversion":
         case "textFormatVersion": 
target.setTextFormatVersion(property(camelContext, java.lang.String.class, 
value)); return true;
         default: return false;
@@ -98,6 +101,8 @@ public class MetricsConfigurationPropertiesConfigurer 
extends org.apache.camel.s
         case "path": return java.lang.String.class;
         case "routepolicylevel":
         case "routePolicyLevel": return java.lang.String.class;
+        case "skipcamelinfo":
+        case "skipCamelInfo": return boolean.class;
         case "textformatversion":
         case "textFormatVersion": return java.lang.String.class;
         default: return null;
@@ -129,6 +134,8 @@ public class MetricsConfigurationPropertiesConfigurer 
extends org.apache.camel.s
         case "path": return target.getPath();
         case "routepolicylevel":
         case "routePolicyLevel": return target.getRoutePolicyLevel();
+        case "skipcamelinfo":
+        case "skipCamelInfo": return target.isSkipCamelInfo();
         case "textformatversion":
         case "textFormatVersion": return target.getTextFormatVersion();
         default: return null;
diff --git 
a/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
 
b/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
index c1c986ef4c7..b2d72d5918c 100644
--- 
a/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
+++ 
b/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
@@ -201,6 +201,7 @@
     { "name": "camel.metrics.namingStrategy", "description": "Controls the 
name style to use for metrics. Default = uses micrometer naming convention. 
Legacy = uses the classic naming style (camelCase)", "sourceType": 
"org.apache.camel.main.MetricsConfigurationProperties", "type": "string", 
"javaType": "java.lang.String", "defaultValue": "default", "enum": [ "default", 
"legacy" ] },
     { "name": "camel.metrics.path", "description": "The path endpoint used to 
expose the metrics.", "sourceType": 
"org.apache.camel.main.MetricsConfigurationProperties", "type": "string", 
"javaType": "java.lang.String", "defaultValue": "\/q\/metrics" },
     { "name": "camel.metrics.routePolicyLevel", "description": "Sets the level 
of information to capture. all = both context and routes.", "sourceType": 
"org.apache.camel.main.MetricsConfigurationProperties", "type": "string", 
"javaType": "java.lang.String", "defaultValue": "all", "enum": [ "all", 
"route", "context" ] },
+    { "name": "camel.metrics.skipCamelInfo", "description": "Skip the 
evaluation of app.info metric which contains runtime provider information 
(default, false).", "sourceType": 
"org.apache.camel.main.MetricsConfigurationProperties", "type": "boolean", 
"javaType": "boolean", "defaultValue": false },
     { "name": "camel.metrics.textFormatVersion", "description": "The 
text-format version to use with Prometheus scraping. 0.0.4 = text\/plain; 
version=0.0.4; charset=utf-8 1.0.0 = application\/openmetrics-text; 
version=1.0.0; charset=utf-8", "sourceType": 
"org.apache.camel.main.MetricsConfigurationProperties", "type": "string", 
"javaType": "java.lang.String", "defaultValue": "0.0.4", "enum": [ "0.0.4", 
"1.0.0" ] },
     { "name": "camel.opentelemetry.enabled", "description": "To enable 
OpenTelemetry", "sourceType": 
"org.apache.camel.main.OtelConfigurationProperties", "type": "boolean", 
"javaType": "boolean", "defaultValue": "false" },
     { "name": "camel.opentelemetry.encoding", "description": "Sets whether the 
header keys need to be encoded (connector specific) or not. The value is a 
boolean. Dashes need for instances to be encoded for JMS property keys.", 
"sourceType": "org.apache.camel.main.OtelConfigurationProperties", "type": 
"boolean", "javaType": "boolean", "defaultValue": "false" },
diff --git a/core/camel-main/src/main/docs/main.adoc 
b/core/camel-main/src/main/docs/main.adoc
index 21b00562ecc..1c12659004f 100644
--- a/core/camel-main/src/main/docs/main.adoc
+++ b/core/camel-main/src/main/docs/main.adoc
@@ -526,7 +526,7 @@ The camel.telemetryDev supports 4 options, which are listed 
below.
 
 
 === Camel Micrometer Metrics configurations
-The camel.metrics supports 13 options, which are listed below.
+The camel.metrics supports 14 options, which are listed below.
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
@@ -543,6 +543,7 @@ The camel.metrics supports 13 options, which are listed 
below.
 | *camel.metrics.namingStrategy* | Controls the name style to use for metrics. 
Default = uses micrometer naming convention. Legacy = uses the classic naming 
style (camelCase) | default | String
 | *camel.metrics.path* | The path endpoint used to expose the metrics. | 
/q/metrics | String
 | *camel.metrics.routePolicyLevel* | Sets the level of information to capture. 
all = both context and routes. | all | String
+| *camel.metrics.skipCamelInfo* | Skip the evaluation of app.info metric which 
contains runtime provider information (default, false). | false | boolean
 | *camel.metrics.textFormat{zwsp}Version* | The text-format version to use 
with Prometheus scraping. 0.0.4 = text/plain; version=0.0.4; charset=utf-8 
1.0.0 = application/openmetrics-text; version=1.0.0; charset=utf-8 | 0.0.4 | 
String
 |===
 
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/MetricsConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/MetricsConfigurationProperties.java
index 9518af3fdce..d2590b431ea 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/MetricsConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/MetricsConfigurationProperties.java
@@ -46,6 +46,8 @@ public class MetricsConfigurationProperties implements 
BootstrapCloseable {
     private boolean enableInstrumentedThreadPoolFactory;
     @Metadata(defaultValue = "true")
     private boolean clearOnReload = true;
+    @Metadata(defaultValue = "false")
+    private boolean skipCamelInfo = false;
     @Metadata(defaultValue = "0.0.4", enums = "0.0.4,1.0.0")
     private String textFormatVersion = "0.0.4";
     @Metadata
@@ -184,6 +186,17 @@ public class MetricsConfigurationProperties implements 
BootstrapCloseable {
         this.clearOnReload = clearOnReload;
     }
 
+    public boolean isSkipCamelInfo() {
+        return skipCamelInfo;
+    }
+
+    /**
+     * Skip the evaluation of "app.info" metric which contains runtime 
provider information (default, `false`).
+     */
+    public void setSkipCamelInfo(boolean skipCamelInfo) {
+        this.skipCamelInfo = skipCamelInfo;
+    }
+
     public String getTextFormatVersion() {
         return textFormatVersion;
     }
@@ -310,6 +323,14 @@ public class MetricsConfigurationProperties implements 
BootstrapCloseable {
         return this;
     }
 
+    /**
+     * Skip the evaluation of "app.info" metric which contains runtime 
provider information (default, `false`).
+     */
+    public MetricsConfigurationProperties withSkipCamelInfo(boolean 
skipCamelInfo) {
+        this.skipCamelInfo = skipCamelInfo;
+        return this;
+    }
+
     /**
      * The text-format version to use with Prometheus scraping.
      *
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_11.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_11.adoc
index f546ce5f7b5..713be0dd91e 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_11.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_11.adoc
@@ -116,3 +116,15 @@ The 
`org.apache.camel.component.platform.http.PlatformHttpHeaderFilterStrategy`
 === camel-undertow
 
 The `org.apache.camel.component.undertow.UndertowHeaderFilterStrategy` class 
has been deprecated. The default header filter strategy is now the 
`org.apache.camel.http.base.HttpHeaderFilterStrategy`
+
+=== camel-metrics
+
+A new gauge metric, `app.info` is available by default. This is providing a 
few information related to the runtime provider such as:
+
+```
+# HELP app_info
+# TYPE app_info gauge
+app_info{camel_context="camel-1",camel_runtime_provider="Spring-Boot",camel_runtime_version="3.4.3",camel_version="4.10.2"}
 1
+```
+
+This information is evaluated at runtime startup and available through the 
usual metrics endpoint. To disable this metric you need to use the 
`camel.metrics.skipCamelInfo=true` property.
\ No newline at end of file

Reply via email to