Skip to main content

Telemetry

Trait Telemetry 

Source
pub trait Telemetry:
    Send
    + Sync
    + 'static {
    // Required methods
    fn on_publish(&self, event_name: &str, receivers: usize);
    fn on_publish_complete(&self, event_name: &str, elapsed: Duration);
    fn on_subscribe(&self, event_name: &str, sub_id: usize);
    fn on_handler_start(&self, event_name: &str, sub_id: usize);
    fn on_handler_complete(
        &self,
        event_name: &str,
        sub_id: usize,
        elapsed: Duration,
        error: Option<&str>,
    );
    fn on_handler_lagged(
        &self,
        event_name: &str,
        sub_id: usize,
        lagged_count: usize,
    );
}
Expand description

遥测回调接口。

实现此 trait 以自定义事件总线的监控行为。 默认提供 TracingTelemetry(基于 tracing)和 NoopTelemetry(空操作)。

Required Methods§

Source

fn on_publish(&self, event_name: &str, receivers: usize)

事件发布时调用。

Source

fn on_publish_complete(&self, event_name: &str, elapsed: Duration)

事件发布完成后调用。

Source

fn on_subscribe(&self, event_name: &str, sub_id: usize)

订阅者注册时调用。

Source

fn on_handler_start(&self, event_name: &str, sub_id: usize)

Handler 执行前调用。

Source

fn on_handler_complete( &self, event_name: &str, sub_id: usize, elapsed: Duration, error: Option<&str>, )

Handler 执行完成后调用。error 为 Some 表示 handler 返回了错误。

Source

fn on_handler_lagged( &self, event_name: &str, sub_id: usize, lagged_count: usize, )

Handler 滞后时调用(broadcast channel lagged)。

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§