---
title: "Get the last benchmark report"
method: GET
path: "/benchmark/report"
tags: ["Benchmark"]
---

# Get the last benchmark report

`GET /benchmark/report`

Returns the full benchmark report from the most recent completed
(or cancelled) run. Includes scenario results, driver metrics,
explain plans, dataset/index fingerprints, and noisy-neighbour
analysis with severity levels, remediation guidance, and a
cross-correlated probable cause.

## Response `200`

Benchmark report

- BenchmarkReport — Full benchmark report. Designed to be JSON-serialised, written to disk, and compared across environments to detect noisy-neighbour impact.
  - `environment` string — Machine name where the benchmark ran.
  - `timestampUtc` string, date-time
  - `config` BenchmarkConfig — Configuration for a benchmark run. All values have safe defaults designed to avoid overloading a shared production database. Omit the body entirely to use all defaults.
    - `seedCount` integer — Number of deterministic seed records to create.
    - `concurrency` integer — Maximum degree of parallelism for scenario execution.
    - `duration` string — Total benchmark duration (TimeSpan format, e.g. '00:03:00'). Scenarios loop until this elapses.
    - `throttleDelay` string — Delay injected between every Mongo operation (TimeSpan format, e.g. '00:00:00.010').
    - `collectionPrefix` string — Prefix applied to all temporary benchmark collections.
  - `status` string — Completed, Cancelled, or Failed: <message>.
  - `totalElapsedSeconds` number, double
  - `datasetFingerprints` DatasetFingerprint[]
    - `collectionName` string
    - `documentCount` integer
    - `avgDocumentSizeBytes` number, double
    - `p95DocumentSizeBytes` number, double
  - `indexFingerprints` IndexFingerprint[]
    - `collectionName` string
    - `indexName` string
    - `keyDefinition` object — BSON key definition document.
    - `isUnique` boolean
  - `scenarioResults` ScenarioResult[] — Results for each scenario: PointLookup, RangeQuery, Aggregation, BulkWrite, MiniETL.
    - `scenarioName` string
    - `totalOperations` integer
    - `errorCount` integer
    - `elapsedSeconds` number, double
    - `opsPerSecond` number, double — Wall-clock throughput.
    - `effectiveOpsPerSecond` number, double — Throughput excluding throttle wait time — pure Mongo performance.
    - `latency` LatencyStats — Percentile latency statistics in milliseconds.
      - `avgMs` number, double
      - `p50Ms` number, double
      - `p95Ms` number, double
      - `p99Ms` number, double
      - `minMs` number, double
      - `maxMs` number, double
  - `driverMetrics` DriverMetrics — Aggregated MongoDB driver command and connection-pool statistics.
    - `commandLatency` object — Per-command-type latency breakdown (e.g. find, update, aggregate).
    - `commandFailures` object — Total count of failed commands by command name.
    - `connectionCheckoutWait` LatencyStats — Percentile latency statistics in milliseconds.
      - `avgMs` number, double
      - `p50Ms` number, double
      - `p95Ms` number, double
      - `p99Ms` number, double
      - `minMs` number, double
      - `maxMs` number, double
    - `checkoutFailures` integer — Number of checkout failures (pool exhausted).
    - `connectionsCreated` integer
    - `connectionsClosed` integer
    - `poolClearedEvents` integer — Number of times the driver was forced to reset the connection pool.
  - `explainResults` ExplainResult[]
    - `queryName` string — Name of the explained query: PointLookup, RangeQuery, or Aggregation.
    - `winningPlan` string — JSON representation of the winning query plan.
    - `totalDocsExamined` integer
    - `totalKeysExamined` integer
    - `nReturned` integer
    - `rawExplain` object, nullable — Full raw explain output (BSON document).
  - `noisyNeighbourAnalysis` NoisyNeighbourAnalysis — Diagnostic analysis for noisy-neighbour indicators. Cross-correlates connection pool health, command latency, and scenario errors to produce a probable root cause.
    - `hasRedFlags` boolean — True if any red flag fired.
    - `overallRisk` 'None' | 'Warning' | 'Critical' — Highest severity across all flags.
    - `probableCause` string, nullable — Plain-language root-cause diagnosis based on cross-correlation of multiple flags. Null when no flags are present.
    - `flags` RedFlag[]
      - `category` string — Machine-readable category for comparison tooling.
      - `severity` 'None' | 'Warning' | 'Critical'
      - `description` string — Human-readable description of the problem observed.
      - `remediation` string — Actionable guidance on what to investigate next.
      - `observedValue` number, double — The observed value that triggered the flag.
      - `threshold` number, double — The threshold that was exceeded.

## Other responses

- `404` — No benchmark report available

---

[API](https://skmtc.net/defra/apis/keeper-data-bridge-api.md) · [All operations](https://skmtc.net/defra/apis/keeper-data-bridge-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/defra/keeper-data-bridge-api/versions/0ab7d7a7a24f/schema)
