tracecompare

package
v1.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 4, 2026 License: MIT Imports: 6 Imported by: 0

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

func (c *Comparer) CompareBaseline(ctx context.Context, traceID string) (*TraceComparison, error)

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL