pub struct ProviderHealthBuilder { /* private fields */ }Expand description
Mutable builder that accumulates per-provider health observations and can
produce a ProviderHealthSnapshot on demand.
ProviderHealthBuilder is Clone + Send + Sync. All clones share the
same underlying Arc<Mutex<…>> state.
§Examples
use tokio_prompt_orchestrator::config::WorkerKind;
use tokio_prompt_orchestrator::routing::health::ProviderHealthBuilder;
let builder = ProviderHealthBuilder::new();
builder.record_success(WorkerKind::Anthropic, 95);
builder.record_failure(WorkerKind::OpenAi);
let snap = builder.snapshot();
let anthropic = snap.providers.get("Anthropic").expect("anthropic present");
assert_eq!(anthropic.consecutive_failures, 0);
let openai = snap.providers.get("OpenAi").expect("openai present");
assert_eq!(openai.consecutive_failures, 1);Implementations§
Source§impl ProviderHealthBuilder
impl ProviderHealthBuilder
Sourcepub fn record_success(&self, provider: WorkerKind, latency_ms: u64)
pub fn record_success(&self, provider: WorkerKind, latency_ms: u64)
Sourcepub fn record_failure(&self, provider: WorkerKind)
pub fn record_failure(&self, provider: WorkerKind)
Sourcepub fn snapshot(&self) -> ProviderHealthSnapshot
pub fn snapshot(&self) -> ProviderHealthSnapshot
Trait Implementations§
Source§impl Clone for ProviderHealthBuilder
impl Clone for ProviderHealthBuilder
Source§fn clone(&self) -> ProviderHealthBuilder
fn clone(&self) -> ProviderHealthBuilder
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ProviderHealthBuilder
impl RefUnwindSafe for ProviderHealthBuilder
impl Send for ProviderHealthBuilder
impl Sync for ProviderHealthBuilder
impl Unpin for ProviderHealthBuilder
impl UnsafeUnpin for ProviderHealthBuilder
impl UnwindSafe for ProviderHealthBuilder
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§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