Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LoopSpan ¶ added in v0.5.1
type LoopSpan struct {
// contains filtered or unexported fields
}
LoopSpan wraps a Span that groups loop iterations. Each call to Iteration creates a child span representing one pass through the loop.
Usage:
ctx, loop := perf.StartLoop(ctx, "process_sessions")
for _, item := range items {
iterCtx, iterSpan := loop.Iteration(ctx)
doWork(iterCtx, item)
iterSpan.End()
}
loop.End()
func StartLoop ¶ added in v0.5.1
StartLoop begins a new loop span. The returned context contains the loop span and should be passed to Iteration. Call loop.End() after the loop completes.
type Span ¶
type Span struct {
// contains filtered or unexported fields
}
Span tracks timing for an operation and its substeps. A Span is not safe for concurrent use from multiple goroutines.
func Start ¶
Start begins a new span. If ctx already has a span, the new one becomes a child. Returns the updated context and the span. Call span.End() when the operation completes.
func (*Span) End ¶
func (s *Span) End()
End completes the span. For root spans, emits a single DEBUG log line with the full timing tree. For child spans, records the duration only. Safe to call multiple times -- subsequent calls are no-ops.
func (*Span) RecordError ¶
RecordError marks the span as errored. Only the first non-nil error is stored; subsequent calls are no-ops. Call this before End() on error paths.