Skip to content

prep release: v1.61.1 #7129

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 27, 2025
Merged

prep release: v1.61.1 #7129

merged 2 commits into from
Mar 27, 2025

Conversation

abernix
Copy link
Member

@abernix abernix commented Mar 26, 2025

Note

When approved, this PR will merge into the 1.61.1 branch which will — upon being approved itself — merge into 1.x.

Things to review in this PR:

  • Changelog correctness (There is a preview below, but it is not necessarily the most up to date. See the Files Changed for the true reality.)
  • Version bumps
  • That it targets the right release branch (1.61.1 in this case!).

Important

If you have enabled Distributed query plan caching, this release contains changes which necessarily alter the hashing algorithm used for the cache keys. On account of this, you should anticipate additional cache regeneration cost when updating between these versions while the new hashing algorithm comes into service.

🚀 Features

Add apollo.router.pipelines metrics (PR #6967)

When the router reloads, either via schema change or config change, a new request pipeline is created.
Existing request pipelines are closed once their requests finish. However, this may not happen if there are ongoing long requests that do not finish, such as Subscriptions.

To enable debugging when request pipelines are being kept around, a new gauge metric has been added:

  • apollo.router.pipelines - The number of request pipelines active in the router
    • schema.id - The Apollo Studio schema hash associated with the pipeline.
    • launch.id - The Apollo Studio launch id associated with the pipeline (optional).
    • config.hash - The hash of the configuration

By @BrynCooke in #6967

Add apollo.router.open_connections metric (PR #7023)

To help users to diagnose when connections are keeping pipelines hanging around, the following metric has been added:

  • apollo.router.open_connections - The number of request pipelines active in the router
    • schema.id - The Apollo Studio schema hash associated with the pipeline.
    • launch.id - The Apollo Studio launch id associated with the pipeline (optional).
    • config.hash - The hash of the configuration.
    • server.address - The address that the router is listening on.
    • server.port - The port that the router is listening on if not a unix socket.
    • state - Either active or terminating.

You can use this metric to monitor when connections are open via long running requests or keepalive messages.

By @BrynCooke in #7009

Add batching.maximum_size configuration option to limit maximum client batch size (PR #7005)

Add an optional maximum_size parameter to the batching configuration.

  • When specified, the router will reject requests which contain more than maximum_size queries in the client batch.
  • When unspecified, the router performs no size checking (the current behavior).

If the number of queries provided exceeds the maximum batch size, the entire batch fails with error code 422 (Unprocessable Content). For example:

{
  "errors": [
    {
      "message": "Invalid GraphQL request",
      "extensions": {
        "details": "Batch limits exceeded: you provided a batch with 3 entries, but the configured maximum router batch size is 2",
        "code": "BATCH_LIMIT_EXCEEDED"
      }
    }
  ]
}

By @carodewig in #7005

🐛 Fixes

Use correct default values on omitted OTLP endpoints (PR #6931)

Previously, when the configuration didn't specify an OTLP endpoint, the Router would always default to http://localhost:4318. However, port 4318 is the correct default only for the HTTP protocol, while port 4317 should be used for gRPC.

Additionally, all other telemetry defaults in the Router configuration consistently use 127.0.0.1 as the hostname rather than localhost.

With this change, the Router now uses:

  • http://127.0.0.1:4317 as the default for gRPC protocol
  • http://127.0.0.1:4318 as the default for HTTP protocol

This ensures protocol-appropriate port defaults and consistent hostname usage across all telemetry configurations.

By @IvanGoncharov in #6931

Separate entity keys and representation variables in entity cache key (Issue #6673)

This fix separates the entity keys and representation variable values in the cache key, to avoid issues with @requires for example.

By @bnjjj in #6888

@svc-apollo-docs
Copy link
Collaborator

svc-apollo-docs commented Mar 26, 2025

⚠️ Docs preview not attached to branch

The preview was not built because the PR's base branch 1.61.1 is not in the list of sources.

An Apollo team member can comment one of the following commands to dictate which branch to attach the preview to:

  • !docs set-base-branch 1.x
  • !docs set-base-branch dev

Build ID: f9589c8c162a12b866df0167

@abernix abernix marked this pull request as ready for review March 26, 2025 19:00
@abernix abernix requested review from a team as code owners March 26, 2025 19:00
@abernix abernix merged commit 369d548 into 1.61.1 Mar 27, 2025
14 checks passed
@abernix abernix deleted the prep-1.61.1 branch March 27, 2025 09:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants