-
Notifications
You must be signed in to change notification settings - Fork 275
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.49.0 #5473
Merged
Merged
prep release: v1.49.0 #5473
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
lrlna
requested review from
a team,
dariuszkuc,
sachindshinde,
goto-bus-stop,
SimonSapin,
TylerBloom and
duckki
as code owners
June 18, 2024 12:07
CI performance tests
|
abernix
reviewed
Jun 18, 2024
abernix
requested changes
Jun 18, 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.
I mistakenly pressed Enter, but meant to push Request changes with my last review.
Co-authored-by: Jesse Rosenberger <git@jro.cc>
Co-authored-by: Jesse Rosenberger <git@jro.cc>
Co-authored-by: Jesse Rosenberger <git@jro.cc>
BrynCooke
reviewed
Jun 18, 2024
BrynCooke
reviewed
Jun 18, 2024
abernix
reviewed
Jun 18, 2024
Co-authored-by: Bryn Cooke <BrynCooke@gmail.com>
Co-authored-by: Bryn Cooke <BrynCooke@gmail.com>
abernix
approved these changes
Jun 18, 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.
garypen
approved these changes
Jun 18, 2024
bnjjj
approved these changes
Jun 18, 2024
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
Override tracing span names using custom span selectors (Issue #5261)
Adds the ability to override span names by setting the
otel.name
attribute on any custom telemetry selectors .This example changes the span name to
router
:By @bnjjj in #5365
Add description and units to standard instruments (PR #5407)
This PR adds description and units to standard instruments available in the router. These descriptions and units have been copy pasted directly from the OpenTelemetry semantic conventions and are needed for better integrations with APMs.
By @bnjjj in #5407
Add Extensions with_lock() to try and avoid timing issues (PR #5360)
It's easy to trip over issues when interacting with Extensions because we inadvertently hold locks for too long. This can be a source of bugs in the router and causes a lot of tests to be flaky.
with_lock() avoids this kind of problem by explicitly restricting the lifetime of the Extensions lock.
By @garypen in #5360
Add support for
unix_ms_now
in Rhai customizations (Issue #5182)Rhai customizations can now use the
unix_ms_now()
function to obtain the current Unix timestamp in milliseconds since the Unix epoch.For example:
By @shaikatzz in #5181
🐛 Fixes
Improve error message produced when subgraphs responses don't include an expected
content-type
header value (Issue #5359)To enhance debuggability when a subgraph response lacks an expected
content-type
header value, the error message now includes additional details.Examples:
By @IvanGoncharov in #5223
Prevent formatting in hot path (PR #5405)
Removes unneeded formatting in the hot path for demand control to improve performance.
By @BrynCooke in #5405
Skip hashing the entire schema on every query plan cache lookup (PR #5374)
This fixes performance issues when looking up query plans for large schemas.
By @Geal in #5374
Optimize GraphQL instruments (PR #5375)
When processing selectors for GraphQL instruments, heap allocations should be avoided for optimal performance. This change removes Vec allocations that were previously performed per field, yielding significant performance improvements.
By @BrynCooke in #5375
Log metrics overflow as a warning rather than an error (Issue #5173)
If a metric has too high a cardinality, the following is displayed as a warning instead of an error:
OpenTelemetry metric error occurred: Metrics error: Warning: Maximum data points for metric stream exceeded/ Entry added to overflow
By @bnjjj in #5287
Add support of
response_context selector
when in errors (PR #5288)Provides the ability to configure custom instruments. For example:
By @bnjjj in #5288
Inaccurate
apollo_router_opened_subscriptions
counter (PR #5363)Fixes the
apollo_router_opened_subscriptions
counter which previously only incremented. The counter now also decrements.By @bnjjj in #5363
📃 Configuration
Rename trace telemetry selector (PR #5337)
v1.48.0 introduced the
apollo
trace_id
selector.trace_id
is a misnomer for this metric, since the selector actually represents a GraphOS Studio operation ID. To access this selector, usestudio_operation_id
:By @bnjjj in #5337
Set Apollo metrics generation mode to
new
by default (PR #5265)Changes the default value of
experimental_apollo_metrics_generation_mode
tonew
. All metrics are showing that identical signatures are being generated in this mode.By @bonnici in #5265
🛠 Maintenance
Skip GraphOS tests when Apollo key not present (PR #5362)
Some tests require
APOLLO_KEY
andAPOLLO_GRAPH_REF
to execute successfully.These are now skipped if these env variables are not present.
By @BrynCooke in #5362
📚 Documentation
Standard instrument configuration documentation for subgraphs (PR #5422)
Added documentation about standard instruments available at the subgraph service level:
http.client.request.body.size
- A histogram of request body sizes for requests handled by subgraphs.http.client.request.duration
- A histogram of request durations for requests handled by subgraphs.http.client.response.body.size
- A histogram of response body sizes for requests handled by subgraphs.These instruments are configurable in
router.yaml
:By @bnjjj in #5422
Update docs frontmatter for consistency and discoverability (PR #5164)
Makes title case consistent for page titles and adds subtitles and meta-descriptions are updated for better discoverability.
By @Meschreiber in #5164
🧪 Experimental
Warm query plan cache using persisted queries on startup (Issue #5334)
Adds support for the router to use persisted queries to warm the query plan cache upon startup using a new
experimental_prewarm_query_plan_cache
configuration option underpersisted_queries
.To enable:
By @lleadbet in #5340
Apollo reporting signature enhancements (PR #5062)
Adds a new experimental configuration option to turn on some enhancements for the Apollo reporting stats report key:
This new configuration (telemetry.apollo.experimental_apollo_signature_normalization_algorithm) only works when in
experimental_apollo_metrics_generation_mode: new
mode and we don't yet recommend enabling it while we continue to verify that the new functionality works as expected.By @bonnici in #5062
Add experimental support for sending traces to Studio via OTLP (PR #4982)
As the ecosystem around OpenTelemetry (OTel) has been expanding rapidly, we are evaluating a migration of Apollo's internal
tracing system to use an OTel-based protocol.
In the short-term, benefits include:
Long-term, we see this as a strategic enhancement to consolidate these two disparate tracing systems.
This will pave the way for future enhancements to more easily plug into the Studio trace visualizer.
Configuration
This change adds a new configuration option
experimental_otlp_tracing_sampler
. This can be used to senda percentage of traces via OTLP instead of the native Apollo Usage Reporting protocol. Supported values:
always_off
(default): send all traces via Apollo Usage Reporting protocol.always_on
: send all traces via OTLP.0.0 - 1.0
: the ratio of traces to send via OTLP (0.5 = 50 / 50).Note that this sampler is only applied after the common tracing sampler, for example:
Sample 1% of traces, send all traces via OTLP:
by @timbotnik in #4982