[
https://issues.apache.org/jira/browse/CAMEL-23615?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bruno Gonçalves updated CAMEL-23615:
------------------------------------
Description:
*Background*
{{ManagedRouteMBean}} and {{ManagedRouteGroupMBean}} currently expose the
following timestamp methods:
* {{getLastExchangeCompletedTimestamp()}} — timestamp of the last completed
exchange
* {{getLastExchangeFailureTimestamp()}} — timestamp of the last failed
(unhandled) exchange
However, there is no timestamp method for *handled failures* — exchanges that
failed but were routed to a dead letter endpoint or handled by an
{{onException}} clause. These are counted under {{getFailuresHandled()}} but
there is no corresponding timestamp.
*Problem*
>From a monitoring and observability perspective, operators need to know *when*
>the last handled failure occurred — not just how many there were. The count
>({{{}getFailuresHandled(){}}}) is available but incomplete without a timestamp.
When using a {{{}DeadLetterChannel{}}}, all failures are counted as
{{failuresHandled}} and {{lastExchangeFailureTimestamp}} is always {{null}} —
making it impossible to determine when the last failure happened through the
management API.
*Proposed Solution*
Add a new method to {{{}ManagedPerformanceCounterMBean{}}},
{{ManagedRouteMBean}} and {{{}ManagedRouteGroupMBean{}}}:
{code:java}
Date getLastExchangeFailureHandledTimestamp();{code}
This should be set in ManagedPerformanceCounter alongside the failuresHandled
counter increment — the same way lastExchangeFailureTimestamp is set alongside
exchangesFailed.
was:
{*}{{{{Background
}}}}{*}{{{}{{ManagedRouteMBean}}{}}} and {{{{ManagedRouteGroupMBean}}}}
currently expose the following timestamp methods:
* {{getLastExchangeCompletedTimestamp()}} — timestamp of the last completed
exchange
* {{getLastExchangeFailureTimestamp()}} — timestamp of the last failed
(unhandled) exchange
However, there is no timestamp method for *handled failures* — exchanges that
failed but were routed to a dead letter endpoint or handled by an
{{onException}} clause. These are counted under {{getFailuresHandled()}} but
there is no corresponding timestamp.
*Problem*
>From a monitoring and observability perspective, operators need to know *when*
>the last handled failure occurred — not just how many there were. The count
>({{{}getFailuresHandled(){}}}) is available but incomplete without a timestamp.
When using a {{{}DeadLetterChannel{}}}, all failures are counted as
{{failuresHandled}} and {{lastExchangeFailureTimestamp}} is always {{null}} —
making it impossible to determine when the last failure happened through the
management API.
*Proposed Solution*
Add a new method to {{{}ManagedPerformanceCounterMBean{}}},
{{ManagedRouteMBean}} and {{{}ManagedRouteGroupMBean{}}}:
{code:java}
Date getLastExchangeFailureHandledTimestamp();{code}
This should be set in ManagedPerformanceCounter alongside the failuresHandled
counter increment — the same way lastExchangeFailureTimestamp is set alongside
exchangesFailed.
> Add getLastExchangeFailureHandledTimestamp() to ManagedRouteGroupMBean and
> ManagedRouteMBean
> --------------------------------------------------------------------------------------------
>
> Key: CAMEL-23615
> URL: https://issues.apache.org/jira/browse/CAMEL-23615
> Project: Camel
> Issue Type: New Feature
> Components: camel-management
> Affects Versions: 4.20.0
> Reporter: Bruno Gonçalves
> Priority: Major
>
> *Background*
> {{ManagedRouteMBean}} and {{ManagedRouteGroupMBean}} currently expose the
> following timestamp methods:
> * {{getLastExchangeCompletedTimestamp()}} — timestamp of the last completed
> exchange
> * {{getLastExchangeFailureTimestamp()}} — timestamp of the last failed
> (unhandled) exchange
> However, there is no timestamp method for *handled failures* — exchanges that
> failed but were routed to a dead letter endpoint or handled by an
> {{onException}} clause. These are counted under {{getFailuresHandled()}} but
> there is no corresponding timestamp.
> *Problem*
> From a monitoring and observability perspective, operators need to know
> *when* the last handled failure occurred — not just how many there were. The
> count ({{{}getFailuresHandled(){}}}) is available but incomplete without a
> timestamp.
> When using a {{{}DeadLetterChannel{}}}, all failures are counted as
> {{failuresHandled}} and {{lastExchangeFailureTimestamp}} is always {{null}} —
> making it impossible to determine when the last failure happened through the
> management API.
> *Proposed Solution*
> Add a new method to {{{}ManagedPerformanceCounterMBean{}}},
> {{ManagedRouteMBean}} and {{{}ManagedRouteGroupMBean{}}}:
> {code:java}
> Date getLastExchangeFailureHandledTimestamp();{code}
> This should be set in ManagedPerformanceCounter alongside the failuresHandled
> counter increment — the same way lastExchangeFailureTimestamp is set
> alongside exchangesFailed.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)