Claus Ibsen created CAMEL-24258:
-----------------------------------

             Summary: 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


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)

Reply via email to