baseline-1500rps-parallel.json
Overview
`baseline-1500rps-parallel.json` is a JSON-formatted data file that encapsulates detailed performance metrics and runtime state information from a load testing scenario. The file appears to be generated by a performance testing tool (likely [k6](https://k6.io/) or a similar load testing framework) that has executed a test with a baseline throughput of approximately 1500 requests per second (RPS) in parallel.
This file's primary purpose is to provide a comprehensive snapshot of various performance metrics related to HTTP requests, iterations, virtual users, and system state during the test run. It serves as an artifact for analyzing system behavior under load, identifying bottlenecks, verifying thresholds, and supporting performance tuning and capacity planning.
Detailed Explanation of File Structure and Contents
The file is structured as a JSON object with four main top-level keys:
root_group
options
state
metrics
Each key holds information relevant to understanding the test environment, configuration, and outcomes.
1. root_group
This section defines the root grouping for the test metrics and checks.
"root_group": {
"name": "",
"path": "",
"id": "d41d8cd98f00b204e9800998ecf8427e",
"groups": [],
"checks": []
}
name: (string) Name of the group (empty here, indicating root).
path: (string) Path identifier of the group (empty).
id: (string) Unique identifier (hash) for this group.
groups: (array) Sub-groups within this group (empty).
checks: (array) Validation checks associated with this group (empty).
**Usage:** This acts as a container for grouping metrics logically, useful when tests are structured hierarchically.
2. options
This section specifies how the test summary reports should be formatted and displayed.
"options": {
"summaryTrendStats": [
"avg",
"min",
"med",
"max",
"p(90)",
"p(95)",
"p(99)",
"count"
],
"summaryTimeUnit": "",
"noColor": false
}
summaryTrendStats: (array) List of statistical measures included in trend summaries.
Includes average (
avg), minimum (min), median (med), maximum (max), 90th, 95th, and 99th percentiles (p(90),p(95),p(99)), and count of samples.
summaryTimeUnit: (string) Unit of time for summaries (empty here, so defaults are assumed).
noColor: (boolean) Whether to omit color in CLI output (false means color is enabled).
**Usage:** Controls how summary data is presented to users or downstream systems.
3. state
This section captures runtime state information about the test execution environment.
"state": {
"isStdOutTTY": true,
"isStdErrTTY": true,
"testRunDurationMs": 306081.019345
}
isStdOutTTY: (boolean) Whether standard output is a terminal (true).
isStdErrTTY: (boolean) Whether standard error is a terminal (true).
testRunDurationMs: (float) Total test run duration in milliseconds (~306 seconds).
**Usage:** Useful for tools or scripts that adapt output formatting depending on terminal capabilities and for understanding test duration.
4. metrics
The largest and most detailed section, `metrics` contains multiple key-value pairs, each representing a specific metric collected during the test run. Each metric object typically includes:
type: The metric type (
trend,counter,rate, orgauge).contains: What the metric measures (e.g., "time", "default", or "data").
values: Statistical data relevant to the metric.
thresholds (optional): Performance thresholds and whether they passed.
Key Metric Types:
trend: Tracks statistical trends over time (e.g., durations).
counter: Counts occurrences or totals (e.g., number of iterations).
rate: Rates of events per unit time, often with pass/fail counts.
gauge: Instantaneous measurements (e.g., current number of virtual users).
Notable Metrics and Their Meaning
Metric Name | Description | Key Values |
|---|---|---|
`http_req_sending` | Time spent sending HTTP requests | p(99): 0.15 ms, avg: 0.048 ms, max: 13.75 ms, count: 461,906 |
`iterations` | Number and rate of iterations completed | rate: 1509 RPS, count: 461,906 |
`http_req_blocked` | Time HTTP requests spent blocked (e.g., waiting for TCP) | avg: 142 ms (high variance), max: 24,977 ms |
`http_req_failed{scenario:account}` | Failure rate of HTTP requests in "account" scenario | rate: 8.6e-6, passes: 2, fails: 232,061 (very low failure rate) |
`dropped_iterations` | Number and rate of dropped iterations | count: 138,094, rate: 451 iterations per second |
`http_req_duration` | Total HTTP request duration | avg: 3093 ms, median: 1004 ms, max: 10,750 ms |
`http_req_tls_handshaking` | Time spent on TLS handshake | avg: 30 ms, max: 14,974 ms |
`iteration_duration` | Duration of each test iteration | avg: 3236 ms, max: 30,675 ms |
`http_req_connecting` | Time spent establishing TCP connections | avg: 20 ms, max: 8573 ms |
`http_req_duration{expected_response:true}` | Duration for successful responses | avg: 3086 ms, median: 944 ms |
`http_req_duration{status:200}` | Duration for HTTP 200 responses | avg: 3086 ms, median: 944 ms |
`vus` | Number of Virtual Users active | value: 5000, min: 2003, max: 5000 |
`http_req_waiting` | Time spent waiting for response from server | avg: 3092 ms, max: 10,750 ms |
`http_req_failed{scenario:utxos}` | Failure rate in "utxos" scenario | rate: 0.00223, passes: 513, fails: 229,330 |
`http_req_duration{scenario:utxos}` | Duration in "utxos" scenario | avg: 3105 ms, max: 10,634 ms |
`data_received` | Amount of data received | count: 793,599,348 bytes, rate: 2,592,775 bytes/s |
`http_reqs` | Total HTTP requests | count: 461,906, rate: 1509 requests/sec |
`http_req_failed` | Overall failure rate | rate: 0.0011, passes: 515, fails: 461,391 |
`data_sent` | Amount of data sent | count: 66,676,638 bytes, rate: 217,839 bytes/s |
`vus_max` | Maximum Virtual Users during test | value: 5000, min: 2003, max: 5000 |
`http_req_receiving` | Time spent receiving HTTP response body | avg: 1.28 ms, max: 6048 ms |
Example Metric Object Breakdown
"http_req_duration": {
"type": "trend",
"contains": "time",
"values": {
"med": 1004.8354059999999,
"max": 10750.302604,
"p(90)": 6506.2754655,
"p(95)": 6776.87656875,
"p(99)": 7026.40239145,
"count": 461906,
"avg": 3093.9925867483375,
"min": 0
}
}
Purpose: Measures the distribution of HTTP request durations.
Values:
Median (
med): ~1005 msMaximum (
max): ~10.75 secondsPercentiles (
p(90),p(95),p(99)): High percentiles showing tail latencyCount: 461,906 requests
Average: ~3.09 seconds
Minimum: 0 ms (likely instantaneous or failed requests)
Important Implementation Details and Algorithms
Percentile Calculation: The file includes percentiles (90th, 95th, 99th) for latency and timing metrics, which are critical in performance analysis to understand tail latencies rather than average only.
Thresholds: Some metrics include thresholds with pass/fail status, e.g.,
"rate<0.01": { "ok": true }or"p(95) < 800": { "ok": false }. This indicates automated checks to validate performance targets.Metric Types: Different metric types (
trend,rate,counter,gauge) serve to categorize data appropriately, enabling tailored aggregation and reporting.Scenario-specific Metrics: Some metrics are tagged by scenario (e.g.,
{scenario:account}), allowing granular performance analysis per test case or user journey.Dropped Iterations: The file tracks dropped iterations, indicating that some test iterations were aborted or skipped, which may impact result interpretation.
Interaction with Other Parts of the System
Test Execution Engine: This JSON file is generated by the load testing engine that runs a scenario (likely defined elsewhere in the project) simulating virtual users performing HTTP requests.
Analysis Tools: The file serves as input for performance analysis tools or dashboards that visualize or further process these metrics.
Threshold Enforcement: Metrics with thresholds serve as integration points for CI/CD pipelines or alerting systems to automatically verify performance goals.
Scenario Definitions: The presence of scenario-specific metrics implies that this file correlates with scenario configuration files or scripts defining user behavior.
Reporting Modules: The
optionssection suggests customization for how reports are formatted, which downstream reporting components may consume.
Usage Examples
While this file is data rather than executable code, here are example ways it might be used:
Performance Dashboard: Import into a dashboard tool to visualize request durations, failure rates, and throughput.
Automated Validation: Parse metric thresholds to decide if a build passes or fails performance gates.
Trend Analysis: Compare this baseline file against future test runs to identify regressions or improvements.
Capacity Planning: Use
vus,iterations, and latency metrics to model system scaling needs.
Visual Diagram
The diagram below is a **flowchart** illustrating the primary logical relationships among the main sections and key metric types contained in this file.
flowchart TD
A[baseline-1500rps-parallel.json]
A --> B[root_group]
A --> C[options]
A --> D[state]
A --> E[metrics]
E --> E1[trend metrics]
E --> E2[counter metrics]
E --> E3[rate metrics]
E --> E4[gauge metrics]
E1 --> E1a["http_req_duration"]
E1 --> E1b["http_req_sending"]
E1 --> E1c["http_req_blocked"]
E1 --> E1d["iteration_duration"]
E1 --> E1e["http_req_tls_handshaking"]
E2 --> E2a["iterations"]
E2 --> E2b["dropped_iterations"]
E2 --> E2c["data_received"]
E2 --> E2d["data_sent"]
E2 --> E2e["http_reqs"]
E3 --> E3a["http_req_failed"]
E3 --> E3b["http_req_failed{scenario:account}"]
E3 --> E3c["http_req_failed{scenario:utxos}"]
E4 --> E4a["vus"]
E4 --> E4b["vus_max"]
Summary
The `baseline-1500rps-parallel.json` file is a detailed, structured output from a load testing session capturing a wide spectrum of performance metrics at a high request rate. It is instrumental for analyzing system responsiveness, reliability, and capacity under load, enabling data-driven decisions to improve software and infrastructure performance.
This file is not executable code but rather a structured data artifact that integrates with testing frameworks, analysis tools, and reporting systems within the overall software performance testing lifecycle.