Inference Perf Reports

August 13, 2026 ยท View on GitHub

inference-perf generates detailed reports in JSON format after a benchmark run. These reports help you analyze the performance in depth.

Report Files

By default, reports are saved in a directory named reports-YYYYMMDD-HHMMSS/. The following files are typically generated:

  • summary_lifecycle_metrics.json: Aggregated metrics for the entire benchmark run.
  • stage_N_lifecycle_metrics.json: Metrics for a specific load stage (where N is the stage index).
  • per_request_lifecycle_metrics.json: Raw data for every single request, including timestamps and token counts.
  • config.yaml: A copy of the configuration used for the run.

Understanding the Report Structure

Here is an example snippet from a summary_lifecycle_metrics.json report:

{
  "successes": {
    "count": 480,
    "latency": {
      "request_latency": {
        "mean": 3.31,
        "median": 2.11,
        "p90": 5.94
      },
      "time_to_first_token": {
        "mean": 0.80,
        "median": 0.20,
        "p90": 2.26
      }
    },
    "throughput": {
      "requests_per_sec": 1.02,
      "total_tokens_per_sec": 676.12
    }
  },
  "failures": {
    "count": 3,
    "request_latency": {
      "mean": 9.948665728999458,
      "min": 0.5831485409980814,
      "p90": 11.684405915999378
    },
    "prompt_tokens": {
      "total": 0.0,
      "cached": 0.0,
      "uncached": 0.0,
      "mean": 0.0,
      "min": 0.0,
      "p90": 0.0,
    },
    "by_label": {
      "504 - Gateway Timeout": {
        "count": 2,
        "messages": [
          {
            "message": "...504 Gateway Time-out...",
            "session_ids": [
              "trace1715_066de3655406_a9687407",
              "trace2210_1f9b0c4d7e21_b3c58120"
            ]
          }
        ]
      },
      "400 - Invalid JSON": {
        "count": 1,
        "messages": [
          {
            "message": "...Invalid JSON: EOF while parsing a string at line 202 column 31...",
            "session_ids": [
              "trace42_9f000393d262_f395c930"
            ]
          }
        ]
      }
    }
  }
}

(Note: Actual reports contain more percentiles and metrics).

Key Sections

  • load_summary: Details about the requested vs achieved load.
  • successes: Metrics for successful requests.
  • failures: Metrics for failed requests, including the per-label error breakdown.
  • goodput_metrics: (Optional) Goodput statistics if constraints were configured.