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:
state: Contains metadata about the test environment and execution state.
metrics: Holds detailed performance metrics organized by metric name.
root_group: Represents the hierarchical grouping structure of the test, typically empty for this report.
options: Configuration options used during the test execution and report generation.
Detailed Explanation of Sections
1. state
This object provides contextual information about the test run environment:
Property | Type | Description |
|---|---|---|
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:
type: The nature of the metric (e.g.,trend,counter,rate,gauge).contains: The type of data the metric contains (e.g.,time,default,data).values: Statistical values recorded for the metric.thresholds(optional): Conditions and pass/fail results based on thresholds.
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.:
http_req_duration{scenario:utxos}: Duration metrics for the "utxos" scenario.http_req_failed{scenario:account}: Failure rates for the "account" scenario.http_req_duration{status:200}: Duration metrics for HTTP 200 OK responses.http_req_duration{expected_response:true}: Duration metrics where response matched expected criteria.
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"
}
Description: Captures the total duration of HTTP requests.
Values:
count: Number of requests measured.avg: Average request duration in milliseconds.min,med,max: Minimum, median, and maximum durations.p(90),p(95),p(99): 90th, 95th, and 99th percentile durations.
3. root_group
This section represents the root of the test grouping hierarchy.
name,path: Empty strings indicating root level.id: A unique identifier (MD5 hash).groups: An empty array, meaning no nested groups.checks: An empty array, meaning no checks associated.
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
This file is generated automatically by a load testing tool (likely k6, given metric naming conventions).
It serves as input for further analysis tools, dashboards, or report generators.
Engineers and performance analysts use it to:
Assess system performance and stability under a 1000 RPS load.
Identify latency distributions and bottlenecks (e.g., connecting delays, request sending).
Track virtual user behavior and iteration success/failure rates.
Validate service-level agreements (SLA) via threshold checks.
Measure data throughput (sent/received).
Important Implementation Details and Algorithms
Trend metrics capture distributional statistics including percentiles (p90, p95, p99), important for understanding tail latencies.
Counter metrics track cumulative counts and rates over the test duration.
Rate metrics provide pass/fail ratios for requests, allowing quality assessment.
The presence of scenario-scoped metrics indicates the test script includes multiple scenarios (e.g., "utxos", "account").
Thresholds embedded within some metrics automate pass/fail checks for key performance indicators.
Percentiles and averages are computed by the load testing engine during runtime and aggregated post-test.
Interaction with Other System Components
Load Testing Tool: This JSON is output by the load testing tool after executing the test script. It reflects the runtime data collected by the tool.
Analysis Tools/Dashboards: Consumed by visualization tools or CI pipelines to present performance insights.
Test Scripts: The scenarios referenced (
utxos,account) correspond to specific script definitions or user journeys in the test.CI/CD Pipelines: May use this file to validate performance regressions or improvements automatically.
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.