Struct TelemetryPipeline
pub struct TelemetryPipeline {
config: TelemetryConfig,
running: Arc<AtomicBool>,
sender: Sender<TelemetryEvent>,
sources: Arc<RwLock<RawRwLock, HashMap<KernelId, Arc<dyn MetricsSource>>>>,
history: Arc<RwLock<RawRwLock, Vec<MetricsSnapshot>>>,
start_time: Instant,
sequence: AtomicU64,
}Expand description
Real-time telemetry pipeline.
Collects metrics from kernels and broadcasts them to subscribers.
Fields§
§config: TelemetryConfig§running: Arc<AtomicBool>§sender: Sender<TelemetryEvent>§sources: Arc<RwLock<RawRwLock, HashMap<KernelId, Arc<dyn MetricsSource>>>>§history: Arc<RwLock<RawRwLock, Vec<MetricsSnapshot>>>§start_time: Instant§sequence: AtomicU64Implementations§
§impl TelemetryPipeline
impl TelemetryPipeline
pub fn new(config: TelemetryConfig) -> TelemetryPipeline
pub fn new(config: TelemetryConfig) -> TelemetryPipeline
Create a new telemetry pipeline.
pub fn subscribe(&self) -> Receiver<TelemetryEvent>
pub fn subscribe(&self) -> Receiver<TelemetryEvent>
Subscribe to telemetry events.
pub fn register_source(&self, source: Arc<dyn MetricsSource>)
pub fn register_source(&self, source: Arc<dyn MetricsSource>)
Register a metrics source.
pub fn unregister_source(&self, kernel_id: &KernelId)
pub fn unregister_source(&self, kernel_id: &KernelId)
Unregister a metrics source.
pub fn stop(&self)
pub fn stop(&self)
Stop the telemetry collection loop.
pub fn latest_snapshot(&self) -> Option<MetricsSnapshot>
pub fn latest_snapshot(&self) -> Option<MetricsSnapshot>
Get the latest snapshot.
pub fn history(&self) -> Vec<MetricsSnapshot>
pub fn history(&self) -> Vec<MetricsSnapshot>
Get historical snapshots.
pub fn aggregate_over(&self, duration: Duration) -> Option<AggregateMetrics>
pub fn aggregate_over(&self, duration: Duration) -> Option<AggregateMetrics>
Get aggregate metrics over a time range.
Auto Trait Implementations§
impl !Freeze for TelemetryPipeline
impl !RefUnwindSafe for TelemetryPipeline
impl Send for TelemetryPipeline
impl Sync for TelemetryPipeline
impl Unpin for TelemetryPipeline
impl !UnwindSafe for TelemetryPipeline
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§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.
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.