[
https://issues.apache.org/jira/browse/CAMEL-24911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18118121#comment-18118121
]
Claus Ibsen commented on CAMEL-24911:
-------------------------------------
Addition (Claus): a storm does not only flood the reading, it evicts everything
else. The registry keeps the last 100 entries, so two minutes of one failing
HTTP call and every other error is gone from the console.
So the store gets a cap per signature as well: at most a few entries (3) of the
same signature are kept, the newest ones, and the older ones of that kind are
dropped as soon as a fourth arrives. The unrelated errors from before the storm
stay in the registry, and the reader still says how many there were in total,
because the counter is not the number of entries.
The counter keeps counting while the storm goes on: 132, then 147, then 188 on
the next read, with the last timestamp moving; it is reset only when the
registry is cleared or the signature ages out of its map.
So, in order:
# per-signature counters in DefaultErrorRegistry (count, first, last), bounded
and evicted like the entries
# a cap of 3 entries per signature in the deque, so one storm cannot push out
the other errors
# folding in the readers: {{camel get errors}}, {{camel_get_errors}} and the
error dev console answer one row per signature by default (the newest entry,
with count and the time span), everything with a flag
# {{camel_get_log}} / {{camel get log}} fold identical consecutive records into
one line with a count and a span
> camel-core, camel-jbang - collapse identical repeated errors in the error
> registry and in camel_get_log
> -------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-24911
> URL: https://issues.apache.org/jira/browse/CAMEL-24911
> Project: Camel
> Issue Type: Improvement
> Components: camel-core, camel-jbang
> Reporter: Claus Ibsen
> Priority: Major
> Fix For: 4.23.0
>
>
> When a route fails the same way for every message, the log and the error
> registry fill with identical entries: in one step of the camel-jbang-mcp
> stepwise benchmark a file consumer replayed three orders on every reload and
> each line failed the same HTTP call, giving 264 entries in the error
> registry, 132 of them for one URL, each with a full stack trace and message
> history. A model then reads 60 log records and sees nothing but repeats of
> one failure; a person tailing a dev log has the same problem.
> Collapse them: the error registry keeps one entry per (route, node,
> exception, message) with a count, first and last time, instead of one per
> exchange, and {{camel_get_log}} / {{camel get log}} folds identical
> consecutive records into one line with "(x132, 16:09:28 to 16:10:43)". The
> individual exchanges stay available (the console's detail view,
> {{camel_get_errors}} with a limit), only the default answer is folded.
> Related: CAMEL-24863 made the registry mark a copy handled when the original
> recovers; this is the volume side of the same data.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)