eth-btc-1000rps.json


Overview

The `eth-btc-1000rps.json` file is a structured JSON document containing detailed performance metrics and configuration options related to a high-throughput load testing scenario with a target of 1000 requests per second (RPS). This file appears to be an output or result report generated by a performance/load testing tool (likely k6 or a similar HTTP load testing framework), focused on testing HTTP request performance and reliability under heavy load conditions.

The file encapsulates:

This data is crucial for analyzing the system's behavior under stress, identifying bottlenecks, and ensuring service-level agreements (SLAs) are met.


Detailed Explanation of the File Structure

The JSON is organized into four main sections:

1. root_group

2. options

3. state

4. metrics


Explanation of Key Metrics

Metric Name

Type

Description

`http_req_failed`

rate

Rate of failed HTTP requests (fail/pass counts and rate).

`http_req_duration`

trend

Duration of HTTP requests including min, median, max, average, and percentiles.

`http_req_duration{expected_response:true}`

trend

Duration filtered for requests receiving expected responses.

`http_req_duration{scenario:rps}`

trend

Duration of requests within the RPS scenario, with threshold on 95th percentile.

`http_req_connecting`

trend

Time spent establishing TCP connections.

`http_req_blocked`

trend

Time HTTP requests were blocked (waiting for a network resource).

`http_req_sending`

trend

Time spent sending HTTP requests.

`http_req_receiving`

trend

Time spent receiving HTTP responses.

`http_req_tls_handshaking`

trend

Time spent performing TLS handshakes (SSL negotiation).

`iterations`

counter

The count and rate of test iterations executed.

`dropped_iterations`

counter

The count and rate of iterations dropped or skipped.

`http_reqs`

counter

Total number of HTTP requests made.

`vus`

gauge

Current number of virtual users active during the test.

`vus_max`

gauge

Maximum number of virtual users during the test.

`data_sent`

counter

Total bytes sent during the test and the rate.

`data_received`

counter

Total bytes received during the test and the rate.

`iteration_duration`

trend

Duration of each iteration cycle.


Important Implementation Details and Algorithms


Usage Examples

This file is primarily consumed by the load testing analysis tools or CI/CD pipelines to:

**Example:**

To analyze the 95th percentile request duration for the RPS scenario:

{
  "metric": "http_req_duration{scenario:rps}",
  "p(95)": 2438.29,
  "threshold_passed": false
}

This indicates that 5% of requests took longer than ~2438 ms, exceeding the 800 ms threshold, signaling a performance bottleneck.


Interaction with Other System Components


Visual Diagram: Metrics Structure Flowchart

flowchart TD
    A[Start: Test Run] --> B[root_group]
    B --> C[options]
    B --> D[state]
    B --> E[metrics]
    
    E --> E1[http_req_failed (rate)]
    E --> E2[http_req_duration (trend)]
    E --> E3[http_req_connecting (trend)]
    E --> E4[dropped_iterations (counter)]
    E --> E5[iterations (counter)]
    E --> E6[vus (gauge)]
    E --> E7[data_sent (counter)]
    E --> E8[data_received (counter)]
    E --> E9[http_req_tls_handshaking (trend)]
    E --> E10[http_req_blocked (trend)]
    E --> E11[http_req_sending (trend)]
    E --> E12[http_req_receiving (trend)]
    E --> E13[http_req_duration{scenario:rps} (trend with thresholds)]
    
    style A fill:#f9f,stroke:#333,stroke-width:2px
    style B fill:#bbf,stroke:#333,stroke-width:1px
    style C fill:#ccf,stroke:#333,stroke-width:1px
    style D fill:#ccf,stroke:#333,stroke-width:1px
    style E fill:#bbf,stroke:#333,stroke-width:1px
    style E1 fill:#aaf,stroke:#333
    style E13 fill:#faa,stroke:#333,stroke-width:2px

Summary

The `eth-btc-1000rps.json` file is a comprehensive metric report from a high-volume HTTP load test. It captures detailed timing, count, and rate statistics critical for analyzing the performance and reliability of web endpoints under stress. The file is structured to support automated threshold checking and detailed trend analysis, making it an essential artifact for performance engineers and DevOps teams focused on maintaining robust, scalable services in cryptocurrency or financial API domains.