baseline-1000rps-5min.json


Overview

The [baseline-1000rps-5min.json](/projects/291/69323) file is a structured JSON report capturing detailed performance metrics from a load testing session. The test simulates a baseline scenario running at approximately 1000 requests per second (RPS) over a duration of 5 minutes. It records various HTTP request timings, iteration statistics, virtual user (VU) counts, and data transfer volumes.

This file is primarily used for performance analysis and benchmarking of web services or APIs, helping engineers understand system behavior under load, identify bottlenecks, and validate service-level objectives (SLOs).


Structure and Contents

The JSON file is organized into several key top-level sections:


Detailed Explanation of Sections

1. state

This object provides contextual information about the test run environment:

Property

Type

Description

testRunDurationMs

Number

Total duration of the test run in milliseconds (~600,150 ms or ~10 minutes).

`isStdOutTTY`

Boolean

Indicates if standard output is a TTY (interactive terminal).

`isStdErrTTY`

Boolean

Indicates if standard error is a TTY.


2. metrics

This is the core section containing performance metrics. Each metric is keyed by its name and includes:

Metrics are typically grouped by the kind of measurement they represent:

Types of Metrics and Their Meaning

Metric Name

Type

Description

`http_req_sending`

trend

Time spent sending HTTP requests to the server.

`http_req_duration`

trend

Total duration for HTTP requests (including connecting, sending, waiting, receiving).

`http_req_connecting`

trend

Time spent establishing TCP connections.

`iteration_duration`

trend

Duration of each virtual user iteration (one cycle of the test script).

`http_reqs`

counter

Total number of HTTP requests made.

`dropped_iterations`

counter

Number of iterations dropped (not completed or aborted).

`http_req_waiting`

trend

Time spent waiting for server response after sending request.

`http_req_failed`

rate

Rate of failed requests. Includes passes and fails count.

`data_received`

counter

Total bytes of data received from the server.

`data_sent`

counter

Total bytes of data sent to the server.

`vus_max`

gauge

Maximum number of virtual users active during the test.

`vus`

gauge

Number of virtual users active at a given time.

Metrics with Scenario or Status Filters

Some metrics are scoped to specific scenarios or HTTP status codes, e.g.:


Example Metric Entry:

"http_req_duration": {
    "contains": "time",
    "values": {
        "count": 591642,
        "avg": 146.43815821380343,
        "min": 132.145981,
        "med": 143.227349,
        "max": 4043.266999,
        "p(90)": 153.7611201,
        "p(95)": 159.74708569999999,
        "p(99)": 182.44546220999985
    },
    "type": "trend"
}

3. root_group

This section represents the root of the test grouping hierarchy.

This structure suggests a flat test without defined sub-groups or checkpoints.


4. options

Contains options that influence report generation or test execution:

Property

Type

Description

`summaryTrendStats`

Array

List of statistics to include in summary trends (e.g., avg, min, med, max, percentiles, count).

`summaryTimeUnit`

String

Unit for time summaries (empty means default unit is used).

`noColor`

Boolean

If true, disables colorized output in terminals.


Usage and Context


Important Implementation Details and Algorithms


Interaction with Other System Components


Examples of Usage

Example 1: Analyzing Average HTTP Request Duration

const metrics = baseline["metrics"]["http_req_duration"]["values"];
console.log(`Average HTTP Request Duration: ${metrics.avg} ms`);

Output:

Average HTTP Request Duration: 146.44 ms

Example 2: Checking if 95th Percentile Latency Threshold Passed for "utxos" Scenario

const utxos95 = baseline["metrics"]["http_req_duration{scenario:utxos}"]["values"]["p(95)"];
const thresholdOk = baseline["metrics"]["http_req_duration{scenario:utxos}"]["thresholds"]["p(95) < 800"]["ok"];

console.log(`95th percentile latency for 'utxos': ${utxos95} ms`);
console.log(`Threshold met: ${thresholdOk}`);

Output:

95th percentile latency for 'utxos': 157.62 ms
Threshold met: true

Mermaid Diagram: Metrics Flowchart

flowchart TD
    A[Start: Test Execution]
    A --> B[Collect HTTP Request Metrics]
    B --> B1[http_req_sending (Trend)]
    B --> B2[http_req_connecting (Trend)]
    B --> B3[http_req_duration (Trend)]
    B --> B4[http_req_waiting (Trend)]
    B --> B5[http_req_receiving (Trend)]
    B --> B6[http_reqs (Counter)]
    B --> B7[http_req_failed (Rate)]
    B --> C[Collect Iteration Metrics]
    C --> C1[iteration_duration (Trend)]
    C --> C2[dropped_iterations (Counter)]
    C --> D[Collect VU Metrics]
    D --> D1[vus (Gauge)]
    D --> D2[vus_max (Gauge)]
    D --> E[Data Transfer Metrics]
    E --> E1[data_sent (Counter)]
    E --> E2[data_received (Counter)]
    B1 --> F[Output metrics JSON]
    B2 --> F
    B3 --> F
    B4 --> F
    B5 --> F
    B6 --> F
    B7 --> F
    C1 --> F
    C2 --> F
    D1 --> F
    D2 --> F
    E1 --> F
    E2 --> F

Summary

The [baseline-1000rps-5min.json](/projects/291/69323) file is a comprehensive performance report from a load test simulating 1000 RPS over 5 minutes. It provides critical metrics on request timings, iteration durations, user load, and data throughput. These insights enable detailed performance analysis and SLA validation for web services under test. The file structure supports automated threshold checks and scenario-specific analyses, making it a valuable artifact in performance engineering workflows.