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]

  • [PR] CAMEL-26698: camel-conso... davsclaus (via GitHub) via commits

Reply via email to