pub struct CircuitBreakerManager { /* private fields */ }Expand description
Per-endpoint circuit breaker manager
Implementations§
Source§impl CircuitBreakerManager
impl CircuitBreakerManager
pub fn new( default_config: CircuitBreakerConfig, registry: Arc<Registry>, ) -> Self
Sourcepub async fn get_breaker(&self, endpoint: &str) -> Arc<CircuitBreaker>
pub async fn get_breaker(&self, endpoint: &str) -> Arc<CircuitBreaker>
Get or create circuit breaker for endpoint
Sourcepub async fn get_metrics(
&self,
endpoint: &str,
) -> Option<Arc<CircuitBreakerMetrics>>
pub async fn get_metrics( &self, endpoint: &str, ) -> Option<Arc<CircuitBreakerMetrics>>
Get metrics for endpoint
Sourcepub async fn get_all_states(&self) -> HashMap<String, CircuitState>
pub async fn get_all_states(&self) -> HashMap<String, CircuitState>
Get all circuit breaker states
Sourcepub async fn record_with_adjustment(&self, endpoint: &str, success: bool)
pub async fn record_with_adjustment(&self, endpoint: &str, success: bool)
Record request with dynamic threshold adjustment
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CircuitBreakerManager
impl !RefUnwindSafe for CircuitBreakerManager
impl Send for CircuitBreakerManager
impl Sync for CircuitBreakerManager
impl Unpin for CircuitBreakerManager
impl !UnwindSafe for CircuitBreakerManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request