pub trait Tracer:
Send
+ Sync
+ 'static {
Show 13 methods
// Required method
fn new_span_id(&self) -> SpanId;
// Provided methods
fn on_query_start(&self, _span_id: SpanId, _query: TracerQueryKey) { ... }
fn on_cache_check(
&self,
_span_id: SpanId,
_query: TracerQueryKey,
_valid: bool,
) { ... }
fn on_query_end(
&self,
_span_id: SpanId,
_query: TracerQueryKey,
_result: ExecutionResult,
) { ... }
fn on_dependency_registered(
&self,
_span_id: SpanId,
_parent: TracerQueryKey,
_dependency: TracerQueryKey,
) { ... }
fn on_asset_dependency_registered(
&self,
_span_id: SpanId,
_parent: TracerQueryKey,
_asset: TracerAssetKey,
) { ... }
fn on_early_cutoff_check(
&self,
_span_id: SpanId,
_query: TracerQueryKey,
_output_changed: bool,
) { ... }
fn on_asset_requested(
&self,
_asset: TracerAssetKey,
_state: TracerAssetState,
) { ... }
fn on_asset_resolved(&self, _asset: TracerAssetKey, _changed: bool) { ... }
fn on_asset_invalidated(&self, _asset: TracerAssetKey) { ... }
fn on_query_invalidated(
&self,
_query: TracerQueryKey,
_reason: InvalidationReason,
) { ... }
fn on_cycle_detected(&self, _path: Vec<TracerQueryKey>) { ... }
fn on_missing_dependency(
&self,
_query: TracerQueryKey,
_dependency_description: String,
) { ... }
}Expand description
Tracer trait for observing query-flow execution.
Implementations can collect events for testing, forward to the tracing crate,
or provide custom observability.
All methods have default empty implementations, so you only need to override
the events you’re interested in. The NoopTracer uses all defaults for
zero-cost when tracing is disabled.
§Thread Safety
Implementations must be Send + Sync as the tracer may be called from
multiple threads concurrently.
Required Methods§
Sourcefn new_span_id(&self) -> SpanId
fn new_span_id(&self) -> SpanId
Generate a new unique span ID.
This is the only required method. Called at the start of each query execution.
Provided Methods§
Sourcefn on_query_start(&self, _span_id: SpanId, _query: TracerQueryKey)
fn on_query_start(&self, _span_id: SpanId, _query: TracerQueryKey)
Called when a query execution starts.
Sourcefn on_cache_check(&self, _span_id: SpanId, _query: TracerQueryKey, _valid: bool)
fn on_cache_check(&self, _span_id: SpanId, _query: TracerQueryKey, _valid: bool)
Called when cache validity is checked.
Sourcefn on_query_end(
&self,
_span_id: SpanId,
_query: TracerQueryKey,
_result: ExecutionResult,
)
fn on_query_end( &self, _span_id: SpanId, _query: TracerQueryKey, _result: ExecutionResult, )
Called when a query execution ends.
Sourcefn on_dependency_registered(
&self,
_span_id: SpanId,
_parent: TracerQueryKey,
_dependency: TracerQueryKey,
)
fn on_dependency_registered( &self, _span_id: SpanId, _parent: TracerQueryKey, _dependency: TracerQueryKey, )
Called when a query dependency is registered during execution.
Sourcefn on_asset_dependency_registered(
&self,
_span_id: SpanId,
_parent: TracerQueryKey,
_asset: TracerAssetKey,
)
fn on_asset_dependency_registered( &self, _span_id: SpanId, _parent: TracerQueryKey, _asset: TracerAssetKey, )
Called when an asset dependency is registered during execution.
Sourcefn on_early_cutoff_check(
&self,
_span_id: SpanId,
_query: TracerQueryKey,
_output_changed: bool,
)
fn on_early_cutoff_check( &self, _span_id: SpanId, _query: TracerQueryKey, _output_changed: bool, )
Called when early cutoff comparison is performed.
Sourcefn on_asset_requested(&self, _asset: TracerAssetKey, _state: TracerAssetState)
fn on_asset_requested(&self, _asset: TracerAssetKey, _state: TracerAssetState)
Called when an asset is requested.
Sourcefn on_asset_resolved(&self, _asset: TracerAssetKey, _changed: bool)
fn on_asset_resolved(&self, _asset: TracerAssetKey, _changed: bool)
Called when an asset is resolved with a value.
Sourcefn on_asset_invalidated(&self, _asset: TracerAssetKey)
fn on_asset_invalidated(&self, _asset: TracerAssetKey)
Called when an asset is invalidated.
Sourcefn on_query_invalidated(
&self,
_query: TracerQueryKey,
_reason: InvalidationReason,
)
fn on_query_invalidated( &self, _query: TracerQueryKey, _reason: InvalidationReason, )
Called when a query is invalidated.
Sourcefn on_cycle_detected(&self, _path: Vec<TracerQueryKey>)
fn on_cycle_detected(&self, _path: Vec<TracerQueryKey>)
Called when a dependency cycle is detected.
Sourcefn on_missing_dependency(
&self,
_query: TracerQueryKey,
_dependency_description: String,
)
fn on_missing_dependency( &self, _query: TracerQueryKey, _dependency_description: String, )
Called when a missing dependency error occurs.