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 ghcr.io/apollographql/router docker tag to v1.39.0 #696

Merged
merged 1 commit into from
Feb 6, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Feb 6, 2024

Mend Renovate

This PR contains the following updates:

Package Update Change
ghcr.io/apollographql/router minor v1.38.0 -> v1.39.0

Release Notes

apollographql/router (ghcr.io/apollographql/router)

v1.39.0

Compare Source

🚀 Features

Introduce support for progressive @override (PR #​4521)

⚠️ This is an Enterprise feature of the Apollo Router. It requires an organization with a GraphOS Enterprise plan.

If your organization doesn't currently have an Enterprise plan, you can test out this functionality by signing up for a free Enterprise trial.

The change brings support for progressive @override, which allows dynamically overriding root fields and entity fields in the schema. This feature is enterprise only and requires a license key to be used.

A new label argument is added to the @override directive in order to indicate the field is dynamically overridden. Labels can come in two forms:

  1. String matching the form percent(x): The router resolves these labels based on the x value. For example, percent(50) will route 50% of requests to the overridden field and 50% of requests to the original field.
  2. Arbitrary string matching the regex ^[a-zA-Z][a-zA-Z0-9_-:./]*$: These labels are expected to be resolved externally via coprocessor. A supergraph request hook can inspect and modify the context of a request in order to inform the router which labels to use during query planning.

Please consult the docs for more information on how to use this feature and how to implement a coprocessor for label resolution.

By @​TrevorScheer in https://github.com/apollographql/router/pull/4521

Specify trace ID formatting (PR #​4530)

You can specify the format of the trace ID in the response headers of the supergraph service.

An example configuration using this feature:

telemetry:
  apollo:
    client_name_header: name_header
    client_version_header: version_header
  exporters:
    tracing:
      experimental_response_trace_id:
        enabled: true
        header_name: trace_id
        format: decimal # Optional, defaults to hexadecimal

If the format is not specified, then the trace ID will continue to be in hexadecimal format.

By @​nicholascioli in https://github.com/apollographql/router/pull/4530

Add selector to get all baggage key values in span attributes (Issue #​4425)

Previously, baggage items were configured as standard attributes in router.yaml, and adding a new baggage item required a configuration update and router rerelease.

This release supports a new configuration that enables baggage items to be added automatically as span attributes.

If you have several baggage items and would like to add all of them directly as span attributes (for example, baggage: my_item=test, my_second_item=bar), setting baggage: true will add automatically add two span attributes, my_item=test and my_second_item=bar.

An example configuration:

telemetry:
  instrumentation:
    spans:
      router:
        attributes:
          baggage: true

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

Create a trace during router creation and plugin initialization (Issue #​4472)

When the router starts or reloads, it will now generate a trace with spans for query planner creation, schema parsing, plugin initialisation and request pipeline creation. This will help debugging any issue during startup, especially during plugins creation.

By @​Geal in https://github.com/apollographql/router/pull/4480

Allow adding static attributes on specific spans in telemetry settings (Issue #​4561)

It is now possible to add static attributes to spans, defined in the configuration file.

Example of configuration:

telemetry:
  instrumentation:
    spans:
      router:
        attributes:
          "my_attribute": "constant_value"
      supergraph:
        attributes:
          "my_attribute": "constant_value"
      subgraph:
        attributes:
          "my_attribute": "constant_value"

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

🐛 Fixes

Order HPA targets to resolve OutOfSync states (Issue #​4435)

This update addresses an OutOfSync issue in ArgoCD applications when Horizontal Pod Autoscaler (HPA) is configured with both memory and CPU limits.
Previously, the live and desired manifests within Kubernetes were not consistently sorted, leading to persistent OutOfSync states in ArgoCD.
This change implements a sorting mechanism for HPA targets within the Helm chart, ensuring alignment with Kubernetes' expected order.
This fix proactively resolves the sync discrepancies while using HPA, circumventing the need to wait for Kubernetes' issue resolution (kubernetes/kubernetes#74099).

By @​cyberhck in https://github.com/apollographql/router/pull/4436

Reactivate log events in traces (PR #​4486)

This fixes a regression introduced in #​2999, where events were not sent with traces anymore due to too aggressive sampling

By @​Geal in https://github.com/apollographql/router/pull/4486

Fix inconsistency in environment variable parsing for telemetry (Issue #​3203)

Previously, the router would complain when using the rover recommendation of APOLLO_TELEMETRY_DISABLED=1 environment
variable. Now any non-falsey value can be used, such as 1, yes, on, etc..

By @​nicholascioli in https://github.com/apollographql/router/pull/4549

Store static pages in Bytes structure to avoid expensive allocation per request (PR #​4528)

The CheckpointService created by the StaticPageLayer caused a non-insignificant amount of memory to be allocated on every request. The service stack gets cloned on every request, and so does the rendered template.

The template is now stored in a Bytes struct instead which is cheap to clone.

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

Fix header propagation issues (Issue #​4312), (Issue #​4398)

This fixes two header propagation issues:

  • if a client request header has already been added to a subgraph request due to another header propagation rule, then it is only added once
  • Accept, Accept-Encoding and Content-Encoding were not in the list of reserved headers that cannot be propagated. They are now in that list because those headers are set explicitely by the Router in its subgraph requests

There is a potential change in behavior: if a router deployment was accidentally relying on header propagation to compress subgraph requests, then it will not work anymore because Content-Encoding is not propagated anymore. Instead it should be set up from the traffic_shaping section of the Router configuration:

traffic_shaping:
  all:
    compression: gzip
  subgraphs: # Rules applied to requests from the router to individual subgraphs
    products:
      compression: identity

By @​Geal in https://github.com/apollographql/router/pull/4535

🧪 Experimental

Move cacheability metrics to the entity cache plugin (Issue #​4253)

Cacheability metrics have been moved from the telemetry plugin to the entity cache plugin.

New configuration has been added:

  • Enabling or disabling the metrics
  • Setting the metrics storage TTL (default is 60s)
  • Disabling the metric's typename attribute by default. (Activating it can greatly increase the cardinality.)

Cleanup and performance improvements have also been implemented.

By @​Geal in https://github.com/apollographql/router/pull/4469


Configuration

📅 Schedule: Branch creation - "after 10pm every weekday,before 5am every weekday,every weekend" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, 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 has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot requested a review from prasek as a code owner February 6, 2024 00:50
@renovate renovate bot enabled auto-merge (rebase) February 6, 2024 00:50
@renovate renovate bot merged commit edebc38 into main Feb 6, 2024
6 checks passed
@renovate renovate bot deleted the renovate/apollo-graphql-packages branch February 6, 2024 03:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants