Skip to main content

EventRegistry

Struct EventRegistry 

Source
pub struct EventRegistry { /* private fields */ }
Expand description

Registry that dispatches events to all registered sinks.

emit hands an event to each sink one after another, in the order the sinks were registered, and every sink has the event before emit returns, so each sink receives every event in the order it was emitted. A sink that refuses an event does not stop the sinks after it: its refusal is returned with its name. A sink that is slow holds up the sinks after it, so a sink that sends events over a network hands them to a queue of its own and returns.

Implementations§

Source§

impl EventRegistry

Source

pub fn new() -> Self

Create an empty registry.

Source

pub fn register(&mut self, sink: Arc<dyn EventSink>)

Register an event sink.

Source

pub async fn emit(&self, event: &RazeriEvent) -> Vec<(String, EventSinkError)>

Record an event, then hand it to every sink, one after another in the order they were registered.

Returns each sink’s refusal with the sink’s name; a refusal does not stop the sinks after it.

Source

pub fn record(&self, event: RazeriEvent)

Record an event without dispatching it to sinks.

Source

pub fn events(&self) -> Vec<RazeriEvent>

Return all recorded events in chronological order.

Source

pub fn recent_events(&self, limit: usize) -> Vec<RazeriEvent>

Return the most recent events in chronological order.

Source

pub fn events_for_workflow(&self, workflow_id: &str) -> Vec<RazeriEvent>

Return events associated with the provided workflow identifier.

Source

pub fn recent_summaries(&self, limit: usize) -> Vec<EventSummary>

Return human-readable summaries for the most recent events.

Source

pub async fn flush_all(&self) -> Vec<(String, EventSinkError)>

Flush all sinks.

Source

pub fn sink_names(&self) -> Vec<String>

The names of the sinks this registry dispatches to, in the order they were registered.

Source

pub fn len(&self) -> usize

Number of registered sinks.

Source

pub fn is_empty(&self) -> bool

Whether the registry has no sinks.

Source

pub fn query(&self, q: &EventQuery) -> Vec<RazeriEvent>

Execute a flexible query against the recorded event history.

Trait Implementations§

Source§

impl Default for EventRegistry

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl EventEmitter for EventRegistry

Source§

fn emit_event<'life0, 'async_trait>( &'life0 self, event: RazeriEvent, ) -> Pin<Box<dyn Future<Output = Vec<(String, EventSinkError)>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Emit a canonical event into the monitoring pipeline.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more