pub struct PipelineDiagnostics {Show 15 fields
pub schema_version: u32,
pub batches: u64,
pub element_count: u64,
pub mesh_count: u64,
pub triangle_count: u64,
pub backstop_count: u64,
pub total_csg_failures: u64,
pub products_with_failures: u64,
pub hosts_with_openings: u64,
pub silent_no_ops: u64,
pub rect_fast: RectFastSummary,
pub point_cache_hits: u64,
pub point_cache_misses: u64,
pub faceted_brep_ms: u64,
pub phase_ms: PipelinePhaseTimings,
}Expand description
Aggregate structured diagnostics for one model load. Counter names are
aligned with the existing GeometryDiagnostics contract
(total_csg_failures, hosts_with_openings, rect_fast, …) so a
consumer reading both sees one vocabulary.
Fields§
§schema_version: u32Wire-shape version (PIPELINE_DIAGNOSTICS_SCHEMA_VERSION).
batches: u64Geometry passes folded in: one per processGeometryBatch* call on
wasm, exactly 1 for the native single-pass pipeline.
element_count: u64Element jobs submitted to the per-element producer.
mesh_count: u64Meshes emitted across all batches.
triangle_count: u64Triangles emitted across all batches.
backstop_count: u64Triangles removed by the f32-collapse degenerate-triangle backstop
(element::build_mesh_data). Non-zero means the backstop engaged.
total_csg_failures: u64Total CSG boolean failures (same meaning as
GeometryDiagnostics::total_csg_failures).
products_with_failures: u64Distinct products with at least one CSG failure.
hosts_with_openings: u64Hosts that had openings processed.
silent_no_ops: u64Hosts where rect cutters ran clean but the mesh came out unchanged.
rect_fast: RectFastSummaryrect_fast fast-path engagement, summed across batches.
point_cache_hits: u64CartesianPoints served from the point cache while meshing faceted breps,
summed across batches. Non-zero proves cross-element point memoization
fired (the per-worker cache hoist). hits / (hits + misses) is the rate.
point_cache_misses: u64CartesianPoints parsed fresh (point-cache misses) across the faceted-brep pass, summed across batches.
faceted_brep_ms: u64Wall time (ms) attributed to faceted-brep part meshing, summed across
batches. Populated only in observability native builds; 0 on wasm.
phase_ms: PipelinePhaseTimingsPhase wall-times (native: full; wasm: geometry only).
Implementations§
Source§impl PipelineDiagnostics
impl PipelineDiagnostics
Sourcepub fn record_batch(
&mut self,
element_count: u64,
mesh_count: u64,
triangle_count: u64,
backstop_count: u64,
point_cache_hits: u64,
point_cache_misses: u64,
faceted_brep_ms: u64,
geometry_ms: u64,
diag: &GeometryDiagnostics,
)
pub fn record_batch( &mut self, element_count: u64, mesh_count: u64, triangle_count: u64, backstop_count: u64, point_cache_hits: u64, point_cache_misses: u64, faceted_brep_ms: u64, geometry_ms: u64, diag: &GeometryDiagnostics, )
Fold one geometry batch into the accumulator (the wasm
processGeometryBatch* path calls this once per batch).
geometry_ms is the batch’s wall time; diag is the batch’s drained
GeometryDiagnostics. Summing per-batch aggregates is exact because
each batch drains its own router (no double counting).
Sourcepub fn from_processing_stats(
stats: &ProcessingStats,
element_count: u64,
) -> Self
pub fn from_processing_stats( stats: &ProcessingStats, element_count: u64, ) -> Self
Map a finished native pass into this shape. The native pipeline is
single-pass, so batches is 1 and every phase timer is available.
Available API for a native consumer that wants the unified diagnostics
vocabulary; not wired into a live server/CLI pipeline today (see the
module docs). The wasm getter uses Self::record_batch, not this.
Trait Implementations§
Source§impl Clone for PipelineDiagnostics
impl Clone for PipelineDiagnostics
Source§fn clone(&self) -> PipelineDiagnostics
fn clone(&self) -> PipelineDiagnostics
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PipelineDiagnostics
impl Debug for PipelineDiagnostics
Source§impl Default for PipelineDiagnostics
impl Default for PipelineDiagnostics
Source§impl<'de> Deserialize<'de> for PipelineDiagnostics
impl<'de> Deserialize<'de> for PipelineDiagnostics
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>,
Auto Trait Implementations§
impl Freeze for PipelineDiagnostics
impl RefUnwindSafe for PipelineDiagnostics
impl Send for PipelineDiagnostics
impl Sync for PipelineDiagnostics
impl Unpin for PipelineDiagnostics
impl UnsafeUnpin for PipelineDiagnostics
impl UnwindSafe for PipelineDiagnostics
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.