Expand description
renacer-core: Zero-dependency tracing primitives
Extracted from renacer to break the renacer→aprender→realizr→renacer circular dependency (PMAT-284). This crate provides:
SpanRecord— Parquet-compatible span schema (W3C Trace Context)LazySpan— Deferred span construction (zero overhead when unused)SpanPool— Memory pool for span allocationsTraceContext/LamportClock— W3C trace context + causal ordering
§Design
This crate has NO dependencies on aprender, realizr, or trueno. It can be used by any crate in the stack for uniform instrumentation.
§Usage in realizr
ⓘ
use renacer_core::LazySpan;
let span = LazySpan::new()
.with_name_static("decode_step")
.with_attribute_static("m", state.m.to_string())
.timed(); // starts timing
// ... GPU work ...
span.finish(); // records durationRe-exports§
pub use lazy_span::LazySpan;pub use phase_timer::PhaseTimer;pub use span_pool::SpanPool;pub use span_record::SpanKind;pub use span_record::SpanRecord;pub use span_record::StatusCode;pub use trace_context::LamportClock;pub use trace_context::TraceContext;
Modules§
- lazy_
span - phase_
timer - PMAT-284: Lightweight sub-phase timing for CPU-GPU pipelining analysis
- span_
pool - span_
record - Parquet-compatible span record schema (Sprint 40 - Golden Thread Core)
- trace_
context
Macros§
- lazy_
span - Convenience macro for creating lazy spans with zero-copy