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§
Sourcefn on_publish(&self, event_name: &str, receivers: usize)
fn on_publish(&self, event_name: &str, receivers: usize)
事件发布时调用。
Sourcefn on_publish_complete(&self, event_name: &str, elapsed: Duration)
fn on_publish_complete(&self, event_name: &str, elapsed: Duration)
事件发布完成后调用。
Sourcefn on_subscribe(&self, event_name: &str, sub_id: usize)
fn on_subscribe(&self, event_name: &str, sub_id: usize)
订阅者注册时调用。
Sourcefn on_handler_start(&self, event_name: &str, sub_id: usize)
fn on_handler_start(&self, event_name: &str, sub_id: usize)
Handler 执行前调用。
Sourcefn on_handler_complete(
&self,
event_name: &str,
sub_id: usize,
elapsed: Duration,
error: Option<&str>,
)
fn on_handler_complete( &self, event_name: &str, sub_id: usize, elapsed: Duration, error: Option<&str>, )
Handler 执行完成后调用。error 为 Some 表示 handler 返回了错误。
Sourcefn on_handler_lagged(
&self,
event_name: &str,
sub_id: usize,
lagged_count: usize,
)
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".