This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch CAMEL-26700-about in repository https://gitbox.apache.org/repos/asf/camel.git
commit b4db80685bfca46fc36ce990c79e42943c0f735e Author: Claus Ibsen <[email protected]> AuthorDate: Sat Nov 7 18:15:49 2026 +0100 CAMEL-26700: About docs, with a screenshot, and camel get about on the diagnostics page; the last 5m line keeps since it started only when it fits Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../modules/ROOT/images/jbang/camel-tui-about.png | Bin 0 -> 416363 bytes .../ROOT/pages/camel-jbang-diagnostics.adoc | 16 ++++++++++++++ .../ROOT/pages/camel-jbang-tui-observe.adoc | 23 +++++++++++++++++++++ .../modules/ROOT/pages/camel-jbang-tui.adoc | 2 +- .../dsl/jbang/core/commands/tui/AboutView.java | 12 +++++++---- 5 files changed, 48 insertions(+), 5 deletions(-) diff --git a/docs/user-manual/modules/ROOT/images/jbang/camel-tui-about.png b/docs/user-manual/modules/ROOT/images/jbang/camel-tui-about.png new file mode 100644 index 000000000000..a82bde4ac371 Binary files /dev/null and b/docs/user-manual/modules/ROOT/images/jbang/camel-tui-about.png differ diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-diagnostics.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-diagnostics.adoc index a8c5d7dbf83d..b2d730f79c62 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-jbang-diagnostics.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-diagnostics.adoc @@ -42,6 +42,22 @@ and `--show` picks the sections (`body`, `headers`, `properties`, `variables`, ` NOTE: The error registry is enabled by the `dev` profile, which `camel run` uses by default. For another profile, or for a Spring Boot or Quarkus application, set `camel.errorRegistry.enabled=true`. +=== About + +`camel get about` says what an integration does and what has happened, without an AI: its purpose (the comment at the +top of its main source file, else the descriptions of its routes), what comes in, its routes (a route called with +`direct` or `seda` under the route that calls it), what goes out, the exchanges of each route and the sends to each +endpoint since it started, and the last minutes from its timeline. + +[source,bash] +---- +camel get about +camel get about myApp --json +---- + +It is the About view of the TUI as text. The `camel_project_overview` MCP tool has the same purpose, and the running +part when the project runs. + === Timeline `camel get timeline` shows what each route did in the last minute: how many exchanges completed, were recovered by a diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-tui-observe.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-tui-observe.adoc index 6c52c757ead2..74d535fe0f63 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-jbang-tui-observe.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-tui-observe.adoc @@ -8,6 +8,7 @@ See xref:camel-jbang-tui.adoc[Camel TUI] for getting started and the other pages == Key Features +* <<_about,*About*>> -- what an integration does and what has happened, at a glance and without an AI * <<_timeline,*Timeline*>> -- per second what went wrong and what it did to each route, and the exchanges of a second * <<_message_insight,*Message insight*>> -- step through the history of an exchange, as a list, a waterfall or on the diagram * <<_troubleshooting_errors,*Errors*>> -- failures with the stack trace, the message and the path that led there @@ -15,6 +16,28 @@ See xref:camel-jbang-tui.adoc[Camel TUI] for getting started and the other pages * <<_http_probe,*HTTP probe*>> -- call the HTTP endpoints of the integration from the TUI * <<_highlighted_features,*Deep dives*>> -- CVE audit, Kafka, SQL, memory leaks, JFR profiling and the catalog +== About + +The Overview tab (key *1*) has two views, switched with *v*: *About* an integration, shown when one runs, and +*Integrations*, the table of all of them. About tells what an integration you have not seen before does, and what has +happened to it, with no AI: + +image::jbang/camel-tui-about.png[About the chaos demo: its purpose, what comes in, its routes and what goes out, the last 5 minutes after an outage of the stock service, and a line per route of what happened] + +* The header has the Camel version, runtime, files, routes and uptime, and the purpose: the comment at the top of the +main source file (a YAML `#` comment, a Javadoc or `//` comment in Java, an XML comment), else the descriptions of the +routes. +* *In*, *Routes* and *Out* say what starts it, its routes (a route called with `direct` sits under its caller with `↳`, +one handed off with `seda` with `⇢`) and what it talks to, with the exchanges since it started and a sparkline of the +last 5 minutes. *Up* and *Down* select a line, and *Enter* opens a route drilled down on the Diagram, or an endpoint with +its details on the Endpoint tab. +* *Last 5m* has the exchanges and how they ended, with the cause that happened most, and *What happened* a line per route +over the last 5 minutes, coloured as on the Timeline, with when the worst happened. *+* and *-* zoom between 5, 2 and 1 +minutes (zooming in centres on the last trouble, so you see what the other routes did then), and *Left* and *Right* +move a zoomed window. *4* opens the Timeline for each second. + +`camel get about` shows the same from the command line (see xref:camel-jbang-diagnostics.adoc#_about[Diagnostics]). + == Timeline The Timeline tab (key *4*) shows the last minute of the selected integration on one time axis, one column per second: diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-tui.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-tui.adoc index 7fe5c98dae93..53ad4f174ee3 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-jbang-tui.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-tui.adoc @@ -65,7 +65,7 @@ to any tab, or *Shift+F2* to go to a tab by name. |=== | Key | Tab | What It Shows -| 1 | Overview | All running integrations and infrastructure services. Start here. +| 1 | Overview | About an integration, what it does and what has happened, or all running integrations and infrastructure services. Start here. | 2 | Source | File explorer and editor for your project code, with Camel checks, completion and documentation. | 3 | Log | Real-time application logs with search and filtering. | 4 | Timeline | Per second, the errors and what each route did, and the failed, handled and slowest exchanges of a second. diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/AboutView.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/AboutView.java index 05850be553ee..bab09aa36d9d 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/AboutView.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/AboutView.java @@ -787,10 +787,14 @@ final class AboutView { } } if (total > done) { - spans.add(Span.styled(" · since it started: " + total + (total == 1 ? " exchange" : " exchanges") - + (totalHandled > 0 ? ", " + totalHandled + " handled" : "") - + (totalFailed > 0 ? ", " + totalFailed + " failed" : ""), - Theme.muted())); + String since = " · since it started: " + total + (total == 1 ? " exchange" : " exchanges") + + (totalHandled > 0 ? ", " + totalHandled + " handled" : "") + + (totalFailed > 0 ? ", " + totalFailed + " failed" : ""); + // only when it fits: the line is about the last minutes first + int used = spans.stream().mapToInt(sp -> sp.content().length()).sum(); + if (used + since.length() < width - 1) { + spans.add(Span.styled(since, Theme.muted())); + } } return Line.from(spans); }
