Expand description
Tracer trait for observing query-flow execution.
This module defines the Tracer trait and related types for observing
query execution. The default NoopTracer provides zero-cost when tracing
is not needed.
§Example
ⓘ
use query_flow::{QueryRuntime, Tracer, SpanId, TraceId, SpanContext, QueryCacheKey};
// Custom tracer implementation
struct MyTracer;
impl Tracer for MyTracer {
fn new_span_id(&self) -> SpanId {
SpanId(1)
}
fn new_trace_id(&self) -> TraceId {
TraceId(1)
}
fn on_query_start(&self, ctx: &SpanContext, query: &QueryCacheKey) {
println!("Query started: {:?} (trace={:?})", query, ctx.trace_id);
}
}
let runtime = QueryRuntime::with_tracer(MyTracer);Structs§
- Noop
Tracer - Zero-cost tracer that discards all events.
- Span
Context - Context for a span within a trace, providing parent-child relationships.
- SpanId
- Unique identifier for a query execution span.
- TraceId
- Unique identifier for a trace (a complete query execution tree).
Enums§
- Execution
Result - Query execution result classification.
- Invalidation
Reason - Reason for cache invalidation.
- Tracer
Asset State - Asset loading state for tracing.
Traits§
- Tracer
- Tracer trait for observing query-flow execution.