pub struct TelemetrySample {Show 13 fields
pub process_memory_gb: Option<f64>,
pub total_memory_gb: Option<f64>,
pub available_memory_gb: Option<f64>,
pub logical_cpus: Option<usize>,
pub load_average_per_cpu: Option<f64>,
pub process_count: Option<usize>,
pub gpu_devices: Option<usize>,
pub gpu_utilization: Option<f64>,
pub total_disk_gb: Option<f64>,
pub available_disk_gb: Option<f64>,
pub network_bandwidth_mbps: Option<f64>,
pub temperature_celsius: Option<f64>,
pub power_watts: Option<f64>,
}Expand description
One telemetry reading. Every field is Option: None means not measurable
here, which consumers must treat as unconstrained.
Fields§
§process_memory_gb: Option<f64>Resident set size of this process, in GiB.
This — not system-wide usage — is what belongs in
crate::nas_engine::results::ResourceUsage::memory_gb, because that field
is compared against a budget for the search itself. Charging the search for
every other process on the machine would abort it whenever the host is busy.
total_memory_gb: Option<f64>Total physical memory, in GiB (system capacity, not this search’s usage).
available_memory_gb: Option<f64>Memory the OS reports as available for new allocations, in GiB.
logical_cpus: Option<usize>Logical CPUs usable by this process.
load_average_per_cpu: Option<f64>1-minute load average divided by the logical CPU count, so 1.0 means
“fully loaded” independent of core count.
process_count: Option<usize>Number of processes visible on the system.
gpu_devices: Option<usize>GPU devices visible to this process.
gpu_utilization: Option<f64>GPU utilization in [0, 1].
total_disk_gb: Option<f64>Total capacity of the filesystem holding the working directory, in GiB.
available_disk_gb: Option<f64>Free space on that filesystem, in GiB.
network_bandwidth_mbps: Option<f64>Network bandwidth, in MB/s.
temperature_celsius: Option<f64>Package/die temperature, in degrees Celsius.
power_watts: Option<f64>Instantaneous power draw, in watts.
Implementations§
Source§impl TelemetrySample
impl TelemetrySample
Sourcepub fn unknown() -> Self
pub fn unknown() -> Self
A sample in which nothing is known. Equivalent to
TelemetrySample::default(), spelled out so the intent is obvious at call
sites.
Sourcepub fn is_fully_unknown(&self) -> bool
pub fn is_fully_unknown(&self) -> bool
Whether every field is None.
Trait Implementations§
Source§impl Clone for TelemetrySample
impl Clone for TelemetrySample
Source§impl Debug for TelemetrySample
impl Debug for TelemetrySample
Source§impl Default for TelemetrySample
impl Default for TelemetrySample
Source§impl PartialEq for TelemetrySample
impl PartialEq for TelemetrySample
impl StructuralPartialEq for TelemetrySample
Auto Trait Implementations§
impl Freeze for TelemetrySample
impl RefUnwindSafe for TelemetrySample
impl Send for TelemetrySample
impl Sync for TelemetrySample
impl Unpin for TelemetrySample
impl UnsafeUnpin for TelemetrySample
impl UnwindSafe for TelemetrySample
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more