pub struct ExecutionTelemetry {
pub nodes_executed: usize,
pub cpu_segments: usize,
pub gpu_segments: usize,
pub gpu_fallbacks: usize,
pub backpressure_events: usize,
pub warnings: SmallVec<[String; 8]>,
pub graph_duration: Duration,
pub metrics_level: MetricsLevel,
pub node_metrics: BTreeMap<usize, NodeMetrics>,
pub group_metrics: BTreeMap<String, NodeMetrics>,
pub edge_metrics: BTreeMap<usize, EdgeMetrics>,
pub trace: Option<Vec<TraceEvent>>,
}Expand description
Aggregated timing + diagnostics for a run.
Fields§
§nodes_executed: usize§cpu_segments: usize§gpu_segments: usize§gpu_fallbacks: usize§backpressure_events: usize§warnings: SmallVec<[String; 8]>§graph_duration: Duration§metrics_level: MetricsLevel§node_metrics: BTreeMap<usize, NodeMetrics>Per-node-instance metrics keyed by the planned node index (NodeRef.0).
group_metrics: BTreeMap<String, NodeMetrics>Per-group aggregate metrics keyed by group id (e.g. embedded graphs).
edge_metrics: BTreeMap<usize, EdgeMetrics>Per-edge queue wait metrics keyed by the planned edge index.
trace: Option<Vec<TraceEvent>>Implementations§
Source§impl ExecutionTelemetry
impl ExecutionTelemetry
pub fn with_level(level: MetricsLevel) -> Self
pub fn merge(&mut self, other: ExecutionTelemetry)
pub fn record_node_duration(&mut self, node_idx: usize, duration: Duration)
pub fn record_node_cpu_duration(&mut self, node_idx: usize, duration: Duration)
pub fn record_node_perf(&mut self, node_idx: usize, sample: PerfSample)
pub fn record_node_payload_in(&mut self, node_idx: usize, bytes: Option<u64>)
pub fn record_node_payload_out(&mut self, node_idx: usize, bytes: Option<u64>)
pub fn record_edge_wait(&mut self, edge_idx: usize, duration: Duration)
pub fn record_edge_depth(&mut self, edge_idx: usize, depth: usize)
pub fn record_edge_payload(&mut self, edge_idx: usize, bytes: Option<u64>)
pub fn record_edge_gpu_transfer(&mut self, edge_idx: usize, upload: bool)
pub fn record_trace_event( &mut self, node_idx: usize, start: Duration, duration: Duration, )
pub fn aggregate_groups(&mut self, nodes: &[RuntimeNode])
Trait Implementations§
Source§impl Clone for ExecutionTelemetry
impl Clone for ExecutionTelemetry
Source§fn clone(&self) -> ExecutionTelemetry
fn clone(&self) -> ExecutionTelemetry
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ExecutionTelemetry
impl Debug for ExecutionTelemetry
Source§impl Default for ExecutionTelemetry
impl Default for ExecutionTelemetry
Source§fn default() -> ExecutionTelemetry
fn default() -> ExecutionTelemetry
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for ExecutionTelemetry
impl<'de> Deserialize<'de> for ExecutionTelemetry
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
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 PartialEq for ExecutionTelemetry
impl PartialEq for ExecutionTelemetry
Source§impl Serialize for ExecutionTelemetry
impl Serialize for ExecutionTelemetry
impl Eq for ExecutionTelemetry
impl StructuralPartialEq for ExecutionTelemetry
Auto Trait Implementations§
impl Freeze for ExecutionTelemetry
impl RefUnwindSafe for ExecutionTelemetry
impl Send for ExecutionTelemetry
impl Sync for ExecutionTelemetry
impl Unpin for ExecutionTelemetry
impl UnwindSafe for ExecutionTelemetry
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().