Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Comparer ¶
type Comparer struct {
// contains filtered or unexported fields
}
Comparer compares two traces or a trace against a synthesised baseline.
func New ¶
func New(traces dataplane.TraceReader) *Comparer
New returns a Comparer backed by the given TraceReader.
func (*Comparer) Compare ¶
func (c *Comparer) Compare(ctx context.Context, traceAID, traceBID string) (*TraceComparison, error)
Compare fetches two traces by ID and produces a span-level comparison.
func (*Comparer) CompareBaseline ¶
CompareBaseline compares a trace against a synthesised P50 baseline derived from recent similar traces (same root service).
type ComparisonSummary ¶
type ComparisonSummary struct {
TotalLatencyA float64 `json:"total_latency_a_ms"`
TotalLatencyB float64 `json:"total_latency_b_ms"`
LatencyDelta float64 `json:"latency_delta_ms"`
SlowerSpans int `json:"slower_spans"`
FasterSpans int `json:"faster_spans"`
AddedSpans int `json:"added_spans"`
RemovedSpans int `json:"removed_spans"`
CriticalPath string `json:"critical_path,omitempty"`
}
ComparisonSummary aggregates high-level statistics for a trace comparison.
type SpanMatch ¶
type SpanMatch struct {
Service string `json:"service"`
Action string `json:"action"`
A SpanStats `json:"a"`
B SpanStats `json:"b"`
LatencyDelta float64 `json:"latency_delta_ms"`
LatencyPct float64 `json:"latency_pct"`
StatusChange bool `json:"status_change"`
MetadataDiff map[string][2]string `json:"metadata_diff,omitempty"`
}
SpanMatch represents a pair of spans from two traces that share the same (service, action) key, along with computed deltas.
type SpanStats ¶
type SpanStats struct {
DurationMs float64 `json:"duration_ms"`
StatusCode int `json:"status_code"`
Error string `json:"error,omitempty"`
Metadata map[string]string `json:"metadata,omitempty"`
}
SpanStats captures the key measurements of a single span.
type SpanSummary ¶
type SpanSummary struct {
Service string `json:"service"`
Action string `json:"action"`
DurationMs float64 `json:"duration_ms"`
StatusCode int `json:"status_code"`
}
SpanSummary is a lightweight description of a span that exists in only one side of a comparison.
type TraceComparison ¶
type TraceComparison struct {
TraceA string `json:"trace_a"`
TraceB string `json:"trace_b"`
Matches []SpanMatch `json:"matches"`
OnlyInA []SpanSummary `json:"only_in_a"`
OnlyInB []SpanSummary `json:"only_in_b"`
Summary ComparisonSummary `json:"summary"`
}
TraceComparison is the result of comparing two traces span-by-span.