Skip to content
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

chore(deps): update dependency apollographql/router to v1.52.0 #2010

Merged
merged 1 commit into from
Aug 1, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jul 30, 2024

Mend Renovate

This PR contains the following updates:

Package Update Change
apollographql/router minor v1.51.0 -> v1.52.0

Release Notes

apollographql/router (apollographql/router)

v1.52.0

Compare Source

🚀 Features

Provide helm support for when router's health_check's default path is not being used(Issue #​5652)

When helm chart is defining the liveness and readiness check probes, if the router has been configured to use a non-default health_check path, use that rather than the default ( /health )

By Jon Christiansen in https://github.com/apollographql/router/pull/5653

Support new span and metrics formats for entity caching (PR #​5625)

Metrics of the router's entity cache have been converted to the latest format with support for custom telemetry.

The following example configuration shows the the cache instrument, the cache selector in the subgraph service, and the cache attribute of a subgraph span:

telemetry:
  instrumentation:
    instruments:
      default_requirement_level: none
      cache:
        apollo.router.operations.entity.cache:
          attributes:
            entity.type: true
            subgraph.name:
              subgraph_name: true
            supergraph.operation.name:
              supergraph_operation_name: string
      subgraph:
        only_cache_hit_on_subgraph_products:
          type: counter
          value:
            cache: hit
          unit: hit
          description: counter of subgraph request cache hit on subgraph products
          condition:
            all:
            - eq:
              - subgraph_name: true
              - products
            - gt:
              - cache: hit
              - 0
          attributes:
            subgraph.name: true
            supergraph.operation.name:
              supergraph_operation_name: string

To learn more, go to Entity caching docs.

By @​Geal and @​bnjjj in https://github.com/apollographql/router/pull/5625

Helm: Support renaming key for retrieving APOLLO_KEY secret (Issue #​5661)

A user of the router Helm chart can now rename the key used to retrieve the value of the secret key referenced by APOLLO_KEY.

Previously, the router Helm chart hardcoded the key name to managedFederationApiKey. This didn't support users whose infrastructure required custom key names when getting secrets, such as Kubernetes users who need to use specific key names to access a secretStore or externalSecret. This change provides a user the ability to control the name of the key to use in retrieving that value.

By Jon Christiansen in https://github.com/apollographql/router/pull/5662

🐛 Fixes

Prevent Datadog timeout errors in logs (Issue #​2058)

The router's Datadog exporter has been updated to reduce the frequency of logged errors related to connection pools.

Previously, the connection pools used by the Datadog exporter frequently timed out, and each timeout logged an error like the following:

2024-07-19T15:28:22.970360Z ERROR  OpenTelemetry trace error occurred: error sending request for url (http://127.0.0.1:8126/v0.5/traces): connection error: Connection reset by peer (os error 54)

Now, the pool timeout for the Datadog exporter has been changed so that timeout errors happen much less frequently.

By @​BrynCooke in https://github.com/apollographql/router/pull/5692

Allow service version overrides (PR #​5689)

The router now supports configuration of service.version via YAML file configuration. This enables users to produce custom versioned builds of the router.

The following example overrides the version to be 1.0:

telemetry:
  exporters:
    tracing:
      common:
        resource:
          service.version: 1.0

By @​BrynCooke in https://github.com/apollographql/router/pull/5689

Populate Datadog span.kind (PR #​5609)

Because Datadog traces use span.kind to differentiate between different types of spans, the router now ensures that span.kind is correctly populated using the OpenTelemetry span kind, which has a 1-2-1 mapping to those set out in dd-trace.

By @​BrynCooke in https://github.com/apollographql/router/pull/5609

Remove unnecessary internal metric events from traces and spans (PR #​5649)

The router no longer includes some internal metric events in traces and spans that shouldn't have been included originally.

By @​bnjjj in https://github.com/apollographql/router/pull/5649

Support Datadog span metrics (PR #​5609)

When using the APM view in Datadog, the router now displays span metrics for top-level spans or spans with the _dd.measured flag set.

The router sets the _dd.measured flag by default for the following spans:

  • request
  • router
  • supergraph
  • subgraph
  • subgraph_request
  • http_request
  • query_planning
  • execution
  • query_parsing

To enable or disable span metrics for any span, configure span_metrics for the Datadog exporter:

telemetry:
  exporters:
    tracing:
      datadog:
        enabled: true
        span_metrics:

### Disable span metrics for supergraph
          supergraph: false

### Enable span metrics for my_custom_span
          my_custom_span: true

By @​BrynCooke in https://github.com/apollographql/router/pull/5609 and https://github.com/apollographql/router/pull/5703

Use spawn_blocking for query parsing and validation (PR #​5235)

To prevent its executor threads from blocking on large queries, the router now runs query parsing and validation in a Tokio blocking task.

By @​xuorig in https://github.com/apollographql/router/pull/5235

🛠 Maintenance

chore: Update rhai to latest release (1.19.0) (PR #​5655)

In Rhai 1.18.0, there were changes to how exceptions within functions were created. For details see: https://github.com/rhaiscript/rhai/blob/7e0ac9d3f4da9c892ed35a211f67553a0b451218/CHANGELOG.md?plain=1#L12

We've modified how we handle errors raised by Rhai to comply with this change, which means error message output is affected. The change means that errors in functions will no longer document which function the error occurred in, for example:

-         "rhai execution error: 'Runtime error: I have raised an error (line 223, position 5)\nin call to function 'process_subgraph_response_string''"
+         "rhai execution error: 'Runtime error: I have raised an error (line 223, position 5)'"

Making this change allows us to keep up with the latest version (1.19.0) of Rhai.

By @​garypen in https://github.com/apollographql/router/pull/5655

Add version in the entity cache hash (PR #​5701)

The hashing algorithm of the router's entity cache has been updated to include the entity cache version.

[!IMPORTANT]
If you have previously enabled entity caching, you should expect additional cache regeneration costs when updating to this version of the router while the new hashing algorithm comes into service.

By @​bnjjj in https://github.com/apollographql/router/pull/5701

Improve testing by avoiding cache effects and redacting tracing details (PR #​5638)

We've had some problems with flaky tests and this PR addresses some of them.

The router executes in parallel and concurrently. Many of our tests use snapshots to try and make assertions that functionality is continuing to work correctly. Unfortunately, concurrent/parallel execution and static snapshots don't co-operate very well. Results may appear in pseudo-random order (compared to snapshot expectations) and so tests become flaky and fail without obvious cause.

The problem becomes particularly acute with features which are specifically designed for highly concurrent operation, such as batching.

This set of changes addresses some of the router testing problems by:

  1. Making items in a batch test different enough that caching effects are avoided.
  2. Redacting various details so that sequencing is not as much of an issue in the otel traces tests.

By @​garypen in https://github.com/apollographql/router/pull/5638

📚 Documentation

Update router naming conventions (PR #​5400)

Renames our router product to distinguish between our non-commercial and commercial offerings. Instead of referring to the Apollo Router, we now refer to the following:

  • Apollo Router Core is Apollo’s free-and-open (ELv2 licensed) implementation of a routing runtime for supergraphs.
  • GraphOS Router is based on the Apollo Router Core and fully integrated with GraphOS. GraphOS Routers provide access to GraphOS’s commercial runtime features.

By @​shorgi in https://github.com/apollographql/router/pull/5400

🧪 Experimental

Enable Rust-based API schema implementation (PR #​5623)

The router has transitioned to solely using a Rust-based API schema generation implementation.

Previously, the router used a Javascript-based implementation. After testing for a few months, we've validated the improved performance and robustness of the new Rust-based implementation, so the router now only uses it.

By @​goto-bus-stop in https://github.com/apollographql/router/pull/5623


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from a team as a code owner July 30, 2024 15:46
@renovate renovate bot force-pushed the renovate/apollographql-router-1.x branch 3 times, most recently from e457986 to 5c85f03 Compare August 1, 2024 18:47
@renovate renovate bot force-pushed the renovate/apollographql-router-1.x branch from 5c85f03 to 683a0dd Compare August 1, 2024 19:00
@aaronArinder aaronArinder enabled auto-merge (squash) August 1, 2024 19:00
@aaronArinder aaronArinder merged commit 6ead9ca into main Aug 1, 2024
19 checks passed
@aaronArinder aaronArinder deleted the renovate/apollographql-router-1.x branch August 1, 2024 19:10
@jonathanrainer jonathanrainer added this to the v0.26.0 milestone Aug 20, 2024
@jonathanrainer jonathanrainer mentioned this pull request Aug 20, 2024
jonathanrainer added a commit that referenced this pull request Aug 21, 2024
> Important: 1 potentially breaking changes below, indicated by **❗
BREAKING ❗**

## ❗ BREAKING ❗

- **The --client-timeout flag now represents the period over which we
allow retries - @aaronArinder PR #2019**

The documentation for this flag indicated that this was the period over
which Rover would retry a command if there were retryable HTTP errors.
However this was not the case due to complexities in how the client was
instantiated. This has now been corrected, so the documented behaviour
matches the actual behaviour.

## 🚀 Features

- **Make `rover` operate asynchronously - @aaronArinder @Geal PR #2035**

Removes the use of the `reqwest` blocking client allowing `rover` to
operate using an asynchronous `tokio` runtime. This will bring
performance improvements, particularly where working with large sets of
subgraphs.

- **Add `--graph-ref` to `supergraph compose` - @jonathanrainer PR
#2001**

Adds the same capabilities to `supergraph compose` as were added to
`rover dev` in 0.25.0. You can now specify an existing Studio graphref
and the command will run composition over the subgraphs specified in the
graphref, as well as any overrides specified in a given supergraph
config.

- **Add new `rover cloud` command - @loshz PR #2008**

Adds a new command to allow you to push or pull the Router config to a
Cloud Router that is running in Studio

- **Add new `rover cloud config validate` subcommand - @loshz PR #2055**

Adds a new command enabling you to validate the Router config for a
Cloud Router

## 🐛 Fixes

- **Don't run IsFederatedGraph before running SubgraphFetchQuery -
@glasser PR #2004**

Previously we were checking IsFederatedGraph before running
SubgraphFetch, but the same check is actually performed in SubgraphFetch
anyway so the first call to IsFederatedSubgraph is unnecessary.

- **Allow `--graph-ref` to support contract variants - @jonathanrainer
PR #2036**

There was a bug where using the graphref of a contract variant would
cause an error about non-federated graphs. This has been resolved and
now contract variant graphrefs can also be used.

- **Remove last reference to blocking `reqwest` client - @loshz PR
#2050**

One reference to the blocking `reqwest` client had been leftover from
the move to `async` operation in #2035, this was removed.

- **Ensure NPM installer on Windows works correctly - @jonathanrainer PR
#2059**

The NPM installer on Windows had been broken because it was attempt to
rename a binary from `rover` to its correct name, rather than from
`rover.exe` to its correct name. This has been corrected and extra CI
and unit tests added to prevent a recurrence.

- **Make sure a message is returned to the user when cloud config is
updated correctly - @loshz PR #2063**
- **Fix a regression in `rover dev` where it would no longer watch
subgraphs correctly - @jonathanrainer PR #2065**

## 🛠 Maintenance

- **Integrate the Smoke Tests Into Integration Test Framework To Allow
Easier Extension - @jonathanrainer PR #1999**
- **Add nicer names to GitHub actions workflow - @jonathanrainer PR
#2002**
- **Add test for subgraph introspect - @jonathanrainer PR #2003**
- **Update node.js packages - @jonathanrainer PR #2006**

   Includes `eslint` to v9.8.0 and `node` to v20.16.0

- **Update Rust to v1.80.0 - @jonathanrainer PR #2007**
- **Fix up CODEOWNERS to bring us inline with standard - @jonathanrainer
PR #2016**
- **Add E2E test for `supergraph compose` - @aaronArinder PR #2005**
- **Add E2E test for `subgraph fetch` - @jonathanrainer PR #2015**
- **Update Rust crates - @aaronArinder PR #2011**

   Includes `apollo-parser` to v0.8 and `octocrab` to v0.39.0

- **Update apollographql/router to v1.52.0 - @aaronArinder PR #2010**
- **Add E2E test for `supergraph compose` - @aaronArinder PR #2005**
- **Rename a test and add a `#[once]` macro to a fixture - @aaronArinder
PR #2017**
- **Add E2E tests for `graph introspect` - @jonathanrainer PR #2020**
- **Add missing inherit for secrets - @jonathanrainer PR #2021**
- **Add E2E tests for `whoami` - @jonathanrainer PR #2022**
- **Update rstest to v0.22.0 - @jonathanrainer PR #2030**
- **Add E2E tests for `config clear` - @aaronArinder PR #2029**
- **Add E2E tests for `subgraph lint` - @aaronArinder PR #2023**
- **Add E2E tests for `subgraph publish` - @jonathanrainer PR #2031**
- **Add E2E tests for `graph fetch` - @aaronArinder PR #2026**
- **Add E2E tests for `supergraph fetch` - @aaronArinder PR #2024**
- **Add E2E tests for `subgraph list` - @aaronArinder PR #2027**
- **Add E2E tests for `graph check` and `subgraph check` - @aaronArinder
PR #2025**
- **Add E2E tests for `install plugin` - @aaronArinder PR #2028**
- **Make E2E tests account for changes in #2019 - @jonathanrainer PR
#2032**
- **Deprecate the use of Emoji - @loshz PR #2034**
- **Let E2E tests message Slack if there are nightly failures -
@jonathanrainer PR #2033**
- **Tighten up Slack Messaging for E2E tests - @jonathanrainer PR
#2039**
- **Update `axios-mock-adapter` to v2.0.0 - @jonathanrainer PR #2043**
- **Update `derive-getters` to v0.5.0 - @jonathanrainer PR #2042**
- **Update `eslient` to v9.9.0 - @jonathanrainer PR #2041**
- **Update Rust to v1.80.1 - @jonathanrainer PR #2040**
- **Update axios to v1.7.4 - @jonathanrainer PR #2048**
- **Update CODEONWERS - @aaronArinder PR #2052**
- **Update termimad to v0.30.0 - @jonathanrainer PR #2054**
- **Add step to fail workflow if matrix branch fails - @jonathanrainer
PR #2044**
- **Increase test coverage for operations/cloud/config - @loshz PR
#2057**
- **Update `gh` CircleCI Orb to v2.4.0 - @jonathanrainer PR #2062**
- **Update `mockito` to v1.5.0 - @jonathanrainer PR #2061**
- **Update `dircpy` to v0.3.19 - @jonathanrainer PR #2060**

## 📚 Documentation

- **Document E2E test gotchas - @aaronArinder PR #2018**
- **Fix table to be compatible with new docs platform - @shorgi PR
#2038**
- **Remove unhelpful note - @Meschreiber PR #2053**
- **Add Summit callout - @Meschreiber PR #2058**
- **Adds `--graph-ref` to supergraph compose docs - @jackonawalk PR
#2037**
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants