You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2026/07/25 11:17:48 UTC
(camel) 01/01: CAMEL-24215: Circuit breaker dev consoles expose configuration details
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 <cl...@gmail.com>
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 <no...@anthropic.com>
Signed-off-by: Claus Ibsen <cl...@gmail.com>
---
.../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);