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
prep release: v1.43.1 #4889
Merged
Merged
prep release: v1.43.1 #4889
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CI performance tests
|
shorgi
approved these changes
Mar 29, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed changelog
nicholascioli
approved these changes
Apr 1, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Enable displaying trace and span id on logs (PR #4823)
To enable correlation between trace and logs
trace_id
andspan_id
can now be included on the log messages.Json:
Text:
To configure this, use
display_span_id
anddisplay_trace_id
options in the logging exporter configuration.Json (defaults to true):
Text (defaults to false):
By @BrynCooke in #4823
count errors in the apollo.router.graphql_error metrics (Issue #4749)
This introduces a new counter metric called
apollo.router.graphql_error
that counts GraphQL errors, split by their codeBy @Geal in #4751
expose the operation signature in the context (Issue #4558)
It is available at the key
apollo_operation_signature
.By @Geal in #4864
Experimental logging of broken pipe errors (PR #4870)
You can now emit a log message each time the client closes the connection early, which can help you debug issues with clients that close connections before the server can respond.
This feature is disabled by default but can be enabled by setting the
experimental_log_broken_pipe
option totrue
:Users that have internet facing routers will likely not want to opt in to this log message as they have no control over the clients.
By @Geal in #4770 and @BrynCooke in #4870
🐛 Fixes
Entity cache: fix support for Redis cluster (PR #4790)
in a Redis cluster, entities can be stored in different nodes, and a query to one node should only refer to the keys it manages. This is challenging for the MGET operation which requests multiple entities in the same request from the same node. This splits the MGET query in multiple MGETs calls grouped by key hash, to make sure each one will get to the corresponding node, then merges responses in the correct order.
By @Geal in #4790
Give spans their proper parent in the plugin stack (Issue #4827)
Due to the way plugin spans were created and applied, they would appear as siblings instead of being nested, which creates some issues when displaying traces and accounting for time spent in Datadog. Plugin spans are now correctly nested within each other.
By @Geal in #4877
Fix(telemetry): keep consistency between tracing otlp endpoint (Issue #4798)
In our documentation when configuration http endpoint for tracing otlp exporter we say that users should only include the base address of the otlp endpoint. It was only working for grpc protocol and not http due to this bug. This inconsistency is now fixed with a workaround in the router waiting for the fix in openetelemetry crate.
So for example you'll have to specify the right path for http:
By @bnjjj in #4801
Execute the entire request pipeline if the client closed the connection (Issue #4569), Issue #4576), (Issue #4589), (Issue #4590), (Issue #4611)
The router is now making sure that the entire request handling pipeline is executed when the client closes the connection early, to let telemetry and any rhai scrit or coprocessor perform their tasks before canceling. Before that, when a client canceled a request, the entire execution was dropped and parts of the router, like telemetry, could not run properly. It now executes up to the first response event (in the case of subscription or
@defer
usage), adds a 499 status code to the response and skips the remaining subgraph requests.This change will report more requests to Studio and the configured telemetry, which will appear like a sudden increase in errors, because those failing requests were not reported before. To keep the previous behavior of immediately dropping execution for canceled requests, it is possible with the following option:
By @Geal in #4770
null
extensions incorrectly disallowed on request (Issue #4856)The graphql over http spec mandates
null
is allowed for request extensions.We were previously rejecting such payloads, but now we will allow them. For example:
Fixes #4856
By @BrynCooke in #4865
fix the log lines for external extensibility (PR #4869)
The
execution
andsupergraph
responses were mistakenly reporting asrouter
. This is now fixed.By @garypen in #4869
Remove invalid payload on graphql-ws Ping message (Issue #4852)
According to graphql-ws spec
Ping
payload should be an object or null but router was sending a string.To ensure better compatibility Ping's payload was removed.
By @IvanGoncharov in #4852