[
https://issues.apache.org/jira/browse/CAMEL-24258?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen updated CAMEL-24258:
--------------------------------
Fix Version/s: 4.22.0
> camel-microprofile-fault-tolerance - Clean up dead code and improve
> JMX/observability parity
> --------------------------------------------------------------------------------------------
>
> Key: CAMEL-24258
> URL: https://issues.apache.org/jira/browse/CAMEL-24258
> Project: Camel
> Issue Type: Improvement
> Components: eip
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 4.22.0
>
>
> Follow-up from the Circuit Breaker EIP modernization work (CAMEL-24137,
> CAMEL-21857).
> The camel-microprofile-fault-tolerance module has two areas that need
> attention:
> h3. 1. Remove dead timeoutPoolSize option
> {{timeoutPoolSize}} was deprecated in 4.22.0 (CAMEL-21857 switched to the
> TypedGuard API) but the reifier still reads and sets it. The field, getter,
> setter, copy constructor entry, and JMX attribute all exist despite the value
> having no effect. This dead code should be removed across:
> - {{FaultToleranceConfigurationCommon}} (model)
> - {{FaultToleranceConfiguration}} (runtime config)
> - {{FaultToleranceReifier}} (still calls {{target.setTimeoutPoolSize(...)}})
> - {{FaultToleranceProcessor}} (still exposes via @ManagedAttribute)
> - DSL builders ({{FaultToleranceConfigurationDefinition}}, etc.)
> h3. 2. JMX and observability parity with camel-resilience4j
> {{FaultToleranceProcessor}} is significantly behind {{ResilienceProcessor}}
> in terms of JMX managed attributes and operations:
> *Missing operations (all 4):*
> - {{transitionToCloseState()}}
> - {{transitionToOpenState()}}
> - {{transitionToHalfOpenState()}}
> - {{transitionToForcedOpenState()}}
> SmallRye FT's {{CircuitBreakerMaintenance}} API supports state transitions in
> recent versions, so at least some of these could be added.
> *Missing live metrics:*
> - {{getFailureRate()}} currently returns the _configured threshold_, not the
> _actual live failure rate_. The method name is misleading compared to its
> Resilience4j counterpart which returns live data from
> {{circuitBreaker.getMetrics()}}.
> - No live call counts (successful, failed, buffered, not-permitted)
> - No slow call metrics
> Some of these gaps are inherent to SmallRye FT's narrower API, but the state
> transitions and the misleading {{getFailureRate()}} method name should be
> addressable.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)