Skip to main content

EventKind

Enum EventKind 

Source
pub enum EventKind {
Show 15 variants ThrottleStart, ThrottleEnd, ProcessAttached, ProcessExited, VramPressure, IdleGap, CollectorStall, HistoryReset, HangSuspected, DeviceLost, DeviceReturned, CpuSpillover, RecordingStarted, RecordingStopped, RecordingDegraded,
}

Variants§

§

ThrottleStart

§

ThrottleEnd

§

ProcessAttached

§

ProcessExited

§

VramPressure

§

IdleGap

§

CollectorStall

The collector itself fell behind its tick cadence — the recording has a hole, and the recorder must say so rather than let the gap masquerade as device idleness. Emitted by the tui collector (the engine owns tick timing, not this module).

§

HistoryReset

History was truncated or restarted (ring wrap on resize, store re-init); consumers must not treat the discontinuity as device behavior.

§

HangSuspected

Device stopped answering queries while a workload was attached — possibly a hung kernel or driver. An inference by nature: always Confidence::Likely.

§

DeviceLost

A registered device stopped answering its dynamic probe entirely (consecutive whole-probe failures, not per-metric absence — NOT_SUPPORTED stays None in the sample and is never this). Driver reset, NVML dying, eGPU unplug, and an xe rebind all look identical from this side of the probe, so the kind asserts only the observed silence — the CAUSE is never claimed. Emitted by the tui collector (it owns the probe loop and its tick counting). Always Confidence::Fact.

§

DeviceReturned

A device previously declared lost answered again. The samples between loss and return were never collected; that gap stays blank in history — a hole, never zeros. Always Confidence::Fact.

§

CpuSpillover

A GPU-attached process is burning CPU while the GPU sits idle — the classic CPU-bound dataloader. An inference: always Confidence::Likely.

§

RecordingStarted

A recording session began folding history into the database — the flight recorder’s own power-on mark. Without it (and its stop twin) the timeline cannot distinguish “the GPU sat idle” from “gpuviewer wasn’t running”: unrecorded time renders blank, and the boundary events are what make that blank legible. Emitted by the tui collector (it owns the recorder lifecycle). Always Confidence::Fact.

§

RecordingStopped

The recording session ended cleanly (the stop mark and the partial rollup tail reached the store). A session that dies without this mark — SIGKILL, OOM kill, power loss — writes nothing, which is itself information: the NEXT session’s start mark narrates the missing stop. Always Confidence::Fact.

§

RecordingDegraded

Writes to the history database started failing (disk full, permissions revoked, the file removed under a running session) — or, on the recovery edge, started working again. The recorder swallows the error itself so a bad disk never takes the live view down with it, but swallowing it SILENTLY is the one thing it must not do: this product’s entire promise is that you can scroll back, and a recorder that quietly stopped recording breaks that promise exactly when it matters. The same rule the collector applies to its own stalls, applied to its own storage. Emitted by the tui collector. Always Confidence::Fact.

Trait Implementations§

Source§

impl Clone for EventKind

Source§

fn clone(&self) -> EventKind

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for EventKind

Source§

impl Debug for EventKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for EventKind

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for EventKind

Source§

impl Hash for EventKind

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for EventKind

Source§

fn eq(&self, other: &EventKind) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for EventKind

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for EventKind

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.