pub struct RuleEngine { /* private fields */ }Expand description
Evaluates alert rules, deduplicates firings within a time window, and fans
out FiredAlerts to registered AlertSinks.
Implementations§
Source§impl RuleEngine
impl RuleEngine
Sourcepub fn new_with_window(dedup_window: Duration) -> Self
pub fn new_with_window(dedup_window: Duration) -> Self
Create a rule engine with the given dedup window.
An event fired within dedup_window of a previous identical event
(same rule + same entity) is suppressed.
Sourcepub fn add_rule(&mut self, rule: AlertRule) -> &mut Self
pub fn add_rule(&mut self, rule: AlertRule) -> &mut Self
Register an alert rule. Returns &mut Self for chaining.
Sourcepub fn add_sink(&mut self, sink: Arc<dyn AlertSink>) -> &mut Self
pub fn add_sink(&mut self, sink: Arc<dyn AlertSink>) -> &mut Self
Register an alert sink. Returns &mut Self for chaining.
Sourcepub fn process_event(&self, event: &AlertEvent, now: Instant)
pub fn process_event(&self, event: &AlertEvent, now: Instant)
Process one event against all registered rules.
now is injected so that unit tests can advance time deterministically
without sleeping.
Auto Trait Implementations§
impl !Freeze for RuleEngine
impl !RefUnwindSafe for RuleEngine
impl !UnwindSafe for RuleEngine
impl Send for RuleEngine
impl Sync for RuleEngine
impl Unpin for RuleEngine
impl UnsafeUnpin for RuleEngine
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.