davsclaus opened a new pull request, #29357: URL: https://github.com/apache/camel/pull/29357
[CAMEL-26698](https://issues.apache.org/jira/browse/CAMEL-26698): Camel counts the redeliveries and the failures handled by the error handler for every route and processor (`ManagedPerformanceCounter`), but they were only in JMX. So an exchange that failed and then succeeded on redelivery left no trace on the Routes tab: the route showed 0 failed, and only the step showed failed attempts. Found while trying the chaos screen with `step=reserve error rate=0.1`: the step had 46 failed out of 1761, and the route had 0 failed. The redeliveries only showed on the chaos screen, which counts them from the chaos report. **camel-console** - The route and processor statistics of the route console (JSON and text) now include `failuresHandled`, `redeliveries` and `externalRedeliveries`, with `@Metadata` like the other statistics. - The dev console model is regenerated in camel-console and camel-catalog (`dev-consoles/route.json`, `processor.json`, `dev-consoles-openapi.json`). **camel-jbang terminal UI** - `StatusParser` reads the new counters. - The processor table of the Routes tab gets **REDEL** and **HAND** columns after FAIL, for the route row and for each step. They appear only once the error handler has redelivered or handled an exchange of the route, the same way BODY TYPES does. - `tui_get_table` on Routes has `redeliveries` and `failuresHandled` per route. - The help page of the Routes tab describes the two columns. - To keep `buildProcessorTable` under the size limit, the header moved into `processorHeader`. **Semantics** (unchanged Camel counting, now visible): - A processor counts every redelivery attempt at the step that was retried (`isRedeliveredHere`). In the test, a step that fails 3 times before the dead letter channel shows 3 failed and 2 redeliveries. - A route counts the exchanges that completed after a redelivery. - An exchange the dead letter channel handled after its redeliveries counts as `failuresHandled=1` on the route, but `redeliveries=0` there. That route-level number is existing camel-management behaviour and this PR does not change it; the processor row shows the attempts. **Tests** - `RouteDevConsoleRedeliveryTest` (JMX on): a step that fails its first attempt, and a step that always fails into a dead letter channel. - `RoutesErrorHandlerColumnsTest`: parsing, the columns, the table data, and the columns left out when there is nothing to show. - camel-console: 263 tests pass. TUI module: 2329 tests pass, 1 skipped. Not checked live: a running app would need the new camel-console jar. _Claude Code on behalf of Claus Ibsen_ 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_012nJsFsjqqFiwroeHRWaKbS -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
