This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch feature/CAMEL-24215-devconsole-config in repository https://gitbox.apache.org/repos/asf/camel.git
commit db067523a6f9616d2f4b76c824cb4e6794055d7b Author: Claus Ibsen <[email protected]> AuthorDate: Sat Jul 25 13:17:33 2026 +0200 CAMEL-24215: Circuit breaker dev consoles expose configuration details Co-Authored-By: Claude Opus 4.6 <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../faulttolerance/FaultToleranceConsole.java | 16 ++++++++++++++++ .../component/resilience4j/ResilienceConsole.java | 22 ++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java index 04a1dbd551c7..14f6ce4f96f6 100644 --- a/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java +++ b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java @@ -84,6 +84,22 @@ public class FaultToleranceConsole extends AbstractDevConsole { jo.put("id", cb.getId()); jo.put("routeId", cb.getRouteId()); jo.put("state", cb.getCircuitBreakerState()); + // configuration + JsonObject config = new JsonObject(); + config.put("delay", cb.getDelay()); + config.put("failureRate", cb.getFailureRate()); + config.put("requestVolumeThreshold", cb.getRequestVolumeThreshold()); + config.put("successThreshold", cb.getSuccessThreshold()); + config.put("bulkheadEnabled", cb.isBulkheadEnabled()); + if (cb.isBulkheadEnabled()) { + config.put("bulkheadMaxConcurrentCalls", cb.getBulkheadMaxConcurrentCalls()); + config.put("bulkheadWaitingTaskQueue", cb.getBulkheadWaitingTaskQueue()); + } + config.put("timeoutEnabled", cb.isTimeoutEnabled()); + if (cb.isTimeoutEnabled()) { + config.put("timeoutDuration", cb.getTimeoutDuration()); + } + jo.put("configuration", config); list.add(jo); } root.put("circuitBreakers", list); diff --git a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java b/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java index ae0af7cf6590..3c16c6ee7545 100644 --- a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java +++ b/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java @@ -99,6 +99,28 @@ public class ResilienceConsole extends AbstractDevConsole { jo.put("failedCalls", cb.getNumberOfFailedCalls()); jo.put("notPermittedCalls", cb.getNumberOfNotPermittedCalls()); jo.put("failureRate", cb.getFailureRate()); + // configuration + JsonObject config = new JsonObject(); + config.put("failureRateThreshold", cb.getCircuitBreakerFailureRateThreshold()); + config.put("slowCallRateThreshold", cb.getCircuitBreakerSlowCallRateThreshold()); + config.put("minimumNumberOfCalls", cb.getCircuitBreakerMinimumNumberOfCalls()); + config.put("permittedNumberOfCallsInHalfOpenState", + cb.getCircuitBreakerPermittedNumberOfCallsInHalfOpenState()); + config.put("slidingWindowSize", cb.getCircuitBreakerSlidingWindowSize()); + config.put("slidingWindowType", cb.getCircuitBreakerSlidingWindowType()); + config.put("waitDurationInOpenState", cb.getCircuitBreakerWaitDurationInOpenState()); + config.put("automaticTransitionFromOpenToHalfOpen", + cb.isCircuitBreakerTransitionFromOpenToHalfOpenEnabled()); + config.put("bulkheadEnabled", cb.isBulkheadEnabled()); + if (cb.isBulkheadEnabled()) { + config.put("bulkheadMaxConcurrentCalls", cb.getBulkheadMaxConcurrentCalls()); + config.put("bulkheadMaxWaitDuration", cb.getBulkheadMaxWaitDuration()); + } + config.put("timeoutEnabled", cb.isTimeoutEnabled()); + if (cb.isTimeoutEnabled()) { + config.put("timeoutDuration", cb.getTimeoutDuration()); + } + jo.put("configuration", config); list.add(jo); } root.put("circuitBreakers", list);
