pub struct TelemetryPipeline {
config: TelemetryConfig,
running: Arc<AtomicBool>,
sender: Sender<TelemetryEvent>,
sources: Arc<RwLock<HashMap<KernelId, Arc<dyn MetricsSource>>>>,
history: Arc<RwLock<Vec<MetricsSnapshot>>>,
start_time: Instant,
sequence: AtomicU64,
}Expand description
Real-time telemetry pipeline.
Collects metrics from kernels and broadcasts them to subscribers.
Fields§
§config: TelemetryConfigConfiguration.
running: Arc<AtomicBool>Running state.
sender: Sender<TelemetryEvent>Broadcast sender for events.
sources: Arc<RwLock<HashMap<KernelId, Arc<dyn MetricsSource>>>>Registered metrics sources.
history: Arc<RwLock<Vec<MetricsSnapshot>>>Historical snapshots.
start_time: InstantPipeline start time.
sequence: AtomicU64Sequence number for events.
Implementations§
Source§impl TelemetryPipeline
impl TelemetryPipeline
Sourcepub fn new(config: TelemetryConfig) -> Self
pub fn new(config: TelemetryConfig) -> Self
Create a new telemetry pipeline.
Sourcepub fn subscribe(&self) -> Receiver<TelemetryEvent>
pub fn subscribe(&self) -> Receiver<TelemetryEvent>
Subscribe to telemetry events.
Sourcepub fn register_source(&self, source: Arc<dyn MetricsSource>)
pub fn register_source(&self, source: Arc<dyn MetricsSource>)
Register a metrics source.
Sourcepub fn unregister_source(&self, kernel_id: &KernelId)
pub fn unregister_source(&self, kernel_id: &KernelId)
Unregister a metrics source.
Sourcepub fn latest_snapshot(&self) -> Option<MetricsSnapshot>
pub fn latest_snapshot(&self) -> Option<MetricsSnapshot>
Get the latest snapshot.
Sourcepub fn history(&self) -> Vec<MetricsSnapshot>
pub fn history(&self) -> Vec<MetricsSnapshot>
Get historical snapshots.
Sourcepub fn aggregate_over(&self, duration: Duration) -> Option<AggregateMetrics>
pub fn aggregate_over(&self, duration: Duration) -> Option<AggregateMetrics>
Get aggregate metrics over a time range.
Sourcefn collect_snapshot(
sources: &RwLock<HashMap<KernelId, Arc<dyn MetricsSource>>>,
start_time: Instant,
_config: &TelemetryConfig,
) -> MetricsSnapshot
fn collect_snapshot( sources: &RwLock<HashMap<KernelId, Arc<dyn MetricsSource>>>, start_time: Instant, _config: &TelemetryConfig, ) -> MetricsSnapshot
Collect a metrics snapshot.
Sourcefn check_alerts(
snapshot: &MetricsSnapshot,
config: &TelemetryConfig,
) -> Vec<TelemetryAlert>
fn check_alerts( snapshot: &MetricsSnapshot, config: &TelemetryConfig, ) -> Vec<TelemetryAlert>
Check for alert conditions.
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> 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.