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\""));
}