Skip to content

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jun 6, 2025

This PR contains the following updates:

Package Change Age Confidence Type Update
@apollo/composition (source) 2.10.2 -> 2.11.2 age confidence dependencies minor
@apollo/gateway (source) 2.10.2 -> 2.11.2 age confidence dependencies minor
ghcr.io/apollographql/router v2.2.1 -> v2.4.0 age confidence minor

Release Notes

apollographql/federation (@​apollo/composition)

v2.11.2

Compare Source

Patch Changes

v2.11.1

Compare Source

Patch Changes

v2.11.0

Compare Source

Minor Changes
  • Adds connect spec v0.2, available for use with Apollo Router 2.3.0 or greater. (#​3262)
Patch Changes
apollographql/federation (@​apollo/gateway)

v2.11.2

Compare Source

Patch Changes

v2.11.1

Compare Source

Patch Changes

v2.11.0

Compare Source

Minor Changes
  • Adds connect spec v0.2, available for use with Apollo Router 2.3.0 or greater. (#​3262)
Patch Changes
apollographql/router (ghcr.io/apollographql/router)

v2.4.0

Compare Source

🚀 Features

Support JWT audience (aud) validation (PR #​7578)

The router now supports JWT audience (aud) validation. This allows the router to ensure that the JWT is intended
for the specific audience it is being used with, enhancing security by preventing token misuse across different audiences.

The following sample configuration will validate the JWT's aud claim against the specified audiences and ensure a match with either https://my.api or https://my.other.api. If the aud claim does not match either of those configured audiences, the router will reject the request.

authentication:
 router:
   jwt:
     jwks: # This key is required.
       - url: https://dev-zzp5enui.us.auth0.com/.well-known/jwks.json
         issuers: # optional list of issuers
           - https://issuer.one
           - https://issuer.two
         audiences: # optional list of audiences
           - https://my.api
           - https://my.other.api
         poll_interval: <optional poll interval>
         headers: # optional list of static headers added to the HTTP request to the JWKS URL
           - name: User-Agent
             value: router

### These keys are optional. Default values are shown.
     header_name: Authorization
     header_value_prefix: Bearer
     on_error: Error

### array of alternative token sources
     sources:
       - type: header
         name: X-Authorization
         value_prefix: Bearer
       - type: cookie
         name: authz

By @​Velfi in https://github.com/apollographql/router/pull/7578

Prioritize existing requests over query parsing and planning during "warm up" (PR #​7223)

The router warms up its query planning cache during a hot reload. This change decreases the priority
of warm up tasks in the compute job queue to reduce the impact of warmup on serving requests.

This change adds new values to the job.type dimension of the following metrics:

  • apollo.router.compute_jobs.duration - A histogram of time spent in the compute pipeline by the job, including the queue and query planning.
    • job.type: (query_planning, query_parsing, introspection, query_planning_warmup, query_parsing_warmup)
    • job.outcome: (executed_ok, executed_error, channel_error, rejected_queue_full, abandoned)
  • apollo.router.compute_jobs.queue.wait.duration - A histogram of time spent in the compute queue by the job.
    • job.type: (query_planning, query_parsing, introspection, query_planning_warmup, query_parsing_warmup)
  • apollo.router.compute_jobs.execution.duration - A histogram of time spent to execute job (excludes time spent in the queue).
    • job.type: (query_planning, query_parsing, introspection, query_planning_warmup, query_parsing_warmup)
  • apollo.router.compute_jobs.active_jobs - A gauge of the number of compute jobs being processed in parallel.
    • job.type: (query_planning, query_parsing, introspection, query_planning_warmup, query_parsing_warmup)

By @​carodewig in https://github.com/apollographql/router/pull/7223

Persisted queries: include operation name in PERSISTED_QUERY_NOT_IN_LIST error for debuggability (PR #​7768)

When persisted query safelisting is enabled and a request has an unknown PQ ID, the GraphQL error now has the extension field operation_name containing the GraphQL operation name (if provided explicitly in the request). Note that this only applies to the PERSISTED_QUERY_NOT_IN_LIST error returned when manifest-based PQs are enabled, APQs are disabled, and the request contains an operation ID that is not in the list.

By @​glasser in https://github.com/apollographql/router/pull/7768

Introduce cooperative cancellation for query planning

The cooperative cancellation feature allows the router to gracefully handle query planning timeouts and cancellations, improving resource utilization.

The mode can be set to measure or enforce. We recommend starting with measure. In measure mode, the router will measure the time taken for query planning and emit metrics accordingly. In enforce mode, the router will cancel query planning operations that exceed the specified timeout.

To observe this behavior, the router telemetry has been updated:

  • Add an outcome attribute to the apollo.router.query_planning.plan.duration metric
  • Add an outcome attribute to the query_planning span

Below is a sample configuration to configure cooperative cancellation in measure mode:

supergraph:
  query_planning:
    experimental_cooperative_cancellation:
      enabled: true
      mode: measure
      timeout: 1s

By @​Velfi in https://github.com/apollographql/router/pull/7604

🐛 Fixes

Align on_graphql_error selector with subgraph_on_graphql_error (PR #​7676)

The on_graphql_error selector will now return true or false, in alignment with the subgraph_on_graphql_error selector. Previously, the selector would return true or None.

By @​carodewig in https://github.com/apollographql/router/pull/7676

Return valid GraphQL response when performing a websocket handshake (PR #​7680)

PR #​7141 added checks on GraphQL responses returned from coprocessors to ensure compliance with GraphQL specifications. This surfaced an issue where subscription responses over websockets could omit the required data field during the handshake, resulting in invalid GraphQL response payloads. All websocket subscription responses will now return a valid GraphQL response when doing the websocket handshake.

By @​bnjjj in https://github.com/apollographql/router/pull/7680

Fix SigV4 configuration handling (PR #​7726)

Fixed an issue introduced in Router 2.3.0 where some SigV4 configurations would fail to start, preventing communication with SigV4-enabled services.

By @​dylan-apollo in https://github.com/apollographql/router/pull/7726

Improve error message for invalid variables (Issue #​2984)

When a variable in a GraphQL request is missing or contains an invalid value, the router now returns more useful error messages. Example:

-invalid type for variable: 'x'
+invalid input value at x.coordinates[0].longitude: found JSON null for GraphQL Float!

By @​SimonSapin in https://github.com/apollographql/router/pull/7567

Support exporting resources on all Prometheus metrics (PR #​7394)

By default, the Prometheus metrics exporter will only export resources as target_info metrics, not inline on every metric. Now, you can add resources to every metric by setting resource_selector to all (default is none).

telemetry:
  exporters:
    metrics:
      common:
        resource:
          "test-resource": "test"
      prometheus:
        enabled: true
        resource_selector: all # This will add resources on every metrics

Note: this change only affects Prometheus, not OTLP.

By @​bnjjj in https://github.com/apollographql/router/pull/7394

Forbid unknown @link directives for supergraph schemas where purpose is EXECUTION or SECURITY

The legacy JavaScript query planner forbid any usage of unknown @link specs in supergraph schemas with either EXECUTION or SECURITY value set for the for argument (aka, the spec's "purpose"). This behavior had not been ported to the native query planner previously. This PR implements the expected behavior in the native query planner.

By @​duckki in https://github.com/apollographql/router/pull/7587

Supergraph stage correctly receives on_graphql_error selector (PR #​7669)

The on_graphql_error selector will now correctly fire on the supergraph stage; previously it only worked on the router stage.

By @​carodewig in https://github.com/apollographql/router/pull/7669

Invalid type condition in @defer fetch

The query planner was adding an inline spread (...) conditioned on the Query type in deferred subgraph fetch queries. Such a query would be invalid in the subgraph when the subgraph schema renamed the root query type to somethhing other than Query. The fix removes the root type condition from all subgraph queries, so that they stay valid even when root types are renamed.

By @​duckki in https://github.com/apollographql/router/pull/7580

Preserve content-type for file uploads when Rhai scripts are in use (PR #​7559)

If a Rhai script was invoked during file upload processing, then the "Content-Type" of the request was not preserved correctly. This would cause a file upload to fail.

The error message would be something like:

"message": "invalid multipart request: Content-Type is not multipart/form-data",

This issue has now been fixed.

By @​garypen in https://github.com/apollographql/router/pull/7559

Improve OTLP metric HTTP endpoint behavior (PR #​7595)

We made substantial updates to OpenTelemetry in router 2.0, but didn't catch that OpenTelemetry changed how it processed "endpoints" (destinations for metrics and traces) until now.

With the undetected change, the router wasn't setting the path correctly, resulting in failure to export metrics over HTTP when using the "default" endpoint. Neither metrics via gRPC nor traces were impacted.

We have fixed our interactions with the dependency and improved our testing to make sure this does not occur again. Additionally, the router now supports setting standard OpenTelemetry environment variables for endpoints.

There is still a known problem when using environment variables to configure endpoints for the HTTP protocol when transmitting to an un-encrypted endpoint (i.e., TLS not configured). This affects the following environment variables:

  • OTEL_EXPORTER_OTLP_ENDPOINT
  • OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
  • OTEL_EXPORTER_OTLP_TRACES_ENDPOINT

When these environment variables are set to insecure hosts, messages will appear in the logs indicating an error, but the metrics and traces will still be sent correctly:

2025-06-06T15:12:47.992144Z ERROR  OpenTelemetry metric error occurred: Metrics exporter otlp failed with the grpc server returns error (Unknown error): , detailed error message: h2 protocol error: http2 error tonic::transport::Error(Transport, hyper::Error(Http2, Error { kind: GoAway(b"", FRAME_SIZE_ERROR, Library) }))
2025-06-06T15:12:47.992763Z ERROR  OpenTelemetry trace error occurred: Exporter otlp encountered the following error(s): the grpc server returns error (Unknown error): , detailed error message: h2 protocol error: http2 error tonic::transport::Error(Transport, hyper::Error(Http2, Error { kind: GoAway(b"", FRAME_SIZE_ERROR, Library) }))

This is tracked upstream at https://github.com/open-telemetry/opentelemetry-collector/issues/10952.

By @​garypen in https://github.com/apollographql/router/pull/7595

Add graphql.operation.name attribute to apollo.router.opened.subscriptions counter (PR #​7606)

The apollo.router.opened.subscriptions metric has an graphql.operation.name attribute applied to identify the named operation of open subscriptions.

By @​bnjjj in https://github.com/apollographql/router/pull/7606

🛠 Maintenance

Measure preview_extended_error_metrics in Apollo config telemetry (PR #​7597)

By @​timbotnik in https://github.com/apollographql/router/pull/7597

📚 Documentation

Document Apollo Runtime Container deployment (PR #​7734 and PR #​7668)

The Apollo Runtime Container is now included in our documentation for deployment options. It also includes instructions for running Apollo Router with the Apollo MCP Server.

By @​jonathanrainer and @​lambertjosh in https://github.com/apollographql/router/pull/7734 and https://github.com/apollographql/router/pull/7668

Fix incorrect reference to apollo.router.schema.load.duration (PR #​7582)

The in-memory cache documentation was referencing an incorrect metric to track schema load times. Previously it was referred to as apollo.router.schema.loading.time, whereas the metric being emitted by the router since v2.0.0 is actually apollo.router.schema.load.duration. This is now fixed.

By @​lrlna in https://github.com/apollographql/router/pull/7582

v2.3.0

Compare Source

🚀 Features

Connectors improvements: Router 2.3.0 supports Connect spec v0.2, including batch requests, error customization, and direct access to HTTP headers. To use these features: upgrade your Router to 2.3, update your version of Federation to 2.11, and update the @​link directives in your subgraphs to https://specs.apollo.dev/connect/v0.2.

See the Connectors changelog for more details.

Log whether safe-listing enforcement was skipped (Issue #​7509)

When logging unknown operations encountered during safe-listing, include information about whether enforcement was skipped. This will help distinguish between truly problematic external operations (where enforcement_skipped is false) and internal operations that are intentionally allowed to bypass safelisting (where enforcement_skipped is true).

By @​DaleSeo in https://github.com/apollographql/router/pull/7509

Add response body telemetry selector (PR #​7363)

The Router now supports a response_body selector which provides access to the response body in telemetry configurations. This enables more detailed monitoring and logging of response data in the Router.

Example configuration:

telemetry:
  instrumentation:
    spans:
      router:
        attributes:
          "my_attribute":
            response_body: true

By @​Velfi in https://github.com/apollographql/router/pull/7363

Support non-JSON and JSON-like content types for connectors (PR #​7380)

Connectors now inspect the content-type header of responses to determine how they should treat the response. This allows more flexibility as prior to this change, all responses were treated as JSON which would lead to errors on non-json responses.

The behavior is as follows:

  • If content-type ends with /json (like application/json) OR +json (like application/vnd.foo+json): content is parsed as JSON.
  • If content-type is text/plain: content will be treated as a UTF-8 string. Content can be accessed in selection mapping via $ variable.
  • If content-type is any other value: content will be treated as a JSON null.
  • If no content-type header is provided: content is assumed to be JSON and therefore parsed as JSON.

If deserialization fails, an error message of Response deserialization failed with a error code of CONNECTOR_DESERIALIZE will be returned:

"errors": [
    {
        "message": "Response deserialization failed",
        "extensions": {
            "code": "CONNECTOR_DESERIALIZE"
        }
    }
]

By @​andrewmcgivery in https://github.com/apollographql/router/pull/7380

Include message and path for certain errors in Apollo telemetry (PR #​7378)

For errors pertaining to connectors and demand control features, Apollo telemetry will now include the original error message and path as part of the traces sent to GraphOS.

By @​timbotnik in https://github.com/apollographql/router/pull/7378

Support ignoring specific headers during subscriptions deduplication (PR #​7070)

The Router now supports ignoring specific headers when deduplicating requests to subgraphs which provide subscription events. Previously, any differing headers which didn't actually affect the subscription response (e.g., user-agent) would prevent or limit the potential of deduplication.

The introduction of the ignored_headers option allows you to specify headers to ignore during deduplication, enabling you to benefit from subscription deduplication even when requests include headers with unique or varying values that don't affect the subscription's event data.

Configuration example:

subscription:
  enabled: true
  deduplication:
    enabled: true # optional, default: true
    ignored_headers: # (optional) List of ignored headers when deduplicating subscriptions
      - x-transaction-id
      - custom-header-name

By @​bnjjj in https://github.com/apollographql/router/pull/7070

🐛 Fixes

Support disabling the health check endpoint (PR #​7519)

During the development of Router 2.0, the health check endpoint support was converted to be a plugin. Unfortunately, the support for disabling the health check endpoint was lost during the conversion.

This is now fixed and a new unit test ensures that disabling the health check does not result in the creation of a health check endpoint.

By @​garypen in https://github.com/apollographql/router/pull/7519

Propagate client name and version modifications through telemetry (PR #​7369)

The Router accepts modifications to the client name and version (apollo::telemetry::client_name and apollo::telemetry::client_version), but those modifications were not propagated through the telemetry layers to update spans and traces.

After this change, the modifications from plugins on the router service are propagated through the telemetry layers.

By @​carodewig in https://github.com/apollographql/router/pull/7369

Prevent connectors error when using a variable in a nested input argument (PR #​7472)

The connectors plugin will no longer error when using a variable in a nested input argument. The following example would error prior to this change:

query Query ($query: String){
    complexInputType(filters: { inSpace: true, search: $query })
}

By @​andrewmcgivery in https://github.com/apollographql/router/pull/7472

Spans should only include path in http.route (PR #​7390)

Per the OpenTelemetry spec, the http.route should only include "the matched route, that is, the path template used in the format used by the respective server framework."

Prior to this change, the Router sends the full URI in http.route, which can be high cardinality (ie /graphql?operation=one_of_many_values). The Router will now only include the path (/graphql).

By @​carodewig in https://github.com/apollographql/router/pull/7390

Decrease log level for JWT authentication failure (PR #​7396)

A recent change increased the log level of JWT authentication failures from info to error. This reverts that change.

By @​carodewig in https://github.com/apollographql/router/pull/7396

Prefer headers propagated with Router YAML config over headers from Connector directives (PR #​7499)

When configuring the same header name in both @connect(http: { headers: }) (or @source(http: { headers: })) in SDL and propagate in Router YAML configuration, the request had both headers, even if the value is the same. After this change, Router YAML configuration always wins.

By @​andrewmcgivery in https://github.com/apollographql/router/pull/7499

Fixed native query planner regression not forbidding unknown spec links

The legacy JavaScript query planner forbids any usage of unknown @link specs in supergraph schemas with either EXECUTION or SECURITY value set for the for argument (aka, the spec's "purpose"). This behavior had not been ported to the native query planner previously. This PR implements the expected behavior in the native query planner.

By @​duckki in https://github.com/apollographql/router/pull/7587

(Query Planner) Fix invalid type condition in @defer fetch

The query planner could add an inline spread conditioned on the Query type in deferred subgraph fetch queries. Such a query would be invalid in the subgraph when the subgraph schema renamed the root query type. This fix removes the root type condition from all subgraph queries, so that they stay valid even when root types were renamed.

By @​duckki in https://github.com/apollographql/router/pull/7580

🛠 Maintenance

Add timeouts and connection health checks to Redis connections (Issue #​6855)

The Router's internal Redis configuration has been improved to increase client resiliency under various failure modes (TCP failures and timeouts, unresponsive sockets, Redis server failures, etc.). It also adds heartbeats (a PING every 10 seconds) to the Redis clients.

By @​aembke, @​carodewig in https://github.com/apollographql/router/pull/7526

📚 Documentation

Fix discrepancies in coprocessor metrics documentation (PR #​7359)

The documentation for standard metric instruments for coprocessors has been updated:

  • Rename apollo.router.operations.coprocessor.total to apollo.router.operations.coprocessor
  • Clarify that coprocessor.succeeded attribute applies to apollo.router.operations.coprocessor only.

By @​shorgi in https://github.com/apollographql/router/pull/7359

Add example Rhai script for returning Demand Control metrics as response headers (PR #​7564)

A new section has been added to the demand control documentation to demonstrate how to use Rhai scripts to expose cost estimation data in response headers. This allows clients to see the estimated cost, actual cost, and other demand control metrics directly in HTTP responses, which is useful for debugging and client-side optimization.

By @​abernix in https://github.com/apollographql/router/pull/7564


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.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • 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 Jun 6, 2025
Copy link

github-actions bot commented Jun 6, 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 174 5475 total, 0 failed avg: 1543ms, p95: 3621ms
grafbase 166 5228 total, 0 failed avg: 1398ms, p95: 3164ms
apollo-router 160 5038 total, 5 failed avg: 1495ms, p95: 3649ms ❌ 5 failed requests, 5 non-200 responses, 8 unexpected GraphQL errors, non-compatible response structure (3)
apollo-server 86 3036 total, 0 failed avg: 5292ms, p95: 33156ms
hive-gateway-bun 86 2994 total, 0 failed avg: 5295ms, p95: 9416ms
hive-gateway 83 2961 total, 0 failed avg: 5408ms, p95: 33262ms
mercurius 73 2418 total, 0 failed avg: 6434ms, p95: 11475ms
Summary for: `cosmo`

K6 Output

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

     █ setup

     checks.........................: 100.00% ✓ 16365      ✗ 0    
     data_received..................: 481 MB  15 MB/s
     data_sent......................: 6.5 MB  207 kB/s
     http_req_blocked...............: avg=3ms      min=1.55µs  med=3.44µs  max=1.93s  p(90)=24.61µs p(95)=15.88ms
     http_req_connecting............: avg=2.67ms   min=0s      med=0s      max=1.93s  p(90)=0s      p(95)=15.64ms
     http_req_duration..............: avg=1.54s    min=3.26ms  med=1.28s   max=9.45s  p(90)=2.78s   p(95)=3.62s  
       { expected_response:true }...: avg=1.54s    min=3.26ms  med=1.28s   max=9.45s  p(90)=2.78s   p(95)=3.62s  
     http_req_failed................: 0.00%   ✓ 0          ✗ 5475 
     http_req_receiving.............: avg=418.38ms min=36.89µs med=85.88µs max=6.25s  p(90)=1.74s   p(95)=2.5s   
     http_req_sending...............: avg=38.26ms  min=7.79µs  med=15.06µs max=8.33s  p(90)=1.31ms  p(95)=13.63ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s      max=0s     p(90)=0s      p(95)=0s     
     http_req_waiting...............: avg=1.08s    min=3.1ms   med=1.01s   max=4.38s  p(90)=1.72s   p(95)=1.95s  
     http_reqs......................: 5475    174.445919/s
     iteration_duration.............: avg=2.79s    min=53.46ms med=2.46s   max=12.22s p(90)=5.2s    p(95)=6.22s  
     iterations.....................: 5455    173.808674/s
     vus............................: 176     min=176      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% ✓ 15624      ✗ 0    
     data_received..................: 459 MB  15 MB/s
     data_sent......................: 6.2 MB  198 kB/s
     http_req_blocked...............: avg=3.07ms   min=1.44µs  med=3.7µs    max=2.8s   p(90)=43.88µs  p(95)=14.96ms
     http_req_connecting............: avg=2.66ms   min=0s      med=0s       max=2.8s   p(90)=0s       p(95)=14.75ms
     http_req_duration..............: avg=1.39s    min=3ms     med=1.22s    max=5.67s  p(90)=3.04s    p(95)=3.16s  
       { expected_response:true }...: avg=1.39s    min=3ms     med=1.22s    max=5.67s  p(90)=3.04s    p(95)=3.16s  
     http_req_failed................: 0.00%   ✓ 0          ✗ 5228 
     http_req_receiving.............: avg=428.43ms min=33.58µs med=96.29µs  max=4.18s  p(90)=1.64s    p(95)=2.36s  
     http_req_sending...............: avg=19.52ms  min=8.25µs  med=16.9µs   max=3.62s  p(90)=407.49µ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=950.38ms min=2.93ms  med=915.47ms max=3.55s  p(90)=1.76s    p(95)=1.84s  
     http_reqs......................: 5228    166.777324/s
     iteration_duration.............: avg=2.91s    min=24.49ms med=2.62s    max=10.84s p(90)=5.71s    p(95)=6.57s  
     iterations.....................: 5208    166.139308/s
     vus............................: 180     min=180      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% — ✓ 5013 / ✗ 5
     ✗ no graphql errors
      ↳  99% — ✓ 5010 / ✗ 8
     ✗ valid response structure
      ↳  99% — ✓ 5010 / ✗ 3

     █ setup

     checks.........................: 99.89% ✓ 15033      ✗ 16   
     data_received..................: 442 MB 14 MB/s
     data_sent......................: 6.0 MB 190 kB/s
     http_req_blocked...............: avg=8.71ms   min=1.39µs  med=3.52µs   max=3.15s  p(90)=727.11µs p(95)=24.84ms 
     http_req_connecting............: avg=6.76ms   min=0s      med=0s       max=3.03s  p(90)=314.43µs p(95)=24.31ms 
     http_req_duration..............: avg=1.49s    min=7.19ms  med=1.28s    max=7.08s  p(90)=2.88s    p(95)=3.64s   
       { expected_response:true }...: avg=1.49s    min=7.19ms  med=1.28s    max=7.08s  p(90)=2.88s    p(95)=3.64s   
     http_req_failed................: 0.09%  ✓ 5          ✗ 5033 
     http_req_receiving.............: avg=445.44ms min=0s      med=96.47µs  max=5.49s  p(90)=1.93s    p(95)=2.3s    
     http_req_sending...............: avg=61.63ms  min=8.21µs  med=16.57µs  max=3.19s  p(90)=4.92ms   p(95)=264.87ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s     p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=987.47ms min=7.11ms  med=952.22ms max=3.89s  p(90)=1.7s     p(95)=1.99s   
     http_reqs......................: 5038   160.086739/s
     iteration_duration.............: avg=3.04s    min=32.64ms med=2.81s    max=10.82s p(90)=5.62s    p(95)=6.62s   
     iterations.....................: 5018   159.451222/s
     vus............................: 307    min=307      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% ✓ 9048      ✗ 0    
     data_received..................: 267 MB  7.6 MB/s
     data_sent......................: 3.6 MB  102 kB/s
     http_req_blocked...............: avg=2.67ms   min=2.05µs   med=4.35µs   max=40.06ms  p(90)=13.18ms  p(95)=22.44ms 
     http_req_connecting............: avg=2.6ms    min=0s       med=0s       max=30.9ms   p(90)=12.78ms  p(95)=22.13ms 
     http_req_duration..............: avg=5.29s    min=11.38ms  med=1.59s    max=34.8s    p(90)=31.56s   p(95)=33.15s  
       { expected_response:true }...: avg=5.29s    min=11.38ms  med=1.59s    max=34.8s    p(90)=31.56s   p(95)=33.15s  
     http_req_failed................: 0.00%   ✓ 0         ✗ 3036 
     http_req_receiving.............: avg=778.32µs min=46.66µs  med=112.34µs max=217.38ms p(90)=248.93µs p(95)=424.16µs
     http_req_sending...............: avg=399.32µs min=10.29µs  med=24.27µs  max=24.62ms  p(90)=865.91µs p(95)=3.12ms  
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=5.29s    min=11.25ms  med=1.59s    max=34.8s    p(90)=31.56s   p(95)=33.15s  
     http_reqs......................: 3036    86.133932/s
     iteration_duration.............: avg=5.34s    min=381.87ms med=1.62s    max=34.81s   p(90)=31.63s   p(95)=33.18s  
     iterations.....................: 3016    85.566514/s
     vus............................: 31      min=31      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% ✓ 8922      ✗ 0    
     data_received..................: 263 MB  7.6 MB/s
     data_sent......................: 3.6 MB  103 kB/s
     http_req_blocked...............: avg=4.26ms  min=1.9µs    med=4.47µs   max=78.78ms  p(90)=25.1ms  p(95)=32.33ms 
     http_req_connecting............: avg=4.16ms  min=0s       med=0s       max=54.95ms  p(90)=24.98ms p(95)=31.92ms 
     http_req_duration..............: avg=5.29s   min=14.8ms   med=4.82s    max=11.63s   p(90)=8.4s    p(95)=9.41s   
       { expected_response:true }...: avg=5.29s   min=14.8ms   med=4.82s    max=11.63s   p(90)=8.4s    p(95)=9.41s   
     http_req_failed................: 0.00%   ✓ 0         ✗ 2994 
     http_req_receiving.............: avg=80.99ms min=39.9µs   med=128.09µs max=3.57s    p(90)=28.41ms p(95)=458.11ms
     http_req_sending...............: avg=1.85ms  min=9.02µs   med=25.06µs  max=404.15ms p(90)=3.59ms  p(95)=8.52ms  
     http_req_tls_handshaking.......: avg=0s      min=0s       med=0s       max=0s       p(90)=0s      p(95)=0s      
     http_req_waiting...............: avg=5.21s   min=14.51ms  med=4.74s    max=11.63s   p(90)=8.38s   p(95)=9.4s    
     http_reqs......................: 2994    86.469439/s
     iteration_duration.............: avg=5.43s   min=258.05ms med=4.94s    max=11.65s   p(90)=8.47s   p(95)=9.59s   
     iterations.....................: 2974    85.891821/s
     vus............................: 146     min=146     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% ✓ 8823      ✗ 0    
     data_received..................: 260 MB  7.3 MB/s
     data_sent......................: 3.5 MB  99 kB/s
     http_req_blocked...............: avg=4.43ms min=2µs      med=4.9µs    max=96.02ms  p(90)=25.51ms p(95)=31.45ms
     http_req_connecting............: avg=4.27ms min=0s       med=0s       max=54.02ms  p(90)=25.03ms p(95)=31.23ms
     http_req_duration..............: avg=5.4s   min=14.57ms  med=2.36s    max=34.95s   p(90)=17.4s   p(95)=33.26s 
       { expected_response:true }...: avg=5.4s   min=14.57ms  med=2.36s    max=34.95s   p(90)=17.4s   p(95)=33.26s 
     http_req_failed................: 0.00%   ✓ 0         ✗ 2961 
     http_req_receiving.............: avg=7.27ms min=44.24µs  med=106.73µs max=573.24ms p(90)=1.99ms  p(95)=9.67ms 
     http_req_sending...............: avg=1.02ms min=10.19µs  med=26.93µs  max=324.62ms p(90)=1.59ms  p(95)=3.07ms 
     http_req_tls_handshaking.......: avg=0s     min=0s       med=0s       max=0s       p(90)=0s      p(95)=0s     
     http_req_waiting...............: avg=5.4s   min=14.43ms  med=2.36s    max=34.95s   p(90)=17.39s  p(95)=33.26s 
     http_reqs......................: 2961    83.477112/s
     iteration_duration.............: avg=5.52s  min=307.63ms med=2.45s    max=35.01s   p(90)=17.75s  p(95)=33.42s 
     iterations.....................: 2941    82.913268/s
     vus............................: 42      min=42      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% ✓ 7194      ✗ 0    
     data_received..................: 212 MB  6.5 MB/s
     data_sent......................: 2.9 MB  87 kB/s
     http_req_blocked...............: avg=2.91ms   min=1.7µs    med=4.23µs  max=38.59ms p(90)=14.42ms  p(95)=21.11ms
     http_req_connecting............: avg=2.83ms   min=0s       med=0s      max=29.86ms p(90)=14ms     p(95)=20.92ms
     http_req_duration..............: avg=6.43s    min=11.77ms  med=6.43s   max=13.29s  p(90)=8.28s    p(95)=11.47s 
       { expected_response:true }...: avg=6.43s    min=11.77ms  med=6.43s   max=13.29s  p(90)=8.28s    p(95)=11.47s 
     http_req_failed................: 0.00%   ✓ 0         ✗ 2418 
     http_req_receiving.............: avg=35.04ms  min=39.74µs  med=103.3µs max=1.66s   p(90)=391.83µs p(95)=3.69ms 
     http_req_sending...............: avg=393.46µs min=9.06µs   med=24.17µs max=55.69ms p(90)=901.57µs p(95)=2.49ms 
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s      max=0s      p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=6.39s    min=11.69ms  med=6.43s   max=13.29s  p(90)=8.28s    p(95)=11.47s 
     http_reqs......................: 2418    73.531983/s
     iteration_duration.............: avg=6.56s    min=421.26ms med=6.48s   max=13.31s  p(90)=8.41s    p(95)=11.52s 
     iterations.....................: 2398    72.923778/s
     vus............................: 289     min=289     max=500
     vus_max........................: 500     min=500     max=500

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview

Copy link

github-actions bot commented Jun 6, 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 178 5496 total, 0 failed avg: 846ms, p95: 2384ms
grafbase 171 5281 total, 0 failed avg: 887ms, p95: 2379ms
apollo-router 157 4880 total, 1 failed avg: 865ms, p95: 2369ms ❌ 1 failed requests, 1 non-200 responses, 1 unexpected GraphQL errors
apollo-server 90 2998 total, 0 failed avg: 3119ms, p95: 23373ms
hive-gateway-bun 85 2828 total, 0 failed avg: 3267ms, p95: 5722ms
hive-gateway 84 2831 total, 0 failed avg: 3293ms, p95: 17473ms
mercurius 76 2465 total, 0 failed avg: 3760ms, p95: 5411ms
Summary for: `cosmo`

K6 Output

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

     █ setup

     checks.........................: 100.00% ✓ 16428      ✗ 0    
     data_received..................: 482 MB  16 MB/s
     data_sent......................: 6.5 MB  212 kB/s
     http_req_blocked...............: avg=1.43ms   min=1.71µs  med=3.53µs   max=1.58s p(90)=6.25µs   p(95)=382.7µs 
     http_req_connecting............: avg=1.36ms   min=0s      med=0s       max=1.58s p(90)=0s       p(95)=276.85µs
     http_req_duration..............: avg=845.73ms min=3.57ms  med=574.92ms max=7.38s p(90)=1.95s    p(95)=2.38s   
       { expected_response:true }...: avg=845.73ms min=3.57ms  med=574.92ms max=7.38s p(90)=1.95s    p(95)=2.38s   
     http_req_failed................: 0.00%   ✓ 0          ✗ 5496 
     http_req_receiving.............: avg=416.66ms min=35.49µs med=112.82µs max=7.3s  p(90)=1.41s    p(95)=1.98s   
     http_req_sending...............: avg=15.99ms  min=7.58µs  med=16.61µs  max=3.64s p(90)=150.98µs p(95)=2.8ms   
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s    p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=413.08ms min=3.4ms   med=374.49ms max=2.02s p(90)=760.45ms p(95)=907.9ms 
     http_reqs......................: 5496    178.157248/s
     iteration_duration.............: avg=1.65s    min=20.21ms med=1.27s    max=8.9s  p(90)=3.67s    p(95)=4.5s    
     iterations.....................: 5476    177.508932/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% ✓ 15783      ✗ 0    
     data_received..................: 464 MB  15 MB/s
     data_sent......................: 6.3 MB  203 kB/s
     http_req_blocked...............: avg=2.92ms   min=1.4µs   med=3.18µs   max=2.94s p(90)=5.27µs   p(95)=1.05ms  
     http_req_connecting............: avg=2.45ms   min=0s      med=0s       max=2.94s p(90)=0s       p(95)=822.09µs
     http_req_duration..............: avg=886.87ms min=2.99ms  med=714.77ms max=4.67s p(90)=2s       p(95)=2.37s   
       { expected_response:true }...: avg=886.87ms min=2.99ms  med=714.77ms max=4.67s p(90)=2s       p(95)=2.37s   
     http_req_failed................: 0.00%   ✓ 0          ✗ 5281 
     http_req_receiving.............: avg=305.47ms min=33.73µs med=86.45µs  max=3.9s  p(90)=1.23s    p(95)=1.69s   
     http_req_sending...............: avg=22.96ms  min=7.69µs  med=14.77µs  max=2.81s p(90)=321.45µs p(95)=13.15ms 
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s    p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=558.43ms min=2.93ms  med=545.14ms max=2.81s p(90)=981.52ms p(95)=1.12s   
     http_reqs......................: 5281    171.047262/s
     iteration_duration.............: avg=1.72s    min=18.29ms med=1.45s    max=9.29s p(90)=3.55s    p(95)=4.25s   
     iterations.....................: 5261    170.399478/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
      ↳  99% — ✓ 4859 / ✗ 1
     ✗ no graphql errors
      ↳  99% — ✓ 4859 / ✗ 1
     ✓ valid response structure

     █ setup

     checks.........................: 99.98% ✓ 14577      ✗ 2    
     data_received..................: 428 MB 14 MB/s
     data_sent......................: 5.8 MB 187 kB/s
     http_req_blocked...............: avg=3.51ms   min=1.68µs  med=3.69µs   max=2.32s  p(90)=6.82µs   p(95)=2.75ms 
     http_req_connecting............: avg=3.05ms   min=0s      med=0s       max=2.32s  p(90)=0s       p(95)=2.48ms 
     http_req_duration..............: avg=865.38ms min=6.63ms  med=716.43ms max=4.63s  p(90)=1.74s    p(95)=2.36s  
       { expected_response:true }...: avg=865.2ms  min=6.63ms  med=716.26ms max=4.63s  p(90)=1.74s    p(95)=2.36s  
     http_req_failed................: 0.02%  ✓ 1          ✗ 4879 
     http_req_receiving.............: avg=267.49ms min=0s      med=88.27µs  max=4.21s  p(90)=1.14s    p(95)=1.79s  
     http_req_sending...............: avg=23.24ms  min=8.27µs  med=18.08µs  max=2.81s  p(90)=356.44µs p(95)=18.72ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s     p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=574.63ms min=6.54ms  med=524.91ms max=2.84s  p(90)=1.06s    p(95)=1.26s  
     http_reqs......................: 4880   157.247442/s
     iteration_duration.............: avg=1.88s    min=28.54ms med=1.63s    max=11.72s p(90)=3.64s    p(95)=4.54s  
     iterations.....................: 4860   156.602985/s
     vus............................: 37     min=37       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% ✓ 8934      ✗ 0    
     data_received..................: 263 MB  8.0 MB/s
     data_sent......................: 3.6 MB  108 kB/s
     http_req_blocked...............: avg=640.31µs min=1.54µs   med=3.05µs   max=15.72ms p(90)=93.98µs  p(95)=6.49ms  
     http_req_connecting............: avg=617.71µs min=0s       med=0s       max=15.45ms p(90)=58.16µs  p(95)=6.33ms  
     http_req_duration..............: avg=3.11s    min=11.43ms  med=1.4s     max=32.65s  p(90)=1.98s    p(95)=23.37s  
       { expected_response:true }...: avg=3.11s    min=11.43ms  med=1.4s     max=32.65s  p(90)=1.98s    p(95)=23.37s  
     http_req_failed................: 0.00%   ✓ 0         ✗ 2998 
     http_req_receiving.............: avg=404.01µs min=43.91µs  med=103.33µs max=82.96ms p(90)=205.13µs p(95)=343.09µs
     http_req_sending...............: avg=88.07µs  min=8.93µs   med=15.06µs  max=19.85ms p(90)=55.76µs  p(95)=344.78µs
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s      p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=3.11s    min=11.35ms  med=1.4s     max=32.65s  p(90)=1.98s    p(95)=23.37s  
     http_reqs......................: 2998    90.602321/s
     iteration_duration.............: avg=3.15s    min=396.85ms med=1.42s    max=32.65s  p(90)=2s       p(95)=23.74s  
     iterations.....................: 2978    89.997903/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: `hive-gateway-bun`

K6 Output

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

     █ setup

     checks.........................: 100.00% ✓ 8424      ✗ 0    
     data_received..................: 248 MB  7.5 MB/s
     data_sent......................: 3.4 MB  101 kB/s
     http_req_blocked...............: avg=606.34µs min=2.17µs   med=4.92µs   max=30.48ms  p(90)=302.48µs p(95)=5.13ms 
     http_req_connecting............: avg=485.47µs min=0s       med=0s       max=15.06ms  p(90)=164.57µs p(95)=4.42ms 
     http_req_duration..............: avg=3.26s    min=17.52ms  med=2.89s    max=7.25s    p(90)=5.06s    p(95)=5.72s  
       { expected_response:true }...: avg=3.26s    min=17.52ms  med=2.89s    max=7.25s    p(90)=5.06s    p(95)=5.72s  
     http_req_failed................: 0.00%   ✓ 0         ✗ 2828 
     http_req_receiving.............: avg=66.56ms  min=45.35µs  med=216.67µs max=1.98s    p(90)=37.67ms  p(95)=595.9ms
     http_req_sending...............: avg=829.96µs min=9.48µs   med=27.67µs  max=341.77ms p(90)=263.26µs p(95)=1.44ms 
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=3.19s    min=17.3ms   med=2.85s    max=7.25s    p(90)=4.98s    p(95)=5.71s  
     http_reqs......................: 2828    85.290239/s
     iteration_duration.............: avg=3.34s    min=145.21ms med=2.96s    max=7.42s    p(90)=5.18s    p(95)=5.9s   
     iterations.....................: 2808    84.687055/s
     vus............................: 32      min=32      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% ✓ 8433      ✗ 0    
     data_received..................: 249 MB  7.5 MB/s
     data_sent......................: 3.4 MB  101 kB/s
     http_req_blocked...............: avg=2.55ms min=2.09µs   med=4.21µs   max=70.81ms  p(90)=3.46ms   p(95)=23.43ms
     http_req_connecting............: avg=2.5ms  min=0s       med=0s       max=70.77ms  p(90)=3.35ms   p(95)=23.13ms
     http_req_duration..............: avg=3.29s  min=13.86ms  med=1.71s    max=32.81s   p(90)=3.22s    p(95)=17.47s 
       { expected_response:true }...: avg=3.29s  min=13.86ms  med=1.71s    max=32.81s   p(90)=3.22s    p(95)=17.47s 
     http_req_failed................: 0.00%   ✓ 0         ✗ 2831 
     http_req_receiving.............: avg=1.99ms min=43.55µs  med=109.34µs max=416.86ms p(90)=596.56µs p(95)=2.01ms 
     http_req_sending...............: avg=1.62ms min=9.63µs   med=24.11µs  max=62.24ms  p(90)=479.99µs p(95)=11.61ms
     http_req_tls_handshaking.......: avg=0s     min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=3.28s  min=13.71ms  med=1.71s    max=32.8s    p(90)=3.22s    p(95)=17.46s 
     http_reqs......................: 2831    84.898927/s
     iteration_duration.............: avg=3.35s  min=297.58ms med=1.75s    max=32.83s   p(90)=3.27s    p(95)=17.74s 
     iterations.....................: 2811    84.299146/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: `mercurius`

K6 Output

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

     █ setup

     checks.........................: 100.00% ✓ 7335      ✗ 0    
     data_received..................: 216 MB  6.7 MB/s
     data_sent......................: 2.9 MB  91 kB/s
     http_req_blocked...............: avg=962.18µs min=1.82µs   med=4.05µs  max=42.08ms p(90)=1.05ms   p(95)=9.53ms  
     http_req_connecting............: avg=920.98µs min=0s       med=0s      max=20.94ms p(90)=952.34µs p(95)=9.34ms  
     http_req_duration..............: avg=3.75s    min=11.57ms  med=3.69s   max=8.11s   p(90)=4.75s    p(95)=5.41s   
       { expected_response:true }...: avg=3.75s    min=11.57ms  med=3.69s   max=8.11s   p(90)=4.75s    p(95)=5.41s   
     http_req_failed................: 0.00%   ✓ 0         ✗ 2465 
     http_req_receiving.............: avg=2.28ms   min=40.93µs  med=101µs   max=487.5ms p(90)=239.81µs p(95)=557.37µs
     http_req_sending...............: avg=105.49µs min=9.33µs   med=23.39µs max=17.34ms p(90)=177.03µs p(95)=407.91µs
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s      max=0s      p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=3.75s    min=11.4ms   med=3.69s   max=8.11s   p(90)=4.75s    p(95)=5.41s   
     http_reqs......................: 2465    76.471967/s
     iteration_duration.............: avg=3.81s    min=417.75ms med=3.71s   max=8.13s   p(90)=4.78s    p(95)=5.46s   
     iterations.....................: 2445    75.851504/s
     vus............................: 72      min=72      max=300
     vus_max........................: 300     min=300     max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview

Copy link

github-actions bot commented Jun 6, 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 178 5529 total, 0 failed avg: 837ms, p95: 2142ms
grafbase 170 5239 total, 0 failed avg: 910ms, p95: 2570ms
apollo-router 158 4896 total, 1 failed avg: 964ms, p95: 2642ms ❌ 1 failed requests, 1 non-200 responses, 1 unexpected GraphQL errors
hive-gateway 90 2984 total, 0 failed avg: 3118ms, p95: 14373ms
apollo-server 89 2966 total, 0 failed avg: 3157ms, p95: 25065ms
hive-gateway-bun 89 2967 total, 0 failed avg: 3126ms, p95: 4988ms
mercurius 76 2452 total, 0 failed avg: 3748ms, p95: 5716ms
Summary for: `cosmo`

K6 Output

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

     █ setup

     checks.........................: 100.00% ✓ 16527      ✗ 0    
     data_received..................: 485 MB  16 MB/s
     data_sent......................: 6.6 MB  212 kB/s
     http_req_blocked...............: avg=1.88ms   min=1.53µs  med=3.24µs   max=3.13s p(90)=5.42µs   p(95)=712.67µs
     http_req_connecting............: avg=1.22ms   min=0s      med=0s       max=1.61s p(90)=0s       p(95)=373.24µs
     http_req_duration..............: avg=837.19ms min=2.99ms  med=662.68ms max=5.71s p(90)=1.87s    p(95)=2.14s   
       { expected_response:true }...: avg=837.19ms min=2.99ms  med=662.68ms max=5.71s p(90)=1.87s    p(95)=2.14s   
     http_req_failed................: 0.00%   ✓ 0          ✗ 5529 
     http_req_receiving.............: avg=327.34ms min=34.86µs med=99.41µs  max=4.47s p(90)=1.26s    p(95)=1.65s   
     http_req_sending...............: avg=23.07ms  min=8.54µs  med=14.74µs  max=3.38s p(90)=299.63µs p(95)=16.39ms 
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s    p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=486.77ms min=2.91ms  med=463.34ms max=2.11s p(90)=828.87ms p(95)=983.05ms
     http_reqs......................: 5529    178.595206/s
     iteration_duration.............: avg=1.64s    min=18.62ms med=1.34s    max=9.28s p(90)=3.39s    p(95)=4.18s   
     iterations.....................: 5509    177.949175/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% ✓ 15657      ✗ 0    
     data_received..................: 460 MB  15 MB/s
     data_sent......................: 6.2 MB  202 kB/s
     http_req_blocked...............: avg=3.01ms   min=1.54µs  med=3.59µs   max=5.59s  p(90)=6µs      p(95)=762.19µs
     http_req_connecting............: avg=1.82ms   min=0s      med=0s       max=4.78s  p(90)=0s       p(95)=526.82µs
     http_req_duration..............: avg=910ms    min=3.46ms  med=654.18ms max=7.92s  p(90)=2.07s    p(95)=2.56s   
       { expected_response:true }...: avg=910ms    min=3.46ms  med=654.18ms max=7.92s  p(90)=2.07s    p(95)=2.56s   
     http_req_failed................: 0.00%   ✓ 0          ✗ 5239 
     http_req_receiving.............: avg=417.82ms min=30.31µs med=96.68µs  max=6.96s  p(90)=1.62s    p(95)=2.01s   
     http_req_sending...............: avg=23.67ms  min=7.73µs  med=16.57µs  max=6.82s  p(90)=249.89µs p(95)=14.69ms 
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s     p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=468.5ms  min=3.39ms  med=389.85ms max=2.38s  p(90)=963.93ms p(95)=1.18s   
     http_reqs......................: 5239    170.186336/s
     iteration_duration.............: avg=1.74s    min=20.89ms med=1.36s    max=10.44s p(90)=3.93s    p(95)=4.67s   
     iterations.....................: 5219    169.536646/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
      ↳  99% — ✓ 4875 / ✗ 1
     ✗ no graphql errors
      ↳  99% — ✓ 4875 / ✗ 1
     ✓ valid response structure

     █ setup

     checks.........................: 99.98% ✓ 14625      ✗ 2    
     data_received..................: 430 MB 14 MB/s
     data_sent......................: 5.8 MB 188 kB/s
     http_req_blocked...............: avg=2ms      min=1.38µs  med=3.31µs   max=2.11s p(90)=5.68µs   p(95)=3.63ms 
     http_req_connecting............: avg=1.29ms   min=0s      med=0s       max=1.25s p(90)=0s       p(95)=3.31ms 
     http_req_duration..............: avg=964.04ms min=6.52ms  med=758.42ms max=6s    p(90)=2.13s    p(95)=2.64s  
       { expected_response:true }...: avg=964.05ms min=6.52ms  med=758.17ms max=6s    p(90)=2.13s    p(95)=2.64s  
     http_req_failed................: 0.02%  ✓ 1          ✗ 4895 
     http_req_receiving.............: avg=357ms    min=0s      med=91.3µs   max=4.19s p(90)=1.41s    p(95)=2.1s   
     http_req_sending...............: avg=19.87ms  min=7.91µs  med=15.03µs  max=3s    p(90)=320.28µs p(95)=13.88ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s    p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=587.15ms min=6.44ms  med=535.9ms  max=3.8s  p(90)=1.11s    p(95)=1.25s  
     http_reqs......................: 4896   158.092042/s
     iteration_duration.............: avg=1.86s    min=27.39ms med=1.55s    max=9.72s p(90)=3.93s    p(95)=4.72s  
     iterations.....................: 4876   157.446241/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% ✓ 8892      ✗ 0    
     data_received..................: 262 MB  7.9 MB/s
     data_sent......................: 3.5 MB  107 kB/s
     http_req_blocked...............: avg=1.71ms min=2µs      med=3.8µs   max=70.23ms  p(90)=133.23µs p(95)=12.67ms
     http_req_connecting............: avg=1.63ms min=0s       med=0s      max=49.65ms  p(90)=87.27µs  p(95)=12.3ms 
     http_req_duration..............: avg=3.11s  min=14.17ms  med=1.75s   max=32.62s   p(90)=2.75s    p(95)=14.37s 
       { expected_response:true }...: avg=3.11s  min=14.17ms  med=1.75s   max=32.62s   p(90)=2.75s    p(95)=14.37s 
     http_req_failed................: 0.00%   ✓ 0         ✗ 2984 
     http_req_receiving.............: avg=1.8ms  min=41.43µs  med=95.77µs max=187.33ms p(90)=560.9µs  p(95)=2.06ms 
     http_req_sending...............: avg=1.11ms min=9.4µs    med=21.16µs max=57.94ms  p(90)=1.17ms   p(95)=6.73ms 
     http_req_tls_handshaking.......: avg=0s     min=0s       med=0s      max=0s       p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=3.11s  min=14.06ms  med=1.75s   max=32.62s   p(90)=2.75s    p(95)=14.36s 
     http_reqs......................: 2984    90.100268/s
     iteration_duration.............: avg=3.18s  min=375.63ms med=1.81s   max=32.63s   p(90)=2.78s    p(95)=14.61s 
     iterations.....................: 2964    89.496379/s
     vus............................: 16      min=16      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% ✓ 8838      ✗ 0    
     data_received..................: 261 MB  7.9 MB/s
     data_sent......................: 3.5 MB  106 kB/s
     http_req_blocked...............: avg=2.47ms   min=1.63µs   med=3.44µs  max=67.56ms p(90)=303.68µs p(95)=27.31ms 
     http_req_connecting............: avg=2.37ms   min=0s       med=0s      max=61.14ms p(90)=147.24µs p(95)=25.1ms  
     http_req_duration..............: avg=3.15s    min=10.32ms  med=1.37s   max=32.7s   p(90)=2.13s    p(95)=25.06s  
       { expected_response:true }...: avg=3.15s    min=10.32ms  med=1.37s   max=32.7s   p(90)=2.13s    p(95)=25.06s  
     http_req_failed................: 0.00%   ✓ 0         ✗ 2966 
     http_req_receiving.............: avg=224.56µs min=43.5µs   med=98.19µs max=46.91ms p(90)=197.86µs p(95)=289.17µs
     http_req_sending...............: avg=461.75µs min=9.09µs   med=18.15µs max=44.6ms  p(90)=236.18µs p(95)=2.05ms  
     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=10.25ms  med=1.37s   max=32.7s   p(90)=2.13s    p(95)=25.06s  
     http_reqs......................: 2966    89.503105/s
     iteration_duration.............: avg=3.19s    min=242.02ms med=1.38s   max=32.77s  p(90)=2.19s    p(95)=25.28s  
     iterations.....................: 2946    88.899578/s
     vus............................: 16      min=16      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% ✓ 8841      ✗ 0    
     data_received..................: 260 MB  7.9 MB/s
     data_sent......................: 3.5 MB  107 kB/s
     http_req_blocked...............: avg=723.61µs min=1.87µs  med=3.89µs max=33ms     p(90)=125.2µs p(95)=6.11ms
     http_req_connecting............: avg=671.94µs min=0s      med=0s     max=17.65ms  p(90)=81.41µs p(95)=5.82ms
     http_req_duration..............: avg=3.12s    min=15.58ms med=2.84s  max=6.94s    p(90)=4.62s   p(95)=4.98s 
       { expected_response:true }...: avg=3.12s    min=15.58ms med=2.84s  max=6.94s    p(90)=4.62s   p(95)=4.98s 
     http_req_failed................: 0.00%   ✓ 0         ✗ 2967 
     http_req_receiving.............: avg=57.9ms   min=40.04µs med=170µs  max=1.45s    p(90)=18.23ms p(95)=553ms 
     http_req_sending...............: avg=762.47µs min=7.94µs  med=21.6µs max=340.46ms p(90)=204.1µs p(95)=1.05ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s     max=0s       p(90)=0s      p(95)=0s    
     http_req_waiting...............: avg=3.06s    min=15.42ms med=2.81s  max=6.94s    p(90)=4.61s   p(95)=4.97s 
     http_reqs......................: 2967    89.708014/s
     iteration_duration.............: avg=3.2s     min=82.69ms med=2.88s  max=6.96s    p(90)=4.74s   p(95)=5.05s 
     iterations.....................: 2947    89.103308/s
     vus............................: 12      min=12      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% ✓ 7296      ✗ 0    
     data_received..................: 215 MB  6.7 MB/s
     data_sent......................: 2.9 MB  91 kB/s
     http_req_blocked...............: avg=773.32µs min=1.69µs   med=3.8µs    max=15.19ms p(90)=670.91µs p(95)=7.42ms  
     http_req_connecting............: avg=757.79µs min=0s       med=0s       max=15.14ms p(90)=598.2µs  p(95)=7.34ms  
     http_req_duration..............: avg=3.74s    min=11.4ms   med=3.73s    max=8.03s   p(90)=4.41s    p(95)=5.71s   
       { expected_response:true }...: avg=3.74s    min=11.4ms   med=3.73s    max=8.03s   p(90)=4.41s    p(95)=5.71s   
     http_req_failed................: 0.00%   ✓ 0         ✗ 2452 
     http_req_receiving.............: avg=3.6ms    min=42.79µs  med=101.66µs max=635.8ms p(90)=256.74µs p(95)=527.33µs
     http_req_sending...............: avg=184.8µs  min=9.55µs   med=21.72µs  max=13.89ms p(90)=211.71µs p(95)=869.84µs
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s      p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=3.74s    min=11.29ms  med=3.73s    max=8.03s   p(90)=4.41s    p(95)=5.71s   
     http_reqs......................: 2452    76.506712/s
     iteration_duration.............: avg=3.81s    min=437.42ms med=3.75s    max=8.04s   p(90)=4.44s    p(95)=5.74s   
     iterations.....................: 2432    75.882677/s
     vus............................: 36      min=36      max=300
     vus_max........................: 300     min=300     max=300

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview

Copy link

github-actions bot commented Jun 6, 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
apollo-router 6210ms 166 11694 total, 550 failed avg: 2536ms, p95: 6211ms, max: 12563ms, med: 2247ms ❌ 550 failed requests, 550 non-200 responses, 550 unexpected GraphQL errors
grafbase 7113ms 168 12066 total, 0 failed avg: 3107ms, p95: 7114ms, max: 14942ms, med: 2824ms
cosmo 8111ms 176 12406 total, 0 failed avg: 2717ms, p95: 8111ms, max: 14958ms, med: 2410ms
hive-gateway-bun 29040ms 91 7465 total, 0 failed avg: 11763ms, p95: 29040ms, max: 39254ms, med: 10182ms
mercurius 43014ms 51 4782 total, 0 failed avg: 22112ms, p95: 43015ms, max: 44367ms, med: 19567ms
hive-gateway 50927ms 89 7757 total, 0 failed avg: 11793ms, p95: 50928ms, max: 57972ms, med: 3316ms
apollo-server 59999ms 85 7893 total, 492 failed avg: 11644ms, p95: 60000ms, max: 60152ms, med: 2171ms ❌ 492 failed requests, 492 non-200 responses, 492 unexpected GraphQL errors
Summary for: `apollo-router`

K6 Output

     ✗ response code was 200
      ↳  95% — ✓ 11124 / ✗ 550
     ✗ no graphql errors
      ↳  95% — ✓ 11124 / ✗ 550
     ✓ valid response structure

     █ setup

     checks.........................: 96.80% ✓ 33372      ✗ 1100  
     data_received..................: 978 MB 14 MB/s
     data_sent......................: 14 MB  198 kB/s
     http_req_blocked...............: avg=529.29ms min=1.46µs med=3.72µs  max=10.91s p(90)=2.39s    p(95)=3.64s   
     http_req_connecting............: avg=523.22ms min=0s     med=0s      max=10.91s p(90)=2.38s    p(95)=3.61s   
     http_req_duration..............: avg=2.53s    min=6.54ms med=2.24s   max=12.56s p(90)=4.49s    p(95)=6.21s   
       { expected_response:true }...: avg=2.51s    min=6.54ms med=2.22s   max=12.56s p(90)=4.47s    p(95)=6.18s   
     http_req_failed................: 4.70%  ✓ 550        ✗ 11144 
     http_req_receiving.............: avg=255.32ms min=0s     med=75.81µs max=8.75s  p(90)=346.64ms p(95)=1.66s   
     http_req_sending...............: avg=155.01ms min=8.09µs med=18.5µs  max=6.8s   p(90)=442.55ms p(95)=834.12ms
     http_req_tls_handshaking.......: avg=0s       min=0s     med=0s      max=0s     p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=2.12s    min=6.47ms med=1.95s   max=9.4s   p(90)=3.88s    p(95)=4.38s   
     http_reqs......................: 11694  166.617446/s
     iteration_duration.............: avg=6.05s    min=19ms   med=5.16s   max=28.97s p(90)=12.19s   p(95)=15.1s   
     iterations.....................: 11674  166.332483/s
     vus............................: 5      min=5        max=1937
     vus_max........................: 2000   min=2000     max=2000

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% ✓ 36138      ✗ 0     
     data_received..................: 1.1 GB  15 MB/s
     data_sent......................: 14 MB   200 kB/s
     http_req_blocked...............: avg=417.65ms min=1.62µs  med=3.9µs   max=14.03s p(90)=1.75s    p(95)=3.84s   
     http_req_connecting............: avg=414.27ms min=0s      med=0s      max=14.03s p(90)=1.71s    p(95)=3.83s   
     http_req_duration..............: avg=3.1s     min=3.32ms  med=2.82s   max=14.94s p(90)=5.73s    p(95)=7.11s   
       { expected_response:true }...: avg=3.1s     min=3.32ms  med=2.82s   max=14.94s p(90)=5.73s    p(95)=7.11s   
     http_req_failed................: 0.00%   ✓ 0          ✗ 12066 
     http_req_receiving.............: avg=180.8ms  min=30.82µs med=79.91µs max=6.17s  p(90)=459.48ms p(95)=1.29s   
     http_req_sending...............: avg=121.41ms min=8.28µs  med=19.23µs max=10.53s p(90)=267.76ms p(95)=746.17ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s      max=0s     p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=2.8s     min=3.24ms  med=2.55s   max=11.41s p(90)=5.3s     p(95)=6.04s   
     http_reqs......................: 12066   168.784363/s
     iteration_duration.............: avg=6.15s    min=18.3ms  med=5.2s    max=26.22s p(90)=12.26s   p(95)=14.28s  
     iterations.....................: 12046   168.504594/s
     vus............................: 331     min=71       max=1977
     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% ✓ 37158      ✗ 0     
     data_received..................: 1.1 GB  16 MB/s
     data_sent......................: 15 MB   209 kB/s
     http_req_blocked...............: avg=308.95ms min=1.68µs  med=3.98µs  max=12.74s p(90)=931.95ms p(95)=2.43s   
     http_req_connecting............: avg=306.54ms min=0s      med=0s      max=12.74s p(90)=912.78ms p(95)=2.43s   
     http_req_duration..............: avg=2.71s    min=3.23ms  med=2.4s    max=14.95s p(90)=4.81s    p(95)=8.11s   
       { expected_response:true }...: avg=2.71s    min=3.23ms  med=2.4s    max=14.95s p(90)=4.81s    p(95)=8.11s   
     http_req_failed................: 0.00%   ✓ 0          ✗ 12406 
     http_req_receiving.............: avg=449.25ms min=30.64µs med=89.2µs  max=9.94s  p(90)=998.61ms p(95)=3.88s   
     http_req_sending...............: avg=178.83ms min=8.71µs  med=20.48µs max=13.87s p(90)=359.92ms p(95)=958.76ms
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s      max=0s     p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=2.08s    min=3.13ms  med=2.06s   max=8.3s   p(90)=4.01s    p(95)=4.45s   
     http_reqs......................: 12406   176.2212/s
     iteration_duration.............: avg=6s       min=24.18ms med=5.02s   max=30.11s p(90)=12.24s   p(95)=14.99s  
     iterations.....................: 12386   175.937109/s
     vus............................: 116     min=71       max=1995
     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% ✓ 22335     ✗ 0     
     data_received..................: 655 MB  8.0 MB/s
     data_sent......................: 8.9 MB  108 kB/s
     http_req_blocked...............: avg=14.44ms min=1.89µs   med=4.95µs   max=661.27ms p(90)=27.7ms  p(95)=110.23ms
     http_req_connecting............: avg=13.97ms min=0s       med=0s       max=653.57ms p(90)=26.4ms  p(95)=108.17ms
     http_req_duration..............: avg=11.76s  min=16.22ms  med=10.18s   max=39.25s   p(90)=24.76s  p(95)=29.04s  
       { expected_response:true }...: avg=11.76s  min=16.22ms  med=10.18s   max=39.25s   p(90)=24.76s  p(95)=29.04s  
     http_req_failed................: 0.00%   ✓ 0         ✗ 7465  
     http_req_receiving.............: avg=133.6ms min=40.3µs   med=132.75µs max=8.47s    p(90)=22.05ms p(95)=760.86ms
     http_req_sending...............: avg=9.88ms  min=9.17µs   med=29.33µs  max=1.25s    p(90)=14.67ms p(95)=45.4ms  
     http_req_tls_handshaking.......: avg=0s      min=0s       med=0s       max=0s       p(90)=0s      p(95)=0s      
     http_req_waiting...............: avg=11.61s  min=16.04ms  med=9.88s    max=38.37s   p(90)=24.67s  p(95)=28.94s  
     http_reqs......................: 7465    91.016047/s
     iteration_duration.............: avg=12.13s  min=288.75ms med=10.41s   max=41.86s   p(90)=25.08s  p(95)=29.99s  
     iterations.....................: 7445    90.7722/s
     vus............................: 193     min=59      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% ✓ 14246     ✗ 0     
     data_received..................: 421 MB  4.6 MB/s
     data_sent......................: 5.9 MB  64 kB/s
     http_req_blocked...............: avg=249.78µs min=1.76µs   med=4.96µs   max=26.25ms p(90)=539.77µs p(95)=809.07µs
     http_req_connecting............: avg=212.45µs min=0s       med=0s       max=26.07ms p(90)=456.84µs p(95)=636.18µs
     http_req_duration..............: avg=22.11s   min=12.26ms  med=19.56s   max=44.36s  p(90)=41.61s   p(95)=43.01s  
       { expected_response:true }...: avg=22.11s   min=12.26ms  med=19.56s   max=44.36s  p(90)=41.61s   p(95)=43.01s  
     http_req_failed................: 0.00%   ✓ 0         ✗ 4782  
     http_req_receiving.............: avg=8.28ms   min=42.3µs   med=112.22µs max=1.1s    p(90)=410.96µs p(95)=1.09ms  
     http_req_sending...............: avg=58µs     min=9.26µs   med=31.17µs  max=7.78ms  p(90)=73.37µs  p(95)=98.22µs 
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s      p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=22.1s    min=12.17ms  med=19.56s   max=43.87s  p(90)=41.61s   p(95)=43.01s  
     http_reqs......................: 4782    51.806484/s
     iteration_duration.............: avg=22.17s   min=271.94ms med=19.55s   max=45.15s  p(90)=41.92s   p(95)=43.1s   
     iterations.....................: 4722    51.156466/s
     vus............................: 193     min=60      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% ✓ 23211     ✗ 0     
     data_received..................: 681 MB  7.9 MB/s
     data_sent......................: 9.2 MB  107 kB/s
     http_req_blocked...............: avg=6.88ms min=1.99µs  med=4.79µs   max=351.89ms p(90)=14.75ms p(95)=47.26ms
     http_req_connecting............: avg=6.76ms min=0s      med=0s       max=351.82ms p(90)=14.62ms p(95)=45.43ms
     http_req_duration..............: avg=11.79s min=14.04ms med=3.31s    max=57.97s   p(90)=43.66s  p(95)=50.92s 
       { expected_response:true }...: avg=11.79s min=14.04ms med=3.31s    max=57.97s   p(90)=43.66s  p(95)=50.92s 
     http_req_failed................: 0.00%   ✓ 0         ✗ 7757  
     http_req_receiving.............: avg=7.24ms min=41.48µs med=100.26µs max=948.53ms p(90)=1ms     p(95)=4.68ms 
     http_req_sending...............: avg=3.48ms min=9.5µs   med=27.22µs  max=570.73ms p(90)=3.07ms  p(95)=20.27ms
     http_req_tls_handshaking.......: avg=0s     min=0s      med=0s       max=0s       p(90)=0s      p(95)=0s     
     http_req_waiting...............: avg=11.78s min=13.94ms med=3.3s     max=57.97s   p(90)=43.65s  p(95)=50.9s  
     http_reqs......................: 7757    89.680796/s
     iteration_duration.............: avg=11.91s min=63.73ms med=3.4s     max=58.14s   p(90)=43.76s  p(95)=51s    
     iterations.....................: 7737    89.44957/s
     vus............................: 133     min=59      max=1999
     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% — ✓ 7381 / ✗ 492
     ✗ no graphql errors
      ↳  93% — ✓ 7381 / ✗ 492
     ✓ valid response structure

     █ setup

     checks.........................: 95.74% ✓ 22143     ✗ 984   
     data_received..................: 650 MB 7.0 MB/s
     data_sent......................: 9.4 MB 102 kB/s
     http_req_blocked...............: avg=599.98µs min=1.42µs  med=3.52µs   max=82.7ms   p(90)=363.01µs p(95)=658.26µs
     http_req_connecting............: avg=577.84µs min=0s      med=0s       max=82.63ms  p(90)=292.19µs p(95)=531.81µs
     http_req_duration..............: avg=11.64s   min=11.04ms med=2.17s    max=1m0s     p(90)=55.44s   p(95)=59.99s  
       { expected_response:true }...: avg=8.42s    min=11.04ms med=2.1s     max=59.97s   p(90)=36.64s   p(95)=46.56s  
     http_req_failed................: 6.23%  ✓ 492       ✗ 7401  
     http_req_receiving.............: avg=225.5µs  min=0s      med=103.38µs max=169.53ms p(90)=215.41µs p(95)=337.97µs
     http_req_sending...............: avg=201.94µs min=8.47µs  med=17.37µs  max=39.4ms   p(90)=64.67µs  p(95)=120.23µs
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s       max=0s       p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=11.64s   min=10.93ms med=2.17s    max=1m0s     p(90)=55.44s   p(95)=59.99s  
     http_reqs......................: 7893   85.10698/s
     iteration_duration.............: avg=11.68s   min=50.61ms med=2.18s    max=1m0s     p(90)=55.48s   p(95)=1m0s    
     iterations.....................: 7873   84.891328/s
     vus............................: 25     min=25      max=2000
     vus_max........................: 2000   min=2000    max=2000

Performance Overview

Performance Overview

Subgraphs Overview

Subgraphs Overview

HTTP Overview

HTTP Overview

@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 2 times, most recently from 6670c21 to 17578e8 Compare June 26, 2025 00:37
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 17578e8 to 4a750a8 Compare July 2, 2025 05:32
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 4a750a8 to 170faac Compare July 24, 2025 00:54
@ardatan ardatan merged commit 87b466a into main Jul 24, 2025
1 check passed
@ardatan ardatan deleted the renovate/apollo-graphql-packages branch July 24, 2025 00:56
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.

1 participant