Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🚀 Features
Configurable histogram buckets for metrics (Issue #2333)
It is now possible to change the default bucketing for histograms generated for metrics:
By @bnjjj in #3098
🐛 Fixes
Federation v2.4.7 (Issue #3170, Issue #3133)
This release bumps the Router's Federation support from v2.4.7 to v2.4.7, which brings in notable query planner fixes from v2.4.7. Of note from those releases, this brings query planner fixes that (per that dependency's changelog):
Cannot add selection of field X to selection set of parent type Y
).interface
orunion
field was not being queried for all the types it should be.By @Geal in #3185
Set the global allocator in the library crate, not just the executable (Issue #3126)
In 1.19, Apollo Router switched to use
jemalloc
as the global Rust allocator on Linux to reduce memory fragmentation. However, prior to this change this was only occurring in the executable binary provided by theapollo-router
crate and custom binaries using the crate as a library were not getting this benefit.The
apollo-router
library crate now sets the global allocator so that custom binaries also take advantage of this by default. If some other choice is desired, theglobal-allocator
Cargo feature flag can be disabled inCargo.toml
with:Library crates that depend on
apollo-router
(if any) should also do this in order to leave the choice to the eventual executable. (Cargo default features are only disabled if all dependents specifydefault-features = false
.)By @SimonSapin in #3157
Add
ca-certificates
to our Docker image (Issue #3173)We removed
curl
from our Docker images to improve security, which meant that our implicit install ofca-certificates
(as a dependency ofcurl
) was no longer performed.This fix reinstates the
ca-certificates
package explicitly, which is required for the router to be able to process TLS requests.By @garypen in #3174
Helm: Running of
helm test
no longer failsRunning
helm test
was generating an error sincewget
was sending a request without a proper body and expecting an HTTP status response of 2xx. Without the proper body, it expectedly resulted in an HTTP status of 400. By switching to usingnetcat
(ornc
) we will now check that the port is up and use that to determine that the router is functional.By @bbardawilwiser in #3096
Move
curl
dependency to separate layer in Docker image (Issue #3144)We've moved
curl
out of the Docker image we publish. Thecurl
command is only used in the image we produce today for the sake of downloading dependencies. It is never used after that, but we can move it to a separate layer to further remove it from the image.By @abernix in #3146
🛠 Maintenance
Improve
cargo-about
license checking (Issue #3176)From the description of this cargo about PR, it is possible for
NOASSERTION
identifiers to be added when gathering license information, causing license checks to fail. This change uses the newcargo-about
configurationfilter-noassertion
to eliminate the problem.By @garypen in #3178