pub struct ReplicationLag { /* private fields */ }Expand description
Measures and evaluates replication lag between pairs of datacenters.
Lag measurements are stored in-memory; in production these would be populated from heartbeat timestamps.
Implementations§
Source§impl ReplicationLag
impl ReplicationLag
Sourcepub fn record(
&mut self,
dc_a: impl Into<String>,
dc_b: impl Into<String>,
lag_ms: u64,
)
pub fn record( &mut self, dc_a: impl Into<String>, dc_b: impl Into<String>, lag_ms: u64, )
Record a lag measurement between dc_a and dc_b (directional).
Sourcepub fn lag_ms(&self, dc_a: &str, dc_b: &str) -> u64
pub fn lag_ms(&self, dc_a: &str, dc_b: &str) -> u64
Retrieve the most recently recorded lag between dc_a and dc_b in
milliseconds. Returns 0 if no measurement has been recorded.
Sourcepub fn is_acceptable(&self, lag_ms: u64, sla_ms: u64) -> bool
pub fn is_acceptable(&self, lag_ms: u64, sla_ms: u64) -> bool
Returns true if lag_ms is within the acceptable sla_ms bound.
Sourcepub fn alert_if_excessive(
&self,
dc_a: &str,
dc_b: &str,
lag_ms: u64,
threshold_ms: u64,
) -> Option<ReplicationAlert>
pub fn alert_if_excessive( &self, dc_a: &str, dc_b: &str, lag_ms: u64, threshold_ms: u64, ) -> Option<ReplicationAlert>
Generate an alert if lag_ms exceeds threshold_ms, otherwise returns
None.
Sourcepub fn check_and_alert(
&self,
dc_a: &str,
dc_b: &str,
threshold_ms: u64,
) -> Option<ReplicationAlert>
pub fn check_and_alert( &self, dc_a: &str, dc_b: &str, threshold_ms: u64, ) -> Option<ReplicationAlert>
Check recorded lag between dc_a and dc_b against a threshold and
produce an alert if it is excessive.
Trait Implementations§
Source§impl Clone for ReplicationLag
impl Clone for ReplicationLag
Source§fn clone(&self) -> ReplicationLag
fn clone(&self) -> ReplicationLag
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ReplicationLag
impl Debug for ReplicationLag
Source§impl Default for ReplicationLag
impl Default for ReplicationLag
Source§fn default() -> ReplicationLag
fn default() -> ReplicationLag
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ReplicationLag
impl RefUnwindSafe for ReplicationLag
impl Send for ReplicationLag
impl Sync for ReplicationLag
impl Unpin for ReplicationLag
impl UnsafeUnpin for ReplicationLag
impl UnwindSafe for ReplicationLag
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.