Skip to content

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Aug 26, 2025

This PR contains the following updates:

Package Update Change
ghcr.io/apollographql/router minor v2.5.0 -> v2.6.0

Release Notes

apollographql/router (ghcr.io/apollographql/router)

v2.6.0

Compare Source

🚀 Features

[Subgraph Insights] Experimental Apollo Subgraph Fetch Histogram (PR #​8013, PR #​8045)

This change adds a new, experimental histogram to capture subgraph fetch duration for GraphOS. This will
eventually be used to power subgraph-level insights in Apollo Studio.

This can be toggled on using a new boolean config flag:

telemetry:
  apollo:
    experimental_subgraph_metrics: true

The new instrument is only sent to GraphOS and is not available in 3rd-party OTel export targets. It is not currently
customizable. Users requiring a customizable alternative can use the existing http.client.request.duration
instrument, which measures the same value.

By @​rregitsky in #​8013 and #​8045

Redis cache metrics (PR #​7920)

The router now provides Redis cache monitoring with new metrics that help track performance, errors, and resource usage.

Connection and performance metrics:

  • apollo.router.cache.redis.connections: Number of active Redis connections
  • apollo.router.cache.redis.command_queue_length: Commands waiting to be sent to Redis, indicates if Redis is keeping up with demand
  • apollo.router.cache.redis.commands_executed: Total number of Redis commands executed
  • apollo.router.cache.redis.redelivery_count: Commands retried due to connection issues
  • apollo.router.cache.redis.errors: Redis errors by type, to help diagnose authentication, network, and configuration problems

Experimental performance metrics:

  • experimental.apollo.router.cache.redis.network_latency_avg: Average network latency to Redis
  • experimental.apollo.router.cache.redis.latency_avg: Average Redis command execution time
  • experimental.apollo.router.cache.redis.request_size_avg: Average request payload size
  • experimental.apollo.router.cache.redis.response_size_avg: Average response payload size

[!NOTE]
The experimental metrics may change in future versions as we improve the underlying Redis client integration.

You can configure how often metrics are collected using the metrics_interval setting:

supergraph:
  query_planning:
    cache:
      redis:
        urls: ["redis://localhost:6379"]
        ttl: "60s"
        metrics_interval: "1s"  # Collect metrics every second (default: 1s)

By @​BrynCooke in #​7920

Granular license enforcement (PR #​7917)

The router license functionality now allows granular specification of features enabled to support current and future pricing plans.

By @​DMallare in #​7917

Additional Connector Custom Instrument Selectors (PR #​8045)

This adds new custom instrument selectors for Connectors and enhances some existing selectors. The new selectors are:

  • supergraph_operation_name
    • The supergraph's operation name
  • supergraph_operation_kind
    • The supergraph's operation type (e.g. query, mutation, subscription)
  • request_context
    • Takes the value of the given key on the request context
  • connector_on_response_error
    • Returns true when the response does not meet the is_successful condition. Or, if that condition is not set,
      returns true when the response has a non-200 status code

These selectors were modified to add additional functionality:

  • connector_request_mapping_problems
    • Adds a new boolean variant that will return true when a mapping problem exists on the request
  • connector_response_mapping_problems
    • Adds a new boolean variant that will return true when a mapping problem exists on the response

By @​rregitsky in #​8045

Enable jemalloc on MacOS (PR #​8046)

This PR enables the jemalloc allocator on MacOS by default, making it easier to do memory profiling. Previously, this was only done for Linux.

By @​Velfi in #​8046

🐛 Fixes

Entity caching: fix inconsistency in cache-control header handling (PR #​7987)

When the Subgraph Entity Caching feature is in use, it determines the Cache-Control HTTP response header sent to supergraph clients based on those received from subgraph servers.
In this process, Apollo Router only emits the max-age directive and not s-maxage.
This PR fixes a bug where, for a query that involved a single subgraph fetch that was not already cached, the subgraph response’s Cache-Control header would be forwarded as-is.
Instead, it now goes through the same algorithm as other cases.

By @​SimonSapin in #​7987

Query planning errors with progressive override on interface implementations (PR #​7929)

The router now correctly generates query plans when using progressive override (@override with labels) on types that implement interfaces within the same subgraph. Previously, the Rust query planner would fail to generate plans for these scenarios with the error "Was not able to find any options for {}: This shouldn't have happened.", while the JavaScript planner handled them correctly.

This fix resolves planning failures when your schema uses:

  • Interface implementations local to a subgraph
  • Progressive override directives on both the implementing type and its fields
  • Queries that traverse through the overridden interface implementations

The router will now successfully plan and execute queries that previously resulted in query planning errors.

By @​TylerBloom in #​7929

Reliably distinguish GraphQL errors and transport errors in subscriptions (PR #​7901)

The Multipart HTTP protocol for GraphQL Subscriptions distinguishes between GraphQL-level errors and fatal transport-level errors. The router previously used a heuristic to determine if a given error was fatal or not, which could sometimes cause errors to be wrongly classified. For example, if a subgraph returned a GraphQL-level error for a subscription and then immediately ended the subscription, the router might propagate this as a fatal transport-level error.

This is now fixed. Fatal transport-level errors are tagged as such when they are constructed, so the router can reliably know how to serialize errors when sending them to the client.

By @​goto-bus-stop in #​7901

📚 Documentation

Update Documentation To Add DockerHub References

Now that we have a DockerHub account we have published the Runtime Container to that account.
This fix simply adds a reference to that to the documentation

By @​jonathanrainer in #​8054


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the dependencies Pull requests that update a dependency file label Aug 26, 2025
@github-actions
Copy link

github-actions bot commented Aug 26, 2025

Overview for: federation/constant-vus-subgraphs-delay-resources

This scenario runs 4 subgraphs and a GraphQL gateway with Federation spec, and runs a heavy query. It's being executed with a constant amount of VUs over a fixed amount of time. It measure things like memory usage, CPU usage, average RPS. It also includes a summary of the entire execution, and metrics information about HTTP execution times.

This scenario was running 500 VUs over 30s

Comparison

Comparison

Gateway RPS ⬇️ Requests Duration Notes
cosmo 178 5951 total, 0 failed avg: 1323ms, p95: 3270ms
grafbase 167 5226 total, 0 failed avg: 1512ms, p95: 3992ms
apollo-router 157 4938 total, 9 failed avg: 1606ms, p95: 4041ms ❌ 9 failed requests, 9 non-200 responses, 12 unexpected GraphQL errors, non-compatible response structure (1)
hive-gateway 91 3190 total, 0 failed avg: 4969ms, p95: 32898ms
hive-gateway-bun 87 3057 total, 0 failed avg: 5170ms, p95: 8930ms
apollo-server 86 3050 total, 0 failed avg: 5306ms, p95: 33383ms
mercurius 74 2456 total, 0 failed avg: 6367ms, p95: 9493ms
Summary for: `cosmo`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 17793      ✗ 0    
     data_received..................: 522 MB  16 MB/s
     data_sent......................: 7.1 MB  212 kB/s
     http_req_blocked...............: avg=2.57ms   min=1.48µs  med=3.3µs    max=1.56s  p(90)=12.06µs  p(95)=11.03ms
     http_req_connecting............: avg=2.36ms   min=0s      med=0s       max=1.56s  p(90)=0s       p(95)=10.81ms
     http_req_duration..............: avg=1.32s    min=3.23ms  med=1.11s    max=7.16s  p(90)=2.33s    p(95)=3.26s  
       { expected_response:true }...: avg=1.32s    min=3.23ms  med=1.11s    max=7.16s  p(90)=2.33s    p(95)=3.26s  
     http_req_failed................: 0.00%   ✓ 0          ✗ 5951 
     http_req_receiving.............: avg=356.25ms min=31.22µs med=80.66µs  max=6.76s  p(90)=1.21s    p(95)=2.47s  
     http_req_sending...............: avg=20.47ms  min=8.15µs  med=14.39µs  max=4.5s   p(90)=338.84µs p(95)=4.78ms 
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s     p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=946.56ms min=3.09ms  med=937.71ms max=3.26s  p(90)=1.51s    p(95)=1.8s   
     http_reqs......................: 5951    178.321737/s
     iteration_duration.............: avg=2.72s    min=22.69ms med=2.4s     max=11.75s p(90)=5.08s    p(95)=6.12s  
     iterations.....................: 5931    177.722437/s
     vus............................: 257     min=257      max=500
     vus_max........................: 500     min=500      max=500

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `grafbase`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 15618      ✗ 0    
     data_received..................: 459 MB  15 MB/s
     data_sent......................: 6.2 MB  199 kB/s
     http_req_blocked...............: avg=3.43ms   min=1.43µs  med=4µs      max=2.3s     p(90)=39.01µs p(95)=25.75ms
     http_req_connecting............: avg=2.51ms   min=0s      med=0s       max=385.46ms p(90)=0s      p(95)=25.42ms
     http_req_duration..............: avg=1.51s    min=3.24ms  med=1.18s    max=8.01s    p(90)=3.39s   p(95)=3.99s  
       { expected_response:true }...: avg=1.51s    min=3.24ms  med=1.18s    max=8.01s    p(90)=3.39s   p(95)=3.99s  
     http_req_failed................: 0.00%   ✓ 0          ✗ 5226 
     http_req_receiving.............: avg=608.26ms min=37.14µs med=136.92µs max=7.23s    p(90)=2.16s   p(95)=3.02s  
     http_req_sending...............: avg=43.64ms  min=8.24µs  med=18.47µs  max=5.74s    p(90)=1.4ms   p(95)=24.84ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s       p(90)=0s      p(95)=0s     
     http_req_waiting...............: avg=860.06ms min=3.15ms  med=816.24ms max=4.02s    p(90)=1.57s   p(95)=1.92s  
     http_reqs......................: 5226    167.313571/s
     iteration_duration.............: avg=2.91s    min=23.24ms med=2.48s    max=13.77s   p(90)=6s      p(95)=7.22s  
     iterations.....................: 5206    166.673259/s
     vus............................: 163     min=163      max=500
     vus_max........................: 500     min=500      max=500

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `apollo-router`

K6 Output

     ✗ response code was 200
      ↳  99% — ✓ 4909 / ✗ 9
     ✗ no graphql errors
      ↳  99% — ✓ 4906 / ✗ 12
     ✗ valid response structure
      ↳  99% — ✓ 4908 / ✗ 1

     █ setup

     checks.........................: 99.85% ✓ 14723      ✗ 22   
     data_received..................: 433 MB 14 MB/s
     data_sent......................: 5.9 MB 187 kB/s
     http_req_blocked...............: avg=13.52ms  min=1.43µs  med=3.57µs  max=5.14s p(90)=2.5ms    p(95)=21.83ms
     http_req_connecting............: avg=11.95ms  min=0s      med=0s      max=1.7s  p(90)=2.02ms   p(95)=21.6ms 
     http_req_duration..............: avg=1.6s     min=6.64ms  med=1.26s   max=7.98s p(90)=3.35s    p(95)=4.04s  
       { expected_response:true }...: avg=1.6s     min=6.64ms  med=1.26s   max=7.98s p(90)=3.35s    p(95)=4.04s  
     http_req_failed................: 0.18%  ✓ 9          ✗ 4929 
     http_req_receiving.............: avg=527.94ms min=0s      med=97.22µs max=6.02s p(90)=1.87s    p(95)=2.9s   
     http_req_sending...............: avg=28.56ms  min=7.96µs  med=16.07µs max=4.52s p(90)=727.92µs p(95)=20.69ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s      max=0s    p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=1.04s    min=6.57ms  med=960.7ms max=3.73s p(90)=1.96s    p(95)=2.34s  
     http_reqs......................: 4938   157.225178/s
     iteration_duration.............: avg=3.07s    min=31.35ms med=2.48s   max=16.9s p(90)=6.08s    p(95)=7.76s  
     iterations.....................: 4918   156.588381/s
     vus............................: 244    min=244      max=500
     vus_max........................: 500    min=500      max=500

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `hive-gateway`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 9510      ✗ 0    
     data_received..................: 280 MB  8.0 MB/s
     data_sent......................: 3.8 MB  109 kB/s
     http_req_blocked...............: avg=3.11ms min=2.08µs   med=4.57µs  max=142.77ms p(90)=13.97ms  p(95)=30.37ms
     http_req_connecting............: avg=2.99ms min=0s       med=0s      max=43.46ms  p(90)=13.35ms  p(95)=30ms   
     http_req_duration..............: avg=4.96s  min=12.49ms  med=2.11s   max=34.44s   p(90)=12.88s   p(95)=32.89s 
       { expected_response:true }...: avg=4.96s  min=12.49ms  med=2.11s   max=34.44s   p(90)=12.88s   p(95)=32.89s 
     http_req_failed................: 0.00%   ✓ 0         ✗ 3190 
     http_req_receiving.............: avg=7.69ms min=37.9µs   med=95.69µs max=693.05ms p(90)=667.87µs p(95)=6.67ms 
     http_req_sending...............: avg=1.21ms min=9.85µs   med=26.16µs max=218.61ms p(90)=1.04ms   p(95)=4.17ms 
     http_req_tls_handshaking.......: avg=0s     min=0s       med=0s      max=0s       p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=4.96s  min=12.36ms  med=2.1s    max=34.43s   p(90)=12.88s   p(95)=32.74s 
     http_reqs......................: 3190    91.390365/s
     iteration_duration.............: avg=5.1s   min=125.37ms med=2.2s    max=34.44s   p(90)=13.26s   p(95)=32.96s 
     iterations.....................: 3170    90.817385/s
     vus............................: 107     min=107     max=500
     vus_max........................: 500     min=500     max=500

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `hive-gateway-bun`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 9111      ✗ 0    
     data_received..................: 268 MB  7.7 MB/s
     data_sent......................: 3.6 MB  104 kB/s
     http_req_blocked...............: avg=7.1ms   min=1.8µs    med=3.97µs   max=124.53ms p(90)=34.45ms p(95)=60.35ms 
     http_req_connecting............: avg=6.92ms  min=0s       med=0s       max=113.23ms p(90)=34.38ms p(95)=58.99ms 
     http_req_duration..............: avg=5.16s   min=15ms     med=4.63s    max=12.01s   p(90)=8.44s   p(95)=8.93s   
       { expected_response:true }...: avg=5.16s   min=15ms     med=4.63s    max=12.01s   p(90)=8.44s   p(95)=8.93s   
     http_req_failed................: 0.00%   ✓ 0         ✗ 3057 
     http_req_receiving.............: avg=70.54ms min=38.54µs  med=119.74µs max=3.39s    p(90)=10.24ms p(95)=314.11ms
     http_req_sending...............: avg=3.09ms  min=9.58µs   med=21.02µs  max=928.54ms p(90)=6.07ms  p(95)=11.5ms  
     http_req_tls_handshaking.......: avg=0s      min=0s       med=0s       max=0s       p(90)=0s      p(95)=0s      
     http_req_waiting...............: avg=5.09s   min=14.81ms  med=4.6s     max=12.01s   p(90)=8.43s   p(95)=8.92s   
     http_reqs......................: 3057    87.609197/s
     iteration_duration.............: avg=5.35s   min=237.89ms med=4.77s    max=12.18s   p(90)=8.57s   p(95)=9.08s   
     iterations.....................: 3037    87.036026/s
     vus............................: 151     min=151     max=500
     vus_max........................: 500     min=500     max=500

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `apollo-server`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 9090      ✗ 0    
     data_received..................: 268 MB  7.6 MB/s
     data_sent......................: 3.6 MB  102 kB/s
     http_req_blocked...............: avg=2.68ms   min=1.76µs   med=4.02µs  max=40.92ms p(90)=13.21ms  p(95)=23.83ms 
     http_req_connecting............: avg=2.62ms   min=0s       med=0s      max=30.29ms p(90)=12.89ms  p(95)=23.58ms 
     http_req_duration..............: avg=5.3s     min=11.09ms  med=1.78s   max=34.9s   p(90)=31.71s   p(95)=33.38s  
       { expected_response:true }...: avg=5.3s     min=11.09ms  med=1.78s   max=34.9s   p(90)=31.71s   p(95)=33.38s  
     http_req_failed................: 0.00%   ✓ 0         ✗ 3050 
     http_req_receiving.............: avg=399.56µs min=44.15µs  med=105.1µs max=82.67ms p(90)=227.63µs p(95)=402.33µs
     http_req_sending...............: avg=364.39µs min=8.88µs   med=23.09µs max=67.66ms p(90)=846.42µs p(95)=1.6ms   
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s      max=0s      p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=5.3s     min=10.98ms  med=1.78s   max=34.9s   p(90)=31.71s   p(95)=33.38s  
     http_reqs......................: 3050    86.304343/s
     iteration_duration.............: avg=5.35s    min=210.48ms med=1.8s    max=34.91s  p(90)=31.94s   p(95)=33.41s  
     iterations.....................: 3030    85.738413/s
     vus............................: 41      min=41      max=500
     vus_max........................: 500     min=500     max=500

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `mercurius`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 7308      ✗ 0    
     data_received..................: 216 MB  6.5 MB/s
     data_sent......................: 2.9 MB  88 kB/s
     http_req_blocked...............: avg=3.8ms   min=1.81µs   med=4.46µs  max=51.93ms p(90)=20.89ms  p(95)=28.53ms
     http_req_connecting............: avg=3.73ms  min=0s       med=0s      max=48.98ms p(90)=20.83ms  p(95)=28.29ms
     http_req_duration..............: avg=6.36s   min=12.64ms  med=6.31s   max=11.96s  p(90)=8.05s    p(95)=9.49s  
       { expected_response:true }...: avg=6.36s   min=12.64ms  med=6.31s   max=11.96s  p(90)=8.05s    p(95)=9.49s  
     http_req_failed................: 0.00%   ✓ 0         ✗ 2456 
     http_req_receiving.............: avg=46.25ms min=39.72µs  med=112.3µs max=1.67s   p(90)=2.42ms   p(95)=556.6ms
     http_req_sending...............: avg=361.8µs min=9.19µs   med=25.84µs max=18.08ms p(90)=619.97µs p(95)=1.53ms 
     http_req_tls_handshaking.......: avg=0s      min=0s       med=0s      max=0s      p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=6.32s   min=12.52ms  med=6.31s   max=11.96s  p(90)=8.05s    p(95)=9.49s  
     http_reqs......................: 2456    74.270869/s
     iteration_duration.............: avg=6.5s    min=490.08ms med=6.54s   max=11.97s  p(90)=8.06s    p(95)=9.52s  
     iterations.....................: 2436    73.666057/s
     vus............................: 71      min=71      max=500
     vus_max........................: 500     min=500     max=500

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview

@github-actions
Copy link

github-actions bot commented Aug 26, 2025

Overview for: federation/constant-vus-subgraphs-delay

This scenario runs 4 subgraphs and a GraphQL gateway with Federation spec, and runs a heavy query. It's being executed with a constant amount of VUs over a fixed amount of time. It measure things like memory usage, CPU usage, average RPS. It also includes a summary of the entire execution, and metrics information about HTTP execution times.

This scenario was running 300 VUs over 30s

Comparison

Comparison

Gateway RPS ⬇️ Requests Duration Notes
cosmo 181 5598 total, 0 failed avg: 864ms, p95: 2382ms
grafbase 165 5086 total, 0 failed avg: 885ms, p95: 2470ms
apollo-router 156 4857 total, 0 failed avg: 977ms, p95: 2507ms
hive-gateway 96 3157 total, 0 failed avg: 2918ms, p95: 12713ms
hive-gateway-bun 90 2976 total, 0 failed avg: 3055ms, p95: 5022ms
apollo-server 87 2906 total, 0 failed avg: 3220ms, p95: 26693ms
mercurius 78 2527 total, 0 failed avg: 3641ms, p95: 5168ms
Summary for: `cosmo`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 16734      ✗ 0    
     data_received..................: 491 MB  16 MB/s
     data_sent......................: 6.6 MB  215 kB/s
     http_req_blocked...............: avg=1.77ms   min=1.54µs  med=3.12µs   max=1.73s p(90)=5.27µs   p(95)=901.63µs
     http_req_connecting............: avg=1.44ms   min=0s      med=0s       max=1.73s p(90)=0s       p(95)=444.58µs
     http_req_duration..............: avg=864.41ms min=3.52ms  med=667.95ms max=5s    p(90)=1.92s    p(95)=2.38s   
       { expected_response:true }...: avg=864.41ms min=3.52ms  med=667.95ms max=5s    p(90)=1.92s    p(95)=2.38s   
     http_req_failed................: 0.00%   ✓ 0          ✗ 5598 
     http_req_receiving.............: avg=326.09ms min=33.39µs med=85.24µs  max=4.11s p(90)=1.5s     p(95)=1.87s   
     http_req_sending...............: avg=15.56ms  min=7.24µs  med=14.53µs  max=2.48s p(90)=140.76µs p(95)=3.95ms  
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s    p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=522.75ms min=3.46ms  med=511.25ms max=2.35s p(90)=902.99ms p(95)=1.06s   
     http_reqs......................: 5598    181.394723/s
     iteration_duration.............: avg=1.6s     min=18.58ms med=1.31s    max=9.21s p(90)=3.38s    p(95)=4.17s   
     iterations.....................: 5578    180.746653/s
     vus............................: 300     min=300      max=300
     vus_max........................: 300     min=300      max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `grafbase`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 15198      ✗ 0    
     data_received..................: 447 MB  15 MB/s
     data_sent......................: 6.0 MB  196 kB/s
     http_req_blocked...............: avg=2.05ms   min=1.75µs  med=4.21µs   max=2.56s p(90)=6.84µs   p(95)=435.58µs
     http_req_connecting............: avg=1.59ms   min=0s      med=0s       max=2.56s p(90)=0s       p(95)=253.22µs
     http_req_duration..............: avg=884.79ms min=3.21ms  med=655.89ms max=7.27s p(90)=2.03s    p(95)=2.46s   
       { expected_response:true }...: avg=884.79ms min=3.21ms  med=655.89ms max=7.27s p(90)=2.03s    p(95)=2.46s   
     http_req_failed................: 0.00%   ✓ 0          ✗ 5086 
     http_req_receiving.............: avg=350.8ms  min=33.76µs med=103.38µs max=5.7s  p(90)=1.44s    p(95)=1.86s   
     http_req_sending...............: avg=16.12ms  min=8.53µs  med=21.31µs  max=4.39s p(90)=164.65µs p(95)=1.58ms  
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s    p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=517.86ms min=3.14ms  med=464.83ms max=2.71s p(90)=1s       p(95)=1.22s   
     http_reqs......................: 5086    165.200411/s
     iteration_duration.............: avg=1.77s    min=24.96ms med=1.46s    max=9.66s p(90)=3.79s    p(95)=4.67s   
     iterations.....................: 5066    164.550783/s
     vus............................: 300     min=300      max=300
     vus_max........................: 300     min=300      max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `apollo-router`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 14511      ✗ 0    
     data_received..................: 426 MB  14 MB/s
     data_sent......................: 5.8 MB  186 kB/s
     http_req_blocked...............: avg=1.81ms   min=1.44µs  med=3.64µs   max=1.27s p(90)=6.65µs   p(95)=2.42ms 
     http_req_connecting............: avg=1.79ms   min=0s      med=0s       max=1.27s p(90)=0s       p(95)=2.05ms 
     http_req_duration..............: avg=977.23ms min=6.81ms  med=791.57ms max=5.2s  p(90)=1.93s    p(95)=2.5s   
       { expected_response:true }...: avg=977.23ms min=6.81ms  med=791.57ms max=5.2s  p(90)=1.93s    p(95)=2.5s   
     http_req_failed................: 0.00%   ✓ 0          ✗ 4857 
     http_req_receiving.............: avg=308.41ms min=35.66µs med=91.61µs  max=3.66s p(90)=1.29s    p(95)=1.73s  
     http_req_sending...............: avg=21.23ms  min=8.01µs  med=17.8µs   max=2.95s p(90)=321.33µs p(95)=11.51ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s    p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=647.58ms min=6.74ms  med=605.96ms max=2.23s p(90)=1.16s    p(95)=1.46s  
     http_reqs......................: 4857    156.577678/s
     iteration_duration.............: avg=1.88s    min=31.68ms med=1.62s    max=8.61s p(90)=3.87s    p(95)=4.54s  
     iterations.....................: 4837    155.932928/s
     vus............................: 31      min=31       max=300
     vus_max........................: 300     min=300      max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `hive-gateway`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 9411      ✗ 0    
     data_received..................: 277 MB  8.5 MB/s
     data_sent......................: 3.7 MB  115 kB/s
     http_req_blocked...............: avg=1.23ms   min=1.89µs  med=3.9µs   max=36.94ms  p(90)=32.68µs  p(95)=11.84ms 
     http_req_connecting............: avg=1.19ms   min=0s      med=0s      max=26.38ms  p(90)=0s       p(95)=11.77ms 
     http_req_duration..............: avg=2.91s    min=12.94ms med=1.61s   max=32.28s   p(90)=2.83s    p(95)=12.71s  
       { expected_response:true }...: avg=2.91s    min=12.94ms med=1.61s   max=32.28s   p(90)=2.83s    p(95)=12.71s  
     http_req_failed................: 0.00%   ✓ 0         ✗ 3157 
     http_req_receiving.............: avg=2.88ms   min=43.12µs med=92.12µs max=479.85ms p(90)=631.18µs p(95)=3.26ms  
     http_req_sending...............: avg=520.15µs min=9.2µs   med=21.18µs max=226.12ms p(90)=241.77µs p(95)=902.96µs
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s      max=0s       p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=2.91s    min=12.83ms med=1.6s    max=32.28s   p(90)=2.83s    p(95)=12.71s  
     http_reqs......................: 3157    96.498974/s
     iteration_duration.............: avg=2.98s    min=136ms   med=1.64s   max=32.29s   p(90)=2.87s    p(95)=13.09s  
     iterations.....................: 3137    95.88764/s
     vus............................: 94      min=94      max=300
     vus_max........................: 300     min=300     max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `hive-gateway-bun`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 8868      ✗ 0    
     data_received..................: 261 MB  8.0 MB/s
     data_sent......................: 3.5 MB  108 kB/s
     http_req_blocked...............: avg=660.87µs min=1.72µs   med=3.67µs   max=33.85ms p(90)=195.84µs p(95)=6.35ms  
     http_req_connecting............: avg=632.69µs min=0s       med=0s       max=22.75ms p(90)=76.23µs  p(95)=6.17ms  
     http_req_duration..............: avg=3.05s    min=14.88ms  med=2.75s    max=7.64s   p(90)=4.54s    p(95)=5.02s   
       { expected_response:true }...: avg=3.05s    min=14.88ms  med=2.75s    max=7.64s   p(90)=4.54s    p(95)=5.02s   
     http_req_failed................: 0.00%   ✓ 0         ✗ 2976 
     http_req_receiving.............: avg=79.58ms  min=37.1µs   med=128.33µs max=1.85s   p(90)=160.53ms p(95)=747.34ms
     http_req_sending...............: avg=1.53ms   min=8.42µs   med=19.06µs  max=1.04s   p(90)=314.34µs p(95)=2.92ms  
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s      p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=2.97s    min=14.77ms  med=2.67s    max=7.64s   p(90)=4.49s    p(95)=4.96s   
     http_reqs......................: 2976    90.99836/s
     iteration_duration.............: avg=3.16s    min=192.03ms med=2.88s    max=8.13s   p(90)=4.68s    p(95)=5.1s    
     iterations.....................: 2956    90.386812/s
     vus............................: 108     min=108     max=300
     vus_max........................: 300     min=300     max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `apollo-server`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 8658      ✗ 0    
     data_received..................: 255 MB  7.7 MB/s
     data_sent......................: 3.4 MB  104 kB/s
     http_req_blocked...............: avg=618.85µs min=1.68µs   med=4µs      max=13.87ms  p(90)=160.66µs p(95)=6.29ms  
     http_req_connecting............: avg=582.13µs min=0s       med=0s       max=13.27ms  p(90)=117.81µs p(95)=5.96ms  
     http_req_duration..............: avg=3.22s    min=10.92ms  med=1.34s    max=32.69s   p(90)=2.14s    p(95)=26.69s  
       { expected_response:true }...: avg=3.22s    min=10.92ms  med=1.34s    max=32.69s   p(90)=2.14s    p(95)=26.69s  
     http_req_failed................: 0.00%   ✓ 0         ✗ 2906 
     http_req_receiving.............: avg=300.02µs min=44.87µs  med=107.86µs max=299.86ms p(90)=217.3µs  p(95)=339.53µs
     http_req_sending...............: avg=188.09µs min=9.41µs   med=21.9µs   max=16.88ms  p(90)=139.23µs p(95)=1.12ms  
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=3.21s    min=10.82ms  med=1.34s    max=32.69s   p(90)=2.14s    p(95)=26.69s  
     http_reqs......................: 2906    87.758326/s
     iteration_duration.............: avg=3.25s    min=206.36ms med=1.35s    max=32.71s   p(90)=2.15s    p(95)=26.83s  
     iterations.....................: 2886    87.154346/s
     vus............................: 15      min=15      max=300
     vus_max........................: 300     min=300     max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `mercurius`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 7521      ✗ 0    
     data_received..................: 222 MB  6.9 MB/s
     data_sent......................: 3.0 MB  94 kB/s
     http_req_blocked...............: avg=1.44ms   min=1.74µs   med=3.66µs   max=33.79ms  p(90)=3.46ms   p(95)=14.44ms 
     http_req_connecting............: avg=1.4ms    min=0s       med=0s       max=27.08ms  p(90)=2.77ms   p(95)=14.22ms 
     http_req_duration..............: avg=3.64s    min=11.43ms  med=3.7s     max=7.65s    p(90)=4.31s    p(95)=5.16s   
       { expected_response:true }...: avg=3.64s    min=11.43ms  med=3.7s     max=7.65s    p(90)=4.31s    p(95)=5.16s   
     http_req_failed................: 0.00%   ✓ 0         ✗ 2527 
     http_req_receiving.............: avg=17.42ms  min=41.85µs  med=101.58µs max=723.98ms p(90)=368.62µs p(95)=5.15ms  
     http_req_sending...............: avg=237.47µs min=9.84µs   med=19.51µs  max=13.52ms  p(90)=282.95µs p(95)=754.08µs
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=3.62s    min=11.16ms  med=3.7s     max=7.65s    p(90)=4.31s    p(95)=5.16s   
     http_reqs......................: 2527    78.836372/s
     iteration_duration.............: avg=3.7s     min=437.69ms med=3.73s    max=7.66s    p(90)=4.34s    p(95)=5.21s   
     iterations.....................: 2507    78.212419/s
     vus............................: 33      min=33      max=300
     vus_max........................: 300     min=300     max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview

@github-actions
Copy link

github-actions bot commented Aug 26, 2025

Overview for: federation/constant-vus-over-time

This scenario runs 4 subgraphs and a GraphQL gateway with Federation spec, and runs a heavy query. It's being executed with a constant amount of VUs over a fixed amount of time. It measure things like memory usage, CPU usage, average RPS. It also includes a summary of the entire execution, and metrics information about HTTP execution times.

This scenario was running 300 VUs over 30s

Comparison

Comparison

Gateway RPS ⬇️ Requests Duration Notes
cosmo 174 5413 total, 0 failed avg: 822ms, p95: 1869ms
grafbase 168 5219 total, 0 failed avg: 870ms, p95: 2235ms
apollo-router 160 4946 total, 0 failed avg: 885ms, p95: 2238ms
hive-gateway 92 3057 total, 0 failed avg: 3041ms, p95: 13595ms
hive-gateway-bun 91 3025 total, 0 failed avg: 3050ms, p95: 4935ms
apollo-server 89 2957 total, 0 failed avg: 3159ms, p95: 19635ms
mercurius 77 2471 total, 0 failed avg: 3716ms, p95: 5665ms
Summary for: `cosmo`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 16179      ✗ 0    
     data_received..................: 475 MB  15 MB/s
     data_sent......................: 6.4 MB  208 kB/s
     http_req_blocked...............: avg=1.82ms   min=1.72µs  med=3.77µs   max=1.13s p(90)=6.81µs   p(95)=227.04µs
     http_req_connecting............: avg=1.38ms   min=0s      med=0s       max=1.13s p(90)=0s       p(95)=134.08µs
     http_req_duration..............: avg=822.32ms min=3.31ms  med=741.66ms max=3.98s p(90)=1.54s    p(95)=1.86s   
       { expected_response:true }...: avg=822.32ms min=3.31ms  med=741.66ms max=3.98s p(90)=1.54s    p(95)=1.86s   
     http_req_failed................: 0.00%   ✓ 0          ✗ 5413 
     http_req_receiving.............: avg=171.61ms min=35.24µs med=91.95µs  max=3.36s p(90)=717.73ms p(95)=1.16s   
     http_req_sending...............: avg=23.71ms  min=7.72µs  med=18.42µs  max=2.21s p(90)=134.98µs p(95)=1.86ms  
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s    p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=626.99ms min=3.19ms  med=631.97ms max=2.9s  p(90)=1.05s    p(95)=1.21s   
     http_reqs......................: 5413    174.968989/s
     iteration_duration.............: avg=1.66s    min=31.22ms med=1.46s    max=7.48s p(90)=3.21s    p(95)=3.79s   
     iterations.....................: 5393    174.322512/s
     vus............................: 300     min=300      max=300
     vus_max........................: 300     min=300      max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `grafbase`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 15597      ✗ 0    
     data_received..................: 459 MB  15 MB/s
     data_sent......................: 6.2 MB  200 kB/s
     http_req_blocked...............: avg=5.39ms   min=1.54µs  med=3.63µs   max=2.53s p(90)=6.08µs p(95)=21.17ms
     http_req_connecting............: avg=4.23ms   min=0s      med=0s       max=1.52s p(90)=0s     p(95)=18.6ms 
     http_req_duration..............: avg=869.74ms min=3.51ms  med=727.61ms max=4.77s p(90)=1.86s  p(95)=2.23s  
       { expected_response:true }...: avg=869.74ms min=3.51ms  med=727.61ms max=4.77s p(90)=1.86s  p(95)=2.23s  
     http_req_failed................: 0.00%   ✓ 0          ✗ 5219 
     http_req_receiving.............: avg=263.48ms min=33.68µs med=86.77µs  max=4.43s p(90)=1.07s  p(95)=1.63s  
     http_req_sending...............: avg=21.31ms  min=8.45µs  med=17.17µs  max=3.42s p(90)=6.21ms p(95)=43.26ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s    p(90)=0s     p(95)=0s     
     http_req_waiting...............: avg=584.94ms min=3.39ms  med=580.88ms max=2.74s p(90)=1.04s  p(95)=1.31s  
     http_reqs......................: 5219    168.549527/s
     iteration_duration.............: avg=1.75s    min=24.28ms med=1.52s    max=8.39s p(90)=3.51s  p(95)=4.26s  
     iterations.....................: 5199    167.90362/s
     vus............................: 4       min=4        max=300
     vus_max........................: 300     min=300      max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `apollo-router`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 14778      ✗ 0    
     data_received..................: 434 MB  14 MB/s
     data_sent......................: 5.9 MB  190 kB/s
     http_req_blocked...............: avg=3.29ms   min=1.61µs  med=3.63µs   max=3.25s p(90)=6.95µs   p(95)=2.41ms 
     http_req_connecting............: avg=2.96ms   min=0s      med=0s       max=3.25s p(90)=0s       p(95)=2.09ms 
     http_req_duration..............: avg=885.1ms  min=6.6ms   med=769.8ms  max=4.78s p(90)=1.74s    p(95)=2.23s  
       { expected_response:true }...: avg=885.1ms  min=6.6ms   med=769.8ms  max=4.78s p(90)=1.74s    p(95)=2.23s  
     http_req_failed................: 0.00%   ✓ 0          ✗ 4946 
     http_req_receiving.............: avg=256ms    min=34.74µs med=86.91µs  max=3.95s p(90)=999.36ms p(95)=1.42s  
     http_req_sending...............: avg=20.33ms  min=7.88µs  med=17.38µs  max=2.68s p(90)=622.91µs p(95)=18.92ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s    p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=608.76ms min=6.51ms  med=561.67ms max=2.65s p(90)=1.09s    p(95)=1.23s  
     http_reqs......................: 4946    160.101949/s
     iteration_duration.............: avg=1.83s    min=27.99ms med=1.58s    max=8.42s p(90)=3.55s    p(95)=4.41s  
     iterations.....................: 4926    159.454549/s
     vus............................: 300     min=300      max=300
     vus_max........................: 300     min=300      max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `hive-gateway`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 9111      ✗ 0    
     data_received..................: 269 MB  8.1 MB/s
     data_sent......................: 3.6 MB  109 kB/s
     http_req_blocked...............: avg=858.52µs min=1.94µs   med=4.26µs   max=20.41ms  p(90)=105.93µs p(95)=8.6ms 
     http_req_connecting............: avg=833.75µs min=0s       med=0s       max=20.36ms  p(90)=0s       p(95)=8.41ms
     http_req_duration..............: avg=3.04s    min=13.08ms  med=1.68s    max=32.73s   p(90)=2.6s     p(95)=13.59s
       { expected_response:true }...: avg=3.04s    min=13.08ms  med=1.68s    max=32.73s   p(90)=2.6s     p(95)=13.59s
     http_req_failed................: 0.00%   ✓ 0         ✗ 3057 
     http_req_receiving.............: avg=1.72ms   min=43.85µs  med=103.08µs max=293.23ms p(90)=633.91µs p(95)=2.81ms
     http_req_sending...............: avg=540.61µs min=10.26µs  med=23.36µs  max=93ms     p(90)=237.66µs p(95)=2ms   
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s    
     http_req_waiting...............: avg=3.03s    min=12.97ms  med=1.68s    max=32.73s   p(90)=2.6s     p(95)=13.58s
     http_reqs......................: 3057    92.131846/s
     iteration_duration.............: avg=3.1s     min=202.05ms med=1.72s    max=32.75s   p(90)=2.65s    p(95)=14.22s
     iterations.....................: 3037    91.529086/s
     vus............................: 31      min=31      max=300
     vus_max........................: 300     min=300     max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `hive-gateway-bun`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 9015      ✗ 0    
     data_received..................: 266 MB  8.0 MB/s
     data_sent......................: 3.6 MB  108 kB/s
     http_req_blocked...............: avg=577.53µs min=1.78µs   med=3.66µs   max=56.05ms p(90)=110.34µs p(95)=5.17ms  
     http_req_connecting............: avg=529.37µs min=0s       med=0s       max=13.01ms p(90)=0s       p(95)=4.82ms  
     http_req_duration..............: avg=3.05s    min=17.58ms  med=2.87s    max=6.36s   p(90)=4.56s    p(95)=4.93s   
       { expected_response:true }...: avg=3.05s    min=17.58ms  med=2.87s    max=6.36s   p(90)=4.56s    p(95)=4.93s   
     http_req_failed................: 0.00%   ✓ 0         ✗ 3025 
     http_req_receiving.............: avg=70.15ms  min=38.78µs  med=181.75µs max=2.02s   p(90)=137.36ms p(95)=557.14ms
     http_req_sending...............: avg=1.02ms   min=8.19µs   med=19.7µs   max=387.9ms p(90)=328.31µs p(95)=2.36ms  
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s      p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=2.97s    min=17.07ms  med=2.76s    max=6.31s   p(90)=4.54s    p(95)=4.92s   
     http_reqs......................: 3025    91.010308/s
     iteration_duration.............: avg=3.14s    min=276.31ms med=2.92s    max=6.47s   p(90)=4.69s    p(95)=4.95s   
     iterations.....................: 3005    90.408587/s
     vus............................: 35      min=35      max=300
     vus_max........................: 300     min=300     max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `apollo-server`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 8811      ✗ 0    
     data_received..................: 260 MB  7.9 MB/s
     data_sent......................: 3.5 MB  106 kB/s
     http_req_blocked...............: avg=1.82ms   min=1.47µs  med=2.99µs   max=51.28ms p(90)=180.24µs p(95)=18.53ms 
     http_req_connecting............: avg=1.76ms   min=0s      med=0s       max=49.47ms p(90)=110.29µs p(95)=18.21ms 
     http_req_duration..............: avg=3.15s    min=9.94ms  med=1.51s    max=32.62s  p(90)=2.15s    p(95)=19.63s  
       { expected_response:true }...: avg=3.15s    min=9.94ms  med=1.51s    max=32.62s  p(90)=2.15s    p(95)=19.63s  
     http_req_failed................: 0.00%   ✓ 0         ✗ 2957 
     http_req_receiving.............: avg=296.21µs min=41.96µs med=101.17µs max=77.43ms p(90)=232.33µs p(95)=486.89µs
     http_req_sending...............: avg=1.33ms   min=8.4µs   med=15.03µs  max=42.68ms p(90)=150.77µs p(95)=10.47ms 
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s      p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=3.15s    min=9.87ms  med=1.51s    max=32.62s  p(90)=2.15s    p(95)=19.63s  
     http_reqs......................: 2957    89.492148/s
     iteration_duration.............: avg=3.19s    min=350.4ms med=1.53s    max=32.67s  p(90)=2.17s    p(95)=19.73s  
     iterations.....................: 2937    88.886857/s
     vus............................: 11      min=11      max=300
     vus_max........................: 300     min=300     max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `mercurius`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 7353      ✗ 0    
     data_received..................: 217 MB  6.8 MB/s
     data_sent......................: 2.9 MB  92 kB/s
     http_req_blocked...............: avg=636.41µs min=1.82µs   med=4.36µs   max=16.31ms  p(90)=460.69µs p(95)=6.64ms  
     http_req_connecting............: avg=619.05µs min=0s       med=0s       max=15.73ms  p(90)=425.09µs p(95)=6.52ms  
     http_req_duration..............: avg=3.71s    min=11.49ms  med=3.74s    max=8.05s    p(90)=4.54s    p(95)=5.66s   
       { expected_response:true }...: avg=3.71s    min=11.49ms  med=3.74s    max=8.05s    p(90)=4.54s    p(95)=5.66s   
     http_req_failed................: 0.00%   ✓ 0         ✗ 2471 
     http_req_receiving.............: avg=13.12ms  min=40.87µs  med=108.73µs max=973.15ms p(90)=296.85µs p(95)=897.87µs
     http_req_sending...............: avg=288.02µs min=9.9µs    med=25.01µs  max=5.55ms   p(90)=158.62µs p(95)=4.18ms  
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=3.7s     min=11.36ms  med=3.73s    max=8.05s    p(90)=4.54s    p(95)=5.66s   
     http_reqs......................: 2471    77.252598/s
     iteration_duration.............: avg=3.77s    min=403.12ms med=3.78s    max=8.07s    p(90)=4.56s    p(95)=5.71s   
     iterations.....................: 2451    76.627324/s
     vus............................: 2       min=2       max=300
     vus_max........................: 300     min=300     max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview

@github-actions
Copy link

github-actions bot commented Aug 26, 2025

Overview for: federation/ramping-vus

This scenario runs 4 subgraphs and a GraphQL gateway with Federation spec, and runs a heavy query. We are running a heavy load of concurrent VUs to measure response time and other stats, during stress. It measure things like memory usage, CPU usage, response times. It also includes a summary of the entire execution, and metrics information about HTTP execution times.

This scenario was trying to reach 2000 concurrent VUs over 60s

Comparison

Comparison

Gateway duration(p95)⬇️ RPS Requests Durations Notes
grafbase 5777ms 169 11951 total, 0 failed avg: 2662ms, p95: 5777ms, max: 13035ms, med: 2376ms
apollo-router 6113ms 166 12077 total, 719 failed avg: 3005ms, p95: 6113ms, max: 22177ms, med: 2623ms ❌ 719 failed requests, 719 non-200 responses, 719 unexpected GraphQL errors
cosmo 7390ms 180 12632 total, 0 failed avg: 2469ms, p95: 7390ms, max: 14463ms, med: 1919ms
hive-gateway-bun 27945ms 92 7460 total, 0 failed avg: 11394ms, p95: 27945ms, max: 34493ms, med: 10332ms
mercurius 41801ms 55 5077 total, 0 failed avg: 21440ms, p95: 41802ms, max: 43088ms, med: 19276ms
hive-gateway 49331ms 96 8206 total, 0 failed avg: 10962ms, p95: 49332ms, max: 57350ms, med: 3199ms
apollo-server 59999ms 87 8073 total, 491 failed avg: 11514ms, p95: 60000ms, max: 60373ms, med: 2135ms ❌ 491 failed requests, 491 non-200 responses, 491 unexpected GraphQL errors
Summary for: `grafbase`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 35793      ✗ 0     
     data_received..................: 1.1 GB  15 MB/s
     data_sent......................: 14 MB   201 kB/s
     http_req_blocked...............: avg=367.6ms  min=1.45µs  med=3.58µs  max=10.18s p(90)=1.43s    p(95)=2.93s   
     http_req_connecting............: avg=364.93ms min=0s      med=0s      max=9.69s  p(90)=1.43s    p(95)=2.92s   
     http_req_duration..............: avg=2.66s    min=3.11ms  med=2.37s   max=13.03s p(90)=5.02s    p(95)=5.77s   
       { expected_response:true }...: avg=2.66s    min=3.11ms  med=2.37s   max=13.03s p(90)=5.02s    p(95)=5.77s   
     http_req_failed................: 0.00%   ✓ 0          ✗ 11951 
     http_req_receiving.............: avg=318.74ms min=31.96µs med=76.96µs max=8.64s  p(90)=958.02ms p(95)=1.78s   
     http_req_sending...............: avg=127.17ms min=7.64µs  med=17.72µs max=8.56s  p(90)=319.63ms p(95)=823.49ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s      max=0s     p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=2.21s    min=3.05ms  med=2s      max=10.18s p(90)=4.63s    p(95)=5.07s   
     http_reqs......................: 11951   169.560704/s
     iteration_duration.............: avg=6.11s    min=24.48ms med=5.14s   max=30.17s p(90)=12.38s   p(95)=14.04s  
     iterations.....................: 11931   169.276944/s
     vus............................: 118     min=74       max=1995
     vus_max........................: 2000    min=2000     max=2000

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `apollo-router`

K6 Output

     ✗ response code was 200
      ↳  94% — ✓ 11338 / ✗ 719
     ✗ no graphql errors
      ↳  94% — ✓ 11338 / ✗ 719
     ✓ valid response structure

     █ setup

     checks.........................: 95.94% ✓ 34014      ✗ 1438  
     data_received..................: 997 MB 14 MB/s
     data_sent......................: 14 MB  198 kB/s
     http_req_blocked...............: avg=664.91ms min=1.5µs   med=3.97µs  max=12.78s p(90)=3.46s    p(95)=4.44s   
     http_req_connecting............: avg=630.93ms min=0s      med=0s      max=12.66s p(90)=3.29s    p(95)=4.29s   
     http_req_duration..............: avg=3s       min=7.51ms  med=2.62s   max=22.17s p(90)=5.54s    p(95)=6.11s   
       { expected_response:true }...: avg=2.97s    min=7.51ms  med=2.54s   max=22.17s p(90)=5.52s    p(95)=6.07s   
     http_req_failed................: 5.95%  ✓ 719        ✗ 11358 
     http_req_receiving.............: avg=218.68ms min=0s      med=78.6µs  max=9.02s  p(90)=686.65ms p(95)=1.59s   
     http_req_sending...............: avg=160.12ms min=8.63µs  med=20.21µs max=18.45s p(90)=421.42ms p(95)=864.99ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s      max=0s     p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=2.62s    min=7.44ms  med=2.15s   max=10.09s p(90)=5.1s     p(95)=5.58s   
     http_reqs......................: 12077  166.802242/s
     iteration_duration.............: avg=6.45s    min=49.95ms med=5.58s   max=25.69s p(90)=12.84s   p(95)=14.69s  
     iterations.....................: 12057  166.52601/s
     vus............................: 312    min=58       max=1984
     vus_max........................: 2000   min=2000     max=2000

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `cosmo`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 37836      ✗ 0     
     data_received..................: 1.1 GB  16 MB/s
     data_sent......................: 15 MB   214 kB/s
     http_req_blocked...............: avg=256.22ms min=1.48µs  med=3.25µs  max=12.79s p(90)=661.4ms  p(95)=1.88s   
     http_req_connecting............: avg=252.49ms min=0s      med=0s      max=10.25s p(90)=654.97ms p(95)=1.86s   
     http_req_duration..............: avg=2.46s    min=3.12ms  med=1.91s   max=14.46s p(90)=5.17s    p(95)=7.39s   
       { expected_response:true }...: avg=2.46s    min=3.12ms  med=1.91s   max=14.46s p(90)=5.17s    p(95)=7.39s   
     http_req_failed................: 0.00%   ✓ 0          ✗ 12632 
     http_req_receiving.............: avg=375.59ms min=30.56µs med=77.24µs max=11.8s  p(90)=726.2ms  p(95)=2.17s   
     http_req_sending...............: avg=185.01ms min=8.58µs  med=14.85µs max=12.7s  p(90)=373.12ms p(95)=809.77ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s      max=0s     p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=1.9s     min=3.04ms  med=1.5s    max=11.33s p(90)=4.44s    p(95)=4.94s   
     http_reqs......................: 12632   180.207759/s
     iteration_duration.............: avg=5.51s    min=8.72ms  med=4.41s   max=29.13s p(90)=12.02s   p(95)=14.15s  
     iterations.....................: 12612   179.92244/s
     vus............................: 4       min=4        max=1998
     vus_max........................: 2000    min=2000     max=2000

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `hive-gateway-bun`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 22320     ✗ 0     
     data_received..................: 655 MB  8.1 MB/s
     data_sent......................: 8.9 MB  109 kB/s
     http_req_blocked...............: avg=20.94ms  min=1.98µs   med=4.54µs  max=926.69ms p(90)=38.1ms  p(95)=146.75ms
     http_req_connecting............: avg=20.48ms  min=0s       med=0s      max=926.64ms p(90)=36.84ms p(95)=143.92ms
     http_req_duration..............: avg=11.39s   min=19.47ms  med=10.33s  max=34.49s   p(90)=24.94s  p(95)=27.94s  
       { expected_response:true }...: avg=11.39s   min=19.47ms  med=10.33s  max=34.49s   p(90)=24.94s  p(95)=27.94s  
     http_req_failed................: 0.00%   ✓ 0         ✗ 7460  
     http_req_receiving.............: avg=105.84ms min=39.96µs  med=104.8µs max=6.84s    p(90)=4.41ms  p(95)=133.58ms
     http_req_sending...............: avg=9ms      min=9.18µs   med=26.43µs max=610.29ms p(90)=17.56ms p(95)=56.63ms 
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s      max=0s       p(90)=0s      p(95)=0s      
     http_req_waiting...............: avg=11.27s   min=19.13ms  med=10.28s  max=34.49s   p(90)=24.93s  p(95)=27.94s  
     http_reqs......................: 7460    92.174536/s
     iteration_duration.............: avg=11.69s   min=486.08ms med=10.73s  max=35.96s   p(90)=25.11s  p(95)=28.69s  
     iterations.....................: 7440    91.927419/s
     vus............................: 105     min=57      max=1999
     vus_max........................: 2000    min=2000    max=2000

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `mercurius`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 15102     ✗ 0     
     data_received..................: 446 MB  4.9 MB/s
     data_sent......................: 6.1 MB  66 kB/s
     http_req_blocked...............: avg=203.94µs min=1.74µs   med=4.22µs   max=15.85ms p(90)=501.48µs p(95)=696.82µs
     http_req_connecting............: avg=171.47µs min=0s       med=0s       max=15.79ms p(90)=426.12µs p(95)=583.99µs
     http_req_duration..............: avg=21.44s   min=10.87ms  med=19.27s   max=43.08s  p(90)=40.83s   p(95)=41.8s   
       { expected_response:true }...: avg=21.44s   min=10.87ms  med=19.27s   max=43.08s  p(90)=40.83s   p(95)=41.8s   
     http_req_failed................: 0.00%   ✓ 0         ✗ 5077  
     http_req_receiving.............: avg=32.48ms  min=40.26µs  med=103.14µs max=3.4s    p(90)=475.07µs p(95)=2.58ms  
     http_req_sending...............: avg=65.34µs  min=7.76µs   med=26.57µs  max=11.91ms p(90)=68.52µs  p(95)=103.72µs
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s      p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=21.4s    min=10.77ms  med=19.27s   max=43.08s  p(90)=40.6s    p(95)=41.73s  
     http_reqs......................: 5077    55.380081/s
     iteration_duration.............: avg=21.48s   min=141.39ms med=19.09s   max=45.07s  p(90)=41.05s   p(95)=41.88s  
     iterations.....................: 4991    54.44199/s
     vus............................: 379     min=59      max=2000
     vus_max........................: 2000    min=2000    max=2000

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `hive-gateway`

K6 Output

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 24558     ✗ 0     
     data_received..................: 721 MB  8.5 MB/s
     data_sent......................: 9.7 MB  114 kB/s
     http_req_blocked...............: avg=9.95ms min=1.77µs  med=4.54µs  max=512.3ms  p(90)=32.93ms  p(95)=73.94ms
     http_req_connecting............: avg=9.75ms min=0s      med=0s      max=329.98ms p(90)=32.36ms  p(95)=73.51ms
     http_req_duration..............: avg=10.96s min=12.1ms  med=3.19s   max=57.34s   p(90)=41.82s   p(95)=49.33s 
       { expected_response:true }...: avg=10.96s min=12.1ms  med=3.19s   max=57.34s   p(90)=41.82s   p(95)=49.33s 
     http_req_failed................: 0.00%   ✓ 0         ✗ 8206  
     http_req_receiving.............: avg=5.42ms min=40.96µs med=91.92µs max=884.57ms p(90)=908.93µs p(95)=4.79ms 
     http_req_sending...............: avg=5.13ms min=9.53µs  med=25.45µs max=849.92ms p(90)=11.37ms  p(95)=28.51ms
     http_req_tls_handshaking.......: avg=0s     min=0s      med=0s      max=0s       p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=10.95s min=11.99ms med=3.19s   max=57.34s   p(90)=41.79s   p(95)=49.3s  
     http_reqs......................: 8206    96.359781/s
     iteration_duration.............: avg=11.09s min=78.56ms med=3.28s   max=57.61s   p(90)=41.88s   p(95)=49.46s 
     iterations.....................: 8186    96.124929/s
     vus............................: 65      min=62      max=2000
     vus_max........................: 2000    min=2000    max=2000

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview
Summary for: `apollo-server`

K6 Output

     ✗ response code was 200
      ↳  93% — ✓ 7562 / ✗ 491
     ✗ no graphql errors
      ↳  93% — ✓ 7562 / ✗ 491
     ✓ valid response structure

     █ setup

     checks.........................: 95.85% ✓ 22686     ✗ 982   
     data_received..................: 666 MB 7.2 MB/s
     data_sent......................: 9.6 MB 104 kB/s
     http_req_blocked...............: avg=902.79µs min=1.39µs  med=3.25µs  max=124.59ms p(90)=350.04µs p(95)=688.43µs
     http_req_connecting............: avg=878.04µs min=0s      med=0s      max=123.43ms p(90)=280.77µs p(95)=578.94µs
     http_req_duration..............: avg=11.51s   min=10.33ms med=2.13s   max=1m0s     p(90)=54.43s   p(95)=59.99s  
       { expected_response:true }...: avg=8.37s    min=10.33ms med=2.06s   max=59.97s   p(90)=36.45s   p(95)=46.99s  
     http_req_failed................: 6.08%  ✓ 491       ✗ 7582  
     http_req_receiving.............: avg=220.77µs min=0s      med=99.61µs max=119.7ms  p(90)=230.15µs p(95)=364.66µs
     http_req_sending...............: avg=307.45µs min=8.49µs  med=16.18µs max=85.69ms  p(90)=62.52µs  p(95)=129.47µs
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s      max=0s       p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=11.51s   min=10.21ms med=2.13s   max=1m0s     p(90)=54.43s   p(95)=59.99s  
     http_reqs......................: 8073   87.124682/s
     iteration_duration.............: avg=11.55s   min=46.73ms med=2.15s   max=1m0s     p(90)=54.7s    p(95)=1m0s    
     iterations.....................: 8053   86.90884/s
     vus............................: 53     min=53      max=2000
     vus_max........................: 2000   min=2000    max=2000

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview

@renovate renovate bot changed the title Update ghcr.io/apollographql/router Docker tag to v2.6.0 Update ghcr.io/apollographql/router Docker tag to v2.6.0 - autoclosed Sep 4, 2025
@renovate renovate bot closed this Sep 4, 2025
@renovate renovate bot deleted the renovate/apollo-graphql-packages branch September 4, 2025 03:54
@renovate renovate bot changed the title Update ghcr.io/apollographql/router Docker tag to v2.6.0 - autoclosed Update ghcr.io/apollographql/router Docker tag to v2.6.0 Sep 4, 2025
@renovate renovate bot reopened this Sep 4, 2025
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from eed7384 to fdb4c4c Compare September 4, 2025 05:22
@renovate renovate bot changed the title Update ghcr.io/apollographql/router Docker tag to v2.6.0 Update ghcr.io/apollographql/router Docker tag to v2.6.0 - autoclosed Sep 4, 2025
@renovate renovate bot closed this Sep 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants