pub struct TelemetryBus { /* private fields */ }Expand description
Cheap-to-clone broadcast bus. Wraps a tokio::sync::broadcast sender
plus a slot for attached exporters (synchronous callbacks).
Implementations§
Source§impl TelemetryBus
impl TelemetryBus
pub fn new(capacity: usize) -> Self
pub fn publish(&self, event: TelemetryEvent)
pub fn subscribe(&self) -> Receiver<TelemetryEvent>
Sourcepub fn subscribe_topic(
&self,
wanted: &'static str,
) -> UnboundedReceiver<TelemetryEvent>
pub fn subscribe_topic( &self, wanted: &'static str, ) -> UnboundedReceiver<TelemetryEvent>
Subscribe to a single topic. The returned receiver yields only
events whose topic() matches wanted. Backed by a forwarder
task that filters the broadcast stream — drop the receiver to
stop the forwarder.
pub fn receiver_count(&self) -> usize
Sourcepub fn attach_span_exporter(
&self,
exporter: Arc<OtelTracerExporter>,
probe: SpanProbeConfig,
) -> Arc<TraceContextInterceptor>
pub fn attach_span_exporter( &self, exporter: Arc<OtelTracerExporter>, probe: SpanProbeConfig, ) -> Arc<TraceContextInterceptor>
Install the FR-11 span exporter and return a TraceContextInterceptor
wired to it. Install the interceptor on actor Props via
Props::with_interceptor so handled messages open actor.handle spans
and outgoing messages carry child trace context. The metrics path is
untouched.
Sourcepub fn with_span_exporter(
self,
exporter: Arc<OtelTracerExporter>,
probe: SpanProbeConfig,
) -> (Self, Arc<TraceContextInterceptor>)
pub fn with_span_exporter( self, exporter: Arc<OtelTracerExporter>, probe: SpanProbeConfig, ) -> (Self, Arc<TraceContextInterceptor>)
Builder-style variant of attach_span_exporter.
Returns (self, interceptor) so the bus can be threaded fluently.
Sourcepub fn span_exporter(&self) -> Option<Arc<OtelTracerExporter>>
pub fn span_exporter(&self) -> Option<Arc<OtelTracerExporter>>
The installed span exporter, if any. Lets application code call
record_handle_span / record_restart_span directly.
Trait Implementations§
Source§impl Clone for TelemetryBus
impl Clone for TelemetryBus
Source§fn clone(&self) -> TelemetryBus
fn clone(&self) -> TelemetryBus
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for TelemetryBus
impl !RefUnwindSafe for TelemetryBus
impl Send for TelemetryBus
impl Sync for TelemetryBus
impl Unpin for TelemetryBus
impl UnsafeUnpin for TelemetryBus
impl !UnwindSafe for TelemetryBus
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request