You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2026/05/14 07:58:23 UTC
(camel) 02/10: CAMEL-23514: Pass metrics flag to ASCII renderer in TUI monitor
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch CAMEL-23514-ascii-diagram-metrics
in repository https://gitbox.apache.org/repos/asf/camel.git
commit b194ceaa5ce813abcc92f011b3010b7ee2efa72e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu May 14 09:22:24 2026 +0200
CAMEL-23514: Pass metrics flag to ASCII renderer in TUI monitor
Parse statistics from route-structure JSON response and pass
metrics=true to RouteDiagramAsciiRenderer so counters are shown
in the text diagram view.
Co-Authored-By: Claude Opus 4.6 (1M context) <no...@anthropic.com>
Signed-off-by: Claus Ibsen <cl...@gmail.com>
---
.../camel/dsl/jbang/core/commands/tui/CamelMonitor.java | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java
index 0984a3e65fff..e97bdae7afa2 100644
--- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java
+++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java
@@ -1310,6 +1310,13 @@ public class CamelMonitor extends CamelCommand {
node.code = Jsoner.unescape(objToString(line.get("code")));
Integer level = line.getInteger("level");
node.level = level != null ? level : 0;
+ JsonObject stats = (JsonObject) line.get("statistics");
+ if (stats != null) {
+ RouteDiagramLayoutEngine.StatInfo stat = new RouteDiagramLayoutEngine.StatInfo();
+ stat.exchangesTotal = stats.getLongOrDefault("exchangesTotal", 0);
+ stat.exchangesFailed = stats.getLongOrDefault("exchangesFailed", 0);
+ node.stat = stat;
+ }
route.nodes.add(node);
}
}
@@ -1317,7 +1324,7 @@ public class CamelMonitor extends CamelCommand {
}
if (textMode) {
- String ascii = renderAscii(diagramRoutes, RouteDiagramLayoutEngine.DEFAULT_BOX_WIDTH, "CODE", true);
+ String ascii = renderAscii(diagramRoutes, RouteDiagramLayoutEngine.DEFAULT_BOX_WIDTH, "CODE", true, true);
List<String> result = new ArrayList<>();
for (String line : ascii.split("\n", -1)) {
if (!line.isEmpty()) {
@@ -1373,7 +1380,8 @@ public class CamelMonitor extends CamelCommand {
}
private static String renderAscii(
- List<RouteDiagramLayoutEngine.RouteInfo> routes, int nodeWidth, String nodeLabel, boolean unicode) {
+ List<RouteDiagramLayoutEngine.RouteInfo> routes, int nodeWidth, String nodeLabel, boolean unicode,
+ boolean metrics) {
RouteDiagramLayoutEngine engine = new RouteDiagramLayoutEngine(
nodeWidth, RouteDiagramLayoutEngine.DEFAULT_FONT_SIZE,
RouteDiagramLayoutEngine.NodeLabelMode.valueOf(nodeLabel.toUpperCase()));
@@ -1387,7 +1395,7 @@ public class CamelMonitor extends CamelCommand {
}
RouteDiagramAsciiRenderer renderer = new RouteDiagramAsciiRenderer(
- nodeWidth * RouteDiagramLayoutEngine.SCALE, unicode);
+ nodeWidth * RouteDiagramLayoutEngine.SCALE, unicode, metrics);
return renderer.renderDiagram(layoutRoutes, currentY);
}