Versions in this module Expand all Collapse all v0 v0.1.0 Aug 18, 2026 Changes in this version + const DefaultAgentTimeout + const DefaultMaxRunHistory + const DefaultStartDelay + const PhaseAborted + const PhaseCompleted + const PhaseFailed + const PhasePending + const PhaseRunning + const PhaseStarting + const PhaseStopping + const UpdateEvent + const UpdateTick + func AnyBreached(results []ThresholdResult) bool + func IsTerminal(phase loadwavev1.RunPhase) bool + func NewRunID(now time.Time) string + func PhaseName(phase loadwavev1.RunPhase) string + type AgentInfo struct + ActiveVUs uint32 + CPUPercent float64 + Cores uint32 + Healthy bool + HealthyWorkers uint32 + Hostname string + ID string + JoinedAt time.Time + Labels map[string]string + LastSeen time.Time + MaxVUs uint32 + MaxWorkers uint32 + MemBytes uint64 + RemoteAddr string + VUQuota int + Version string + Workers []WorkerInfo + type Config struct + AgentTimeout time.Duration + HeartbeatInterval time.Duration + ListenAddr string + Logger *slog.Logger + MaxRunHistory int + MetricsInterval time.Duration + StartDelay time.Duration + Store metrics.StoreConfig + type Coordinator struct + func New(cfg Config) (*Coordinator, error) + func (c *Coordinator) ActiveRun() *Run + func (c *Coordinator) Addr() string + func (c *Coordinator) Agents() []AgentInfo + func (c *Coordinator) GlobalEvents() []Event + func (c *Coordinator) Lookup(runID string) (*Run, bool) + func (c *Coordinator) OnHeartbeat(session *control.Session, beat *loadwavev1.NodeHeartbeat) + func (c *Coordinator) OnJoin(_ context.Context, session *control.Session) error + func (c *Coordinator) OnLeave(session *control.Session) + func (c *Coordinator) OnLog(session *control.Session, event *loadwavev1.LogEvent) + func (c *Coordinator) OnMetrics(_ *control.Session, batch *loadwavev1.MetricBatch) + func (c *Coordinator) OnRunStatus(session *control.Session, update *loadwavev1.RunStatusUpdate) + func (c *Coordinator) Run(ctx context.Context) error + func (c *Coordinator) RunSnapshot(runID string) (Snapshot, bool) + func (c *Coordinator) Runs() []Summary + func (c *Coordinator) ScaleRun(runID string, peakVUs int, ramp time.Duration) error + func (c *Coordinator) Snapshot() Snapshot + func (c *Coordinator) StartRun(cfg *scenario.Config, sourcePath string) (*Run, error) + func (c *Coordinator) StopRun(runID string, graceful bool, reason string) error + func (c *Coordinator) Subscribe() *Subscription + type EndpointTick struct + Avg float64 + ErrorRate float64 + Requests uint64 + type Event struct + Fields map[string]string + Level string + Message string + Source string + Time time.Time + type Run struct + func (r *Run) Active() bool + func (r *Run) Breached() bool + func (r *Run) Events() []Event + func (r *Run) GraceBudget() time.Duration + func (r *Run) ID() string + func (r *Run) Participants() []participant + func (r *Run) Phase() loadwavev1.RunPhase + func (r *Run) Plan() *loadwavev1.TestPlan + func (r *Run) SourcePath() string + func (r *Run) StoppingFor() time.Duration + func (r *Run) Store() *metrics.Store + func (r *Run) Summary(profile string) Summary + func (r *Run) Thresholds() []ThresholdResult + type ScenarioTick struct + ErrorRate float64 + Iterations uint64 + P95 float64 + Requests uint64 + VUs float64 + type Snapshot struct + Agents []AgentInfo + Build buildinfo.Info + Endpoints []metrics.EndpointSummary + Events []Event + Failures []metrics.FailureSummary + Resolution float64 + Run *Summary + Runs []Summary + Series []metrics.SeriesSummary + Ticks []TickDTO + Totals map[string]metrics.SeriesSummary + type Subscription struct + func (s *Subscription) Close() + func (s *Subscription) Done() <-chan struct{} + func (s *Subscription) Updates() <-chan Update + type Summary struct + BaseURL string + Breached bool + CreatedAt time.Time + ElapsedSec float64 + EndedAt time.Time + Failure string + ID string + Name string + Participants []participant + PeakVUs int + Phase string + Profile string + StartAt time.Time + StartedAt time.Time + Stats metrics.Stats + StopReason string + Tags map[string]string + Thresholds []ThresholdResult + type ThresholdResult struct + AbortOnFail bool + Actual float64 + Description string + Evaluated bool + Metric string + Op string + Passed bool + Stat string + Value float64 + func AbortRequested(results []ThresholdResult) (ThresholdResult, bool) + func EvaluateThresholds(store *metrics.Store, thresholds []*loadwavev1.Threshold) []ThresholdResult + type TickDTO struct + Avg float64 + Endpoints map[string]EndpointTick + ErrorRate float64 + Failures uint64 + Iterations uint64 + P50 float64 + P90 float64 + P95 float64 + P99 float64 + RPS float64 + Requests uint64 + Scenarios map[string]ScenarioTick + Status map[string]uint64 + T int64 + VUs uint32 + type Update struct + Agents []AgentInfo + Events []Event + Run *Summary + Thresholds []ThresholdResult + Ticks []TickDTO + Type string + type WorkerInfo struct + ActiveVUs uint32 + CPUPercent float64 + ID string + Index uint32 + MemBytes uint64