pub struct CircuitBreakerConfig {Show 15 fields
pub failure_threshold: usize,
pub failure_rate_threshold: f64,
pub minimum_request_threshold_for_rate: usize,
pub success_threshold_to_close: usize,
pub reset_timeout: Duration,
pub half_open_max_concurrent_operations: usize,
pub operation_timeout: Option<Duration>,
pub sliding_window_size: usize,
pub error_predicate: Option<ErrorPredicate>,
pub metrics_window_size: usize,
pub track_metrics: bool,
pub slow_call_duration_threshold: Option<Duration>,
pub slow_call_rate_threshold: Option<f64>,
pub circuit_breaker_threshold: u32,
pub circuit_breaker_cooldown: Duration,
}
Expand description
Configuration for the CircuitBreaker.
Defines thresholds and timeouts that control the behavior of the circuit breaker.
Fields§
§failure_threshold: usize
The number of consecutive failures after which the circuit opens.
failure_rate_threshold: f64
The failure rate (0.0 to 1.0) within the sliding window that causes the circuit to open.
minimum_request_threshold_for_rate: usize
The minimum number of requests in the sliding window before the failure rate is considered.
success_threshold_to_close: usize
The number of consecutive successes required in HalfOpen state to transition to Closed.
reset_timeout: Duration
The duration the circuit stays Open before transitioning to HalfOpen.
half_open_max_concurrent_operations: usize
The maximum number of operations allowed to execute concurrently when in HalfOpen state.
operation_timeout: Option<Duration>
Optional timeout for individual operations executed through the circuit breaker.
sliding_window_size: usize
The size of the sliding window used for calculating failure rates.
error_predicate: Option<ErrorPredicate>
An optional predicate to determine if a specific DecrustError
should be considered a failure.
If None
, all Err
results are considered failures.
metrics_window_size: usize
The size of the history window for detailed metrics (not fully implemented in this version).
track_metrics: bool
Whether to track detailed metrics.
slow_call_duration_threshold: Option<Duration>
Threshold for an operation to be considered a “slow call”.
slow_call_rate_threshold: Option<f64>
Rate of slow calls (0.0 to 1.0) in the window that can cause the circuit to open.
circuit_breaker_threshold: u32
Number of consecutive failures before opening the circuit breaker.
circuit_breaker_cooldown: Duration
Duration the circuit breaker stays open after tripping.
Trait Implementations§
Source§impl Clone for CircuitBreakerConfig
impl Clone for CircuitBreakerConfig
Source§fn clone(&self) -> CircuitBreakerConfig
fn clone(&self) -> CircuitBreakerConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more