Skip to content

Add per-stage summaries to benchmark output#55

Open
tlrmchlsmth wants to merge 3 commits into
mainfrom
per-stage-summary
Open

Add per-stage summaries to benchmark output#55
tlrmchlsmth wants to merge 3 commits into
mainfrom
per-stage-summary

Conversation

@tlrmchlsmth

Copy link
Copy Markdown
Member

Summary

  • When running multi-stage benchmarks (sweeps), the JSON summary now includes a stages array with per-stage stats: concurrency, duration, request count, error rate, throughput (tok/s), TTFT, ITL, and E2E latency percentiles
  • Each stage's stats are computed by filtering request records to the stage's time window using the existing Compute() function
  • Enables downstream tooling (pareto charts, regression detection) to analyze performance at each concurrency level without post-processing raw JSONL

Test plan

  • New unit tests for ComputeStages and empty input
  • Full test suite passes (go test ./...)

🤖 Generated with Claude Code

tlrmchlsmth and others added 3 commits May 19, 2026 13:50
When running multi-stage benchmarks (sweeps), the JSON summary now
includes a `stages` array with per-stage statistics: concurrency,
duration, request count, error rate, throughput, TTFT, ITL, and E2E
latency percentiles.

Each stage's stats are computed by filtering request records to the
stage's time window using the existing Compute() function.

This enables downstream tooling (pareto charts, regression detection)
to analyze performance at each concurrency level without needing to
post-process raw JSONL records.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Tyler Michael Smith <tlrmchlsmth@gmail.com>
When --json is set, all slog output is discarded and the human-readable
summary banner is skipped. Only the JSON summary is printed to stdout,
making it easy to collect results programmatically.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Tyler Michael Smith <tlrmchlsmth@gmail.com>
Bool flags like --json should be passed as just --json, not --json true.
The latter causes cobra to interpret "true" as a positional argument.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Tyler Michael Smith <tlrmchlsmth@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant