pub struct SloConfig {
pub max_stream_read_latency_ms: u64,
pub max_peer_op_latency_ms: u64,
pub max_batch_flush_latency_ms: u64,
pub max_replication_lag_sec: u64,
}Expand description
SLO thresholds for detecting performance degradation.
These thresholds trigger warnings when exceeded, helping operators detect issues before they become critical. Violations are logged and exposed via metrics.
Fields§
§max_stream_read_latency_ms: u64Maximum acceptable stream read latency (ms). Exceeding this triggers a warning.
max_peer_op_latency_ms: u64Maximum acceptable peer operation latency (ms). Applies to Merkle queries, key fetches, etc.
max_batch_flush_latency_ms: u64Maximum acceptable batch flush latency (ms).
max_replication_lag_sec: u64Maximum acceptable replication lag (seconds). If we fall this far behind the stream head, trigger warning.
Implementations§
Source§impl SloConfig
impl SloConfig
Sourcepub fn is_stream_read_violation(&self, latency: Duration) -> bool
pub fn is_stream_read_violation(&self, latency: Duration) -> bool
Check if a stream read latency violates SLO.
Sourcepub fn is_peer_op_violation(&self, latency: Duration) -> bool
pub fn is_peer_op_violation(&self, latency: Duration) -> bool
Check if a peer operation latency violates SLO.
Sourcepub fn is_batch_flush_violation(&self, latency: Duration) -> bool
pub fn is_batch_flush_violation(&self, latency: Duration) -> bool
Check if a batch flush latency violates SLO.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for SloConfig
impl<'de> Deserialize<'de> for SloConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for SloConfig
impl RefUnwindSafe for SloConfig
impl Send for SloConfig
impl Sync for SloConfig
impl Unpin for SloConfig
impl UnwindSafe for SloConfig
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> 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 more