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

davsclaus 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 bd1ea830c56 CAMEL-22304: camel-core - Add exchangesTotal to 
dumpRouteStatsAsXml and uptime
bd1ea830c56 is described below

commit bd1ea830c561eb7781a37cdd17a6c14d14b1c230
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Jul 31 14:16:21 2025 +0200

    CAMEL-22304: camel-core - Add exchangesTotal to dumpRouteStatsAsXml and 
uptime
---
 .../camel/management/mbean/ManagedCamelContext.java    | 18 ++++++++++++++----
 .../management/mbean/ManagedPerformanceCounter.java    |  3 ++-
 .../apache/camel/management/mbean/ManagedRoute.java    | 12 ++++++++++--
 .../component/controlbus/ControlBusStatsTest.java      |  3 +++
 4 files changed, 29 insertions(+), 7 deletions(-)

diff --git 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
index 9d6f935643f..1802f30cdc5 100644
--- 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
+++ 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
@@ -632,7 +632,8 @@ public class ManagedCamelContext extends 
ManagedPerformanceCounter implements Ti
     @Override
     public String dumpRoutesStatsAsXml(boolean fullStats, boolean 
includeProcessors) throws Exception {
         StringBuilder sb = new StringBuilder();
-        sb.append("<camelContextStat").append(String.format(" id=\"%s\" 
state=\"%s\"", getCamelId(), getState()));
+        sb.append("<camelContextStat")
+                .append(String.format(" id=\"%s\" state=\"%s\" uptime=\"%s\"", 
getCamelId(), getState(), getUptimeMillis()));
         // use substring as we only want the attributes
         String stat = dumpStatsAsXml(fullStats);
         sb.append(" 
exchangesInflight=\"").append(getInflightExchanges()).append("\"");
@@ -666,7 +667,11 @@ public class ManagedCamelContext extends 
ManagedPerformanceCounter implements Ti
                 ManagedRouteMBean route
                         = 
context.getManagementStrategy().getManagementAgent().newProxyClient(on, 
ManagedRouteMBean.class);
                 sb.append("    <routeStat")
-                        .append(String.format(" id=\"%s\" state=\"%s\"", 
route.getRouteId(), route.getState()));
+                        .append(String.format(" id=\"%s\" state=\"%s\" 
uptime=\"%s\"", route.getRouteId(), route.getState(),
+                                route.getUptimeMillis()));
+                if (route.getRouteGroup() != null) {
+                    sb.append(String.format(" group=\"%s\"", 
route.getRouteGroup()));
+                }
                 if (route.getSourceLocation() != null) {
                     sb.append(String.format(" sourceLocation=\"%s\"", 
route.getSourceLocation()));
                 }
@@ -706,7 +711,8 @@ public class ManagedCamelContext extends 
ManagedPerformanceCounter implements Ti
     @Override
     public String dumpStepStatsAsXml(boolean fullStats) throws Exception {
         StringBuilder sb = new StringBuilder();
-        sb.append("<camelContextStat").append(String.format(" id=\"%s\" 
state=\"%s\"", getCamelId(), getState()));
+        sb.append("<camelContextStat")
+                .append(String.format(" id=\"%s\" state=\"%s\" uptime=\"%s\"", 
getCamelId(), getState(), getUptimeMillis()));
         // use substring as we only want the attributes
         String stat = dumpStatsAsXml(fullStats);
         sb.append(" 
exchangesInflight=\"").append(getInflightExchanges()).append("\"");
@@ -738,7 +744,11 @@ public class ManagedCamelContext extends 
ManagedPerformanceCounter implements Ti
                 ManagedRouteMBean route
                         = 
context.getManagementStrategy().getManagementAgent().newProxyClient(on, 
ManagedRouteMBean.class);
                 sb.append("    <routeStat")
-                        .append(String.format(" id=\"%s\" state=\"%s\"", 
route.getRouteId(), route.getState()));
+                        .append(String.format(" id=\"%s\" state=\"%s\" 
uptime=\"%s\"", route.getRouteId(), route.getState(),
+                                route.getUptimeMillis()));
+                if (route.getRouteGroup() != null) {
+                    sb.append(String.format(" group=\"%s\"", 
route.getRouteGroup()));
+                }
                 if (route.getSourceLocation() != null) {
                     sb.append(String.format(" sourceLocation=\"%s\"", 
route.getSourceLocation()));
                 }
diff --git 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
index e8a1f900551..6cbe78bc42e 100644
--- 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
+++ 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
@@ -319,7 +319,8 @@ public abstract class ManagedPerformanceCounter extends 
ManagedCounter
     public String dumpStatsAsXml(boolean fullStats) {
         StringBuilder sb = new StringBuilder();
         sb.append("<stats ");
-        sb.append(String.format("exchangesCompleted=\"%s\"", 
exchangesCompleted.getValue()));
+        sb.append(String.format("exchangesTotal=\"%s\"", 
exchangesTotal.getValue()));
+        sb.append(String.format(" exchangesCompleted=\"%s\"", 
exchangesCompleted.getValue()));
         sb.append(String.format(" exchangesFailed=\"%s\"", 
exchangesFailed.getValue()));
         sb.append(String.format(" failuresHandled=\"%s\"", 
failuresHandled.getValue()));
         sb.append(String.format(" redeliveries=\"%s\"", 
redeliveries.getValue()));
diff --git 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
index 00c36cc5d44..7436975fccd 100644
--- 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
+++ 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
@@ -546,7 +546,11 @@ public class ManagedRoute extends 
ManagedPerformanceCounter implements TimerList
 
         StringBuilder answer = new StringBuilder();
         answer.append("<routeStat").append(String.format(" id=\"%s\"", 
route.getId()))
-                .append(String.format(" state=\"%s\"", getState()));
+                .append(String.format(" state=\"%s\"", getState()))
+                .append(String.format(" uptime=\"%s\"", getUptimeMillis()));
+        if (getRouteGroup() != null) {
+            answer.append(String.format(" group=\"%s\"", getRouteGroup()));
+        }
         if (sourceLocation != null) {
             answer.append(String.format(" sourceLocation=\"%s\"", 
getSourceLocation()));
         }
@@ -615,7 +619,11 @@ public class ManagedRoute extends 
ManagedPerformanceCounter implements TimerList
 
         StringBuilder answer = new StringBuilder();
         answer.append("<routeStat").append(String.format(" id=\"%s\"", 
route.getId()))
-                .append(String.format(" state=\"%s\"", getState()));
+                .append(String.format(" state=\"%s\"", getState()))
+                .append(String.format(" uptime=\"%s\"", getUptimeMillis()));
+        if (getRouteGroup() != null) {
+            answer.append(String.format(" group=\"%s\"", getRouteGroup()));
+        }
         if (sourceLocation != null) {
             answer.append(String.format(" sourceLocation=\"%s\"", 
getSourceLocation()));
         }
diff --git 
a/core/camel-management/src/test/java/org/apache/camel/component/controlbus/ControlBusStatsTest.java
 
b/core/camel-management/src/test/java/org/apache/camel/component/controlbus/ControlBusStatsTest.java
index 625eab4ab86..e4cfe0bced0 100644
--- 
a/core/camel-management/src/test/java/org/apache/camel/component/controlbus/ControlBusStatsTest.java
+++ 
b/core/camel-management/src/test/java/org/apache/camel/component/controlbus/ControlBusStatsTest.java
@@ -47,6 +47,7 @@ public class ControlBusStatsTest extends ContextTestSupport {
         assertTrue(xml.contains("routeStat"));
         assertTrue(xml.contains("processorStat"));
         assertTrue(xml.contains("id=\"foo\""));
+        assertTrue(xml.contains("exchangesTotal=\"1\""));
         assertTrue(xml.contains("exchangesCompleted=\"1\""));
     }
 
@@ -64,6 +65,7 @@ public class ControlBusStatsTest extends ContextTestSupport {
         assertTrue(xml.contains("routeStat"));
         assertTrue(xml.contains("processorStat"));
         assertTrue(xml.contains("id=\"current\""));
+        assertTrue(xml.contains("exchangesTotal=\"1\""));
         assertTrue(xml.contains("exchangesCompleted=\"1\""));
     }
 
@@ -83,6 +85,7 @@ public class ControlBusStatsTest extends ContextTestSupport {
         assertTrue(xml.contains("processorStat"));
         assertTrue(xml.contains("id=\"bar\""));
         assertTrue(xml.contains("id=\"foo\""));
+        assertTrue(xml.contains("exchangesTotal=\"1\""));
         assertTrue(xml.contains("exchangesCompleted=\"1\""));
     }
 

Reply via email to