This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new e241221510d6 CAMEL-24215: Circuit breaker dev consoles expose 
configuration details
e241221510d6 is described below

commit e241221510d63514227103571a32d3ec02c22743
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Jul 25 14:40:22 2026 +0200

    CAMEL-24215: Circuit breaker dev consoles expose configuration details
    
    Co-Authored-By: Claude Opus 4.6 <[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);

Reply via email to