Skip to content

Commit 369d548

Browse files
authored
prep release: v1.61.1
1 parent 9be5aac commit 369d548

20 files changed

+922
-1883
lines changed

.changesets/feat_bryn_connection_metrics.md

-14
This file was deleted.

.changesets/feat_limit_client_batch_size.md

-25
This file was deleted.

.changesets/feat_pipeline_metrics.md

-14
This file was deleted.

.changesets/fix_bnjjj_fix_entity_caching_entity_key.md

-11
This file was deleted.

.changesets/fix_fix_oltp_enpoint_config.md

-13
This file was deleted.

CHANGELOG.md

+87-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,90 @@ All notable changes to Router will be documented in this file.
44

55
This project adheres to [Semantic Versioning v2.0.0](https://semver.org/spec/v2.0.0.html).
66

7+
# [1.61.1] - 2025-03-26
8+
9+
> [!IMPORTANT]
10+
>
11+
> If you have enabled [Distributed query plan caching](https://www.apollographql.com/docs/router/configuration/distributed-caching/#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.
12+
13+
## 🚀 Features
14+
15+
### Add `apollo.router.pipelines` metrics ([PR #6967](https://github.com/apollographql/router/pull/6967))
16+
17+
When the router reloads, either via schema change or config change, a new request pipeline is created.
18+
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.
19+
20+
To enable debugging when request pipelines are being kept around, a new gauge metric has been added:
21+
22+
- `apollo.router.pipelines` - The number of request pipelines active in the router
23+
- `schema.id` - The Apollo Studio schema hash associated with the pipeline.
24+
- `launch.id` - The Apollo Studio launch id associated with the pipeline (optional).
25+
- `config.hash` - The hash of the configuration
26+
27+
By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/6967
28+
29+
### Add `apollo.router.open_connections` metric ([PR #7023](https://github.com/apollographql/router/pull/7023))
30+
31+
To help users to diagnose when connections are keeping pipelines hanging around, the following metric has been added:
32+
- `apollo.router.open_connections` - The number of request pipelines active in the router
33+
- `schema.id` - The Apollo Studio schema hash associated with the pipeline.
34+
- `launch.id` - The Apollo Studio launch id associated with the pipeline (optional).
35+
- `config.hash` - The hash of the configuration.
36+
- `server.address` - The address that the router is listening on.
37+
- `server.port` - The port that the router is listening on if not a unix socket.
38+
- `state` - Either `active` or `terminating`.
39+
40+
You can use this metric to monitor when connections are open via long running requests or keepalive messages.
41+
42+
By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/7009
43+
44+
### Add `batching.maximum_size` configuration option to limit maximum client batch size ([PR #7005](https://github.com/apollographql/router/pull/7005))
45+
46+
Add an optional `maximum_size` parameter to the batching configuration.
47+
48+
* When specified, the router will reject requests which contain more than `maximum_size` queries in the client batch.
49+
* When unspecified, the router performs no size checking (the current behavior).
50+
51+
If the number of queries provided exceeds the maximum batch size, the entire batch fails with error code 422 (`Unprocessable Content`). For example:
52+
53+
```json
54+
{
55+
"errors": [
56+
{
57+
"message": "Invalid GraphQL request",
58+
"extensions": {
59+
"details": "Batch limits exceeded: you provided a batch with 3 entries, but the configured maximum router batch size is 2",
60+
"code": "BATCH_LIMIT_EXCEEDED"
61+
}
62+
}
63+
]
64+
}
65+
```
66+
67+
By [@carodewig](https://github.com/carodewig) in https://github.com/apollographql/router/pull/7005
68+
69+
## 🐛 Fixes
70+
71+
### Use correct default values on omitted OTLP endpoints ([PR #6931](https://github.com/apollographql/router/pull/6931))
72+
73+
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.
74+
75+
Additionally, all other telemetry defaults in the Router configuration consistently use `127.0.0.1` as the hostname rather than `localhost`.
76+
77+
With this change, the Router now uses:
78+
* `http://127.0.0.1:4317` as the default for gRPC protocol
79+
* `http://127.0.0.1:4318` as the default for HTTP protocol
80+
81+
This ensures protocol-appropriate port defaults and consistent hostname usage across all telemetry configurations.
82+
83+
By [@IvanGoncharov](https://github.com/IvanGoncharov) in https://github.com/apollographql/router/pull/6931
84+
85+
### Separate entity keys and representation variables in entity cache key ([Issue #6673](https://github.com/apollographql/router/issues/6673))
86+
87+
This fix separates the entity keys and representation variable values in the cache key, to avoid issues with `@requires` for example.
88+
89+
By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/6888
90+
791
# [1.61.0] - 2025-02-25
892

993
## 🚀 Features
@@ -31,11 +115,11 @@ By [@LongLiveCHIEF](https://github.com/LongLiveCHIEF) in https://github.com/apol
31115

32116
## 🐛 Fixes
33117

34-
### Query Planning: fix `__typename` selections in sibling typename optimization
118+
### Query Planning: fix `__typename` selections in sibling typename optimization
35119

36-
The query planner uses an optimization technique called "sibling typename", which attaches `__typename` selections to their sibling selections so the planner won't need to plan them separately.
120+
The query planner uses an optimization technique called "sibling typename", which attaches `__typename` selections to their sibling selections so the planner won't need to plan them separately.
37121

38-
Previously, when there were multiple identical selections and one of them has a `__typename` attached, the query planner could pick the one without the attachment, effectively losing a `__typename` selection.
122+
Previously, when there were multiple identical selections and one of them has a `__typename` attached, the query planner could pick the one without the attachment, effectively losing a `__typename` selection.
39123

40124
Now, the query planner favors the one with a `__typename` attached without losing the `__typename` selection.
41125

Cargo.lock

+4-4
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ dependencies = [
203203

204204
[[package]]
205205
name = "apollo-federation"
206-
version = "1.61.1-rc.0"
206+
version = "1.61.1"
207207
dependencies = [
208208
"apollo-compiler",
209209
"derive_more",
@@ -256,7 +256,7 @@ dependencies = [
256256

257257
[[package]]
258258
name = "apollo-router"
259-
version = "1.61.1-rc.0"
259+
version = "1.61.1"
260260
dependencies = [
261261
"access-json",
262262
"ahash",
@@ -421,7 +421,7 @@ dependencies = [
421421

422422
[[package]]
423423
name = "apollo-router-benchmarks"
424-
version = "1.61.1-rc.0"
424+
version = "1.61.1"
425425
dependencies = [
426426
"apollo-parser",
427427
"apollo-router",
@@ -437,7 +437,7 @@ dependencies = [
437437

438438
[[package]]
439439
name = "apollo-router-scaffold"
440-
version = "1.61.1-rc.0"
440+
version = "1.61.1"
441441
dependencies = [
442442
"anyhow",
443443
"cargo-scaffold",

apollo-federation/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "apollo-federation"
3-
version = "1.61.1-rc.0"
3+
version = "1.61.1"
44
authors = ["The Apollo GraphQL Contributors"]
55
edition = "2021"
66
description = "Apollo Federation"

apollo-router-benchmarks/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "apollo-router-benchmarks"
3-
version = "1.61.1-rc.0"
3+
version = "1.61.1"
44
authors = ["Apollo Graph, Inc. <[email protected]>"]
55
edition = "2021"
66
license = "Elastic-2.0"

apollo-router-scaffold/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "apollo-router-scaffold"
3-
version = "1.61.1-rc.0"
3+
version = "1.61.1"
44
authors = ["Apollo Graph, Inc. <[email protected]>"]
55
edition = "2021"
66
license = "Elastic-2.0"

apollo-router-scaffold/templates/base/Cargo.template.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ apollo-router = { path ="{{integration_test}}apollo-router" }
2222
apollo-router = { git="https://github.com/apollographql/router.git", branch="{{branch}}" }
2323
{{else}}
2424
# Note if you update these dependencies then also update xtask/Cargo.toml
25-
apollo-router = "1.61.1-rc.0"
25+
apollo-router = "1.61.1"
2626
{{/if}}
2727
{{/if}}
2828
async-trait = "0.1.52"

apollo-router-scaffold/templates/base/xtask/Cargo.template.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ apollo-router-scaffold = { path ="{{integration_test}}apollo-router-scaffold" }
1313
{{#if branch}}
1414
apollo-router-scaffold = { git="https://github.com/apollographql/router.git", branch="{{branch}}" }
1515
{{else}}
16-
apollo-router-scaffold = { git = "https://github.com/apollographql/router.git", tag = "v1.61.1-rc.0" }
16+
apollo-router-scaffold = { git = "https://github.com/apollographql/router.git", tag = "v1.61.1" }
1717
{{/if}}
1818
{{/if}}
1919
anyhow = "1.0.58"

apollo-router/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "apollo-router"
3-
version = "1.61.1-rc.0"
3+
version = "1.61.1"
44
authors = ["Apollo Graph, Inc. <[email protected]>"]
55
repository = "https://github.com/apollographql/router/"
66
documentation = "https://docs.rs/apollo-router"
@@ -60,7 +60,7 @@ ci = []
6060
access-json = "0.1.0"
6161
anyhow = "1.0.86"
6262
apollo-compiler.workspace = true
63-
apollo-federation = { path = "../apollo-federation", version = "=1.61.1-rc.0" }
63+
apollo-federation = { path = "../apollo-federation", version = "=1.61.1" }
6464
arc-swap = "1.6.0"
6565
async-channel = "1.9.0"
6666
async-compression = { version = "0.4.6", features = [

dockerfiles/tracing/docker-compose.datadog.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ services:
33

44
apollo-router:
55
container_name: apollo-router
6-
image: ghcr.io/apollographql/router:v1.61.1-rc.0
6+
image: ghcr.io/apollographql/router:v1.61.1
77
volumes:
88
- ./supergraph.graphql:/etc/config/supergraph.graphql
99
- ./router/datadog.router.yaml:/etc/config/configuration.yaml

dockerfiles/tracing/docker-compose.jaeger.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ services:
44
apollo-router:
55
container_name: apollo-router
66
#build: ./router
7-
image: ghcr.io/apollographql/router:v1.61.1-rc.0
7+
image: ghcr.io/apollographql/router:v1.61.1
88
volumes:
99
- ./supergraph.graphql:/etc/config/supergraph.graphql
1010
- ./router/jaeger.router.yaml:/etc/config/configuration.yaml

dockerfiles/tracing/docker-compose.zipkin.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ services:
44
apollo-router:
55
container_name: apollo-router
66
build: ./router
7-
image: ghcr.io/apollographql/router:v1.61.1-rc.0
7+
image: ghcr.io/apollographql/router:v1.61.1
88
volumes:
99
- ./supergraph.graphql:/etc/config/supergraph.graphql
1010
- ./router/zipkin.router.yaml:/etc/config/configuration.yaml

helm/chart/router/Chart.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ type: application
2020
# so it matches the shape of our release process and release automation.
2121
# By proxy of that decision, this version uses SemVer 2.0.0, though the prefix
2222
# of "v" is not included.
23-
version: 1.61.1-rc.0
23+
version: 1.61.1
2424

2525
# This is the version number of the application being deployed. This version number should be
2626
# incremented each time you make changes to the application. Versions are not expected to
2727
# follow Semantic Versioning. They should reflect the version the application is using.
2828
# It is recommended to use it with quotes.
29-
appVersion: "v1.61.1-rc.0"
29+
appVersion: "v1.61.1"

helm/chart/router/README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[router](https://github.com/apollographql/router) Rust Graph Routing runtime for Apollo Federation
44

5-
![Version: 1.61.1-rc.0](https://img.shields.io/badge/Version-1.61.1--rc.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.61.1-rc.0](https://img.shields.io/badge/AppVersion-v1.61.1--rc.0-informational?style=flat-square)
5+
![Version: 1.61.1](https://img.shields.io/badge/Version-1.61.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.61.1](https://img.shields.io/badge/AppVersion-v1.61.1-informational?style=flat-square)
66

77
## Prerequisites
88

@@ -11,15 +11,15 @@
1111
## Get Repo Info
1212

1313
```console
14-
helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.61.1-rc.0
14+
helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.61.1
1515
```
1616

1717
## Install Chart
1818

1919
**Important:** only helm3 is supported
2020

2121
```console
22-
helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.61.1-rc.0 --values my-values.yaml
22+
helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.61.1 --values my-values.yaml
2323
```
2424

2525
_See [configuration](#configuration) below._

0 commit comments

Comments
 (0)