From 02156a4dd81c73abefd02c9e246f10b3ddbdd767 Mon Sep 17 00:00:00 2001 From: Jesse Rosenberger Date: Wed, 8 Jan 2025 16:18:34 +0200 Subject: [PATCH] prep release: v1.59.1 --- .../fix_bryn_datadog_agent_sampling.md | 34 ----------- ..._upstream_sampling_decision_propagation.md | 6 -- ...bryn_parent_based_sampling_fix_with_fix.md | 18 ------ CHANGELOG.md | 58 +++++++++++++++++++ Cargo.lock | 8 +-- apollo-federation/Cargo.toml | 2 +- apollo-router-benchmarks/Cargo.toml | 2 +- apollo-router-scaffold/Cargo.toml | 2 +- .../templates/base/Cargo.template.toml | 2 +- .../templates/base/xtask/Cargo.template.toml | 2 +- apollo-router/Cargo.toml | 4 +- .../tracing/docker-compose.datadog.yml | 2 +- dockerfiles/tracing/docker-compose.jaeger.yml | 2 +- dockerfiles/tracing/docker-compose.zipkin.yml | 2 +- helm/chart/router/Chart.yaml | 4 +- helm/chart/router/README.md | 8 +-- licenses.html | 2 +- scripts/install.sh | 2 +- 18 files changed, 80 insertions(+), 80 deletions(-) delete mode 100644 .changesets/fix_bryn_datadog_agent_sampling.md delete mode 100644 .changesets/fix_bryn_datadog_upstream_sampling_decision_propagation.md delete mode 100644 .changesets/fix_bryn_parent_based_sampling_fix_with_fix.md diff --git a/.changesets/fix_bryn_datadog_agent_sampling.md b/.changesets/fix_bryn_datadog_agent_sampling.md deleted file mode 100644 index 50c2d6997d..0000000000 --- a/.changesets/fix_bryn_datadog_agent_sampling.md +++ /dev/null @@ -1,34 +0,0 @@ -### Enable accurate Datadog APM metrics ([PR #6017](https://github.com/apollographql/router/pull/6017)) - -The router supports a new preview feature, the `preview_datadog_agent_sampling` option, to enable sending all spans to the Datadog Agent so APM metrics and views are accurate. - -Previously, the sampler option in `telemetry.exporters.tracing.common.sampler` wasn't Datadog-aware. To get accurate Datadog APM metrics, all spans must be sent to the Datadog Agent with a `psr` or `sampling.priority` attribute set appropriately to record the sampling decision. - -The `preview_datadog_agent_sampling` option enables accurate Datadog APM metrics. It should be used when exporting to the Datadog Agent, via OTLP or Datadog-native. - -```yaml -telemetry: - exporters: - tracing: - common: - # Only 10 percent of spans will be forwarded from the Datadog agent to Datadog. Experiment to find a value that is good for you! - sampler: 0.1 - # Send all spans to the Datadog agent. - preview_datadog_agent_sampling: true - - -``` - -Using these options can decrease your Datadog bill, because you will be sending only a percentage of spans from the Datadog Agent to Datadog. - -> [!IMPORTANT] -> Users must enable `preview_datadog_agent_sampling` to get accurate APM metrics. Users that have been using recent versions of the router will have to modify their configuration to retain full APM metrics. - -> [!IMPORTANT] -> The router doesn't support [`in-agent` ingestion control](https://docs.datadoghq.com/tracing/trace_pipeline/ingestion_mechanisms/?tab=java#in-the-agent). -> Configuring `traces_per_second` in the Datadog Agent won't dynamically adjust the router's sampling rate to meet the target rate. - -> [!IMPORTANT] -> Sending all spans to the Datadog Agent may require that you tweak the `batch_processor` settings in your exporter config. This applies to both OTLP and Datadog native exporters. - -Learn more by reading the [updated Datadog tracing documentation](https://apollographql.com/docs/router/configuration/telemetry/exporters/tracing/datadog) for more information on configuration options and their implications. \ No newline at end of file diff --git a/.changesets/fix_bryn_datadog_upstream_sampling_decision_propagation.md b/.changesets/fix_bryn_datadog_upstream_sampling_decision_propagation.md deleted file mode 100644 index d05f173528..0000000000 --- a/.changesets/fix_bryn_datadog_upstream_sampling_decision_propagation.md +++ /dev/null @@ -1,6 +0,0 @@ -### Fix transmitted header value for Datadog priority sampling resolution ([PR #6017](https://github.com/apollographql/router/pull/6017)) - -The router now transmits correct values of `x-datadog-sampling-priority` to downstream services. - -Previously, an `x-datadog-sampling-priority` of `-1` was incorrectly converted to `0` for downstream requests, and `2` was incorrectly converted to `1`. When propagating to downstream services, this resulted in values of `USER_REJECT` being incorrectly transmitted as `AUTO_REJECT`. - diff --git a/.changesets/fix_bryn_parent_based_sampling_fix_with_fix.md b/.changesets/fix_bryn_parent_based_sampling_fix_with_fix.md deleted file mode 100644 index 0e4dd64f96..0000000000 --- a/.changesets/fix_bryn_parent_based_sampling_fix_with_fix.md +++ /dev/null @@ -1,18 +0,0 @@ -### Fix non-parent sampling ([PR #6481](https://github.com/apollographql/router/pull/6481)) - -When the user specifies a non-parent sampler the router should ignore the information from upstream and use its own sampling rate. - -The following configuration would not work correctly: - -``` - exporters: - tracing: - common: - service_name: router - sampler: 0.00001 - parent_based_sampler: false -``` -All spans are being sampled. -This is now fixed and the router will correctly ignore any upstream sampling decision. - -By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/6481 diff --git a/CHANGELOG.md b/CHANGELOG.md index 39162412b6..3c0e4a4608 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,64 @@ All notable changes to Router will be documented in this file. This project adheres to [Semantic Versioning v2.0.0](https://semver.org/spec/v2.0.0.html). +# [1.59.1] - 2025-01-08 + +## 🐛 Fixes + +### Fix transmitted header value for Datadog priority sampling resolution ([PR #6017](https://github.com/apollographql/router/pull/6017)) + +The router now transmits correct values of `x-datadog-sampling-priority` to downstream services. + +Previously, an `x-datadog-sampling-priority` of `-1` was incorrectly converted to `0` for downstream requests, and `2` was incorrectly converted to `1`. When propagating to downstream services, this resulted in values of `USER_REJECT` being incorrectly transmitted as `AUTO_REJECT`. + +### Enable accurate Datadog APM metrics ([PR #6017](https://github.com/apollographql/router/pull/6017)) + +The router supports a new preview feature, the `preview_datadog_agent_sampling` option, to enable sending all spans to the Datadog Agent so APM metrics and views are accurate. + +Previously, the sampler option in `telemetry.exporters.tracing.common.sampler` wasn't Datadog-aware. To get accurate Datadog APM metrics, all spans must be sent to the Datadog Agent with a `psr` or `sampling.priority` attribute set appropriately to record the sampling decision. + +The `preview_datadog_agent_sampling` option enables accurate Datadog APM metrics. It should be used when exporting to the Datadog Agent, via OTLP or Datadog-native. + +```yaml +telemetry: + exporters: + tracing: + common: + # Only 10 percent of spans will be forwarded from the Datadog agent to Datadog. Experiment to find a value that is good for you! + sampler: 0.1 + # Send all spans to the Datadog agent. + preview_datadog_agent_sampling: true +``` + +Using these options can decrease your Datadog bill, because you will be sending only a percentage of spans from the Datadog Agent to Datadog. + +> [!IMPORTANT] +> - Users must enable `preview_datadog_agent_sampling` to get accurate APM metrics. Users that have been using recent versions of the router will have to modify their configuration to retain full APM metrics. +> - The router doesn't support [`in-agent` ingestion control](https://docs.datadoghq.com/tracing/trace_pipeline/ingestion_mechanisms/?tab=java#in-the-agent). +> - Configuring `traces_per_second` in the Datadog Agent won't dynamically adjust the router's sampling rate to meet the target rate. +> - Sending all spans to the Datadog Agent may require that you tweak the `batch_processor` settings in your exporter config. This applies to both OTLP and Datadog native exporters. + +Learn more by reading the [updated Datadog tracing documentation](https://apollographql.com/docs/router/configuration/telemetry/exporters/tracing/datadog) for more information on configuration options and their implications. + +### Fix non-parent sampling ([PR #6481](https://github.com/apollographql/router/pull/6481)) + +When the user specifies a non-parent sampler the router should ignore the information from upstream and use its own sampling rate. + +The following configuration would not work correctly: + +``` + exporters: + tracing: + common: + service_name: router + sampler: 0.00001 + parent_based_sampler: false +``` +All spans are being sampled. +This is now fixed and the router will correctly ignore any upstream sampling decision. + +By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/6481 + # [1.59.0] - 2024-12-17 > [!IMPORTANT] diff --git a/Cargo.lock b/Cargo.lock index cf1e7790c1..8d3c937d52 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -204,7 +204,7 @@ dependencies = [ [[package]] name = "apollo-federation" -version = "1.59.1-rc.0" +version = "1.59.1" dependencies = [ "apollo-compiler", "derive_more", @@ -257,7 +257,7 @@ dependencies = [ [[package]] name = "apollo-router" -version = "1.59.1-rc.0" +version = "1.59.1" dependencies = [ "access-json", "ahash", @@ -427,7 +427,7 @@ dependencies = [ [[package]] name = "apollo-router-benchmarks" -version = "1.59.1-rc.0" +version = "1.59.1" dependencies = [ "apollo-parser", "apollo-router", @@ -443,7 +443,7 @@ dependencies = [ [[package]] name = "apollo-router-scaffold" -version = "1.59.1-rc.0" +version = "1.59.1" dependencies = [ "anyhow", "cargo-scaffold", diff --git a/apollo-federation/Cargo.toml b/apollo-federation/Cargo.toml index 856e1bf3e3..514078f5b2 100644 --- a/apollo-federation/Cargo.toml +++ b/apollo-federation/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-federation" -version = "1.59.1-rc.0" +version = "1.59.1" authors = ["The Apollo GraphQL Contributors"] edition = "2021" description = "Apollo Federation" diff --git a/apollo-router-benchmarks/Cargo.toml b/apollo-router-benchmarks/Cargo.toml index aeee98e94f..d1e21f2b36 100644 --- a/apollo-router-benchmarks/Cargo.toml +++ b/apollo-router-benchmarks/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-benchmarks" -version = "1.59.1-rc.0" +version = "1.59.1" authors = ["Apollo Graph, Inc. "] edition = "2021" license = "Elastic-2.0" diff --git a/apollo-router-scaffold/Cargo.toml b/apollo-router-scaffold/Cargo.toml index c7329f0812..d4a57baa5e 100644 --- a/apollo-router-scaffold/Cargo.toml +++ b/apollo-router-scaffold/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-scaffold" -version = "1.59.1-rc.0" +version = "1.59.1" authors = ["Apollo Graph, Inc. "] edition = "2021" license = "Elastic-2.0" diff --git a/apollo-router-scaffold/templates/base/Cargo.template.toml b/apollo-router-scaffold/templates/base/Cargo.template.toml index 018897d339..6a203b1a17 100644 --- a/apollo-router-scaffold/templates/base/Cargo.template.toml +++ b/apollo-router-scaffold/templates/base/Cargo.template.toml @@ -22,7 +22,7 @@ apollo-router = { path ="{{integration_test}}apollo-router" } apollo-router = { git="https://github.com/apollographql/router.git", branch="{{branch}}" } {{else}} # Note if you update these dependencies then also update xtask/Cargo.toml -apollo-router = "1.59.1-rc.0" +apollo-router = "1.59.1" {{/if}} {{/if}} async-trait = "0.1.52" diff --git a/apollo-router-scaffold/templates/base/xtask/Cargo.template.toml b/apollo-router-scaffold/templates/base/xtask/Cargo.template.toml index df4cfa7439..e54f595298 100644 --- a/apollo-router-scaffold/templates/base/xtask/Cargo.template.toml +++ b/apollo-router-scaffold/templates/base/xtask/Cargo.template.toml @@ -13,7 +13,7 @@ apollo-router-scaffold = { path ="{{integration_test}}apollo-router-scaffold" } {{#if branch}} apollo-router-scaffold = { git="https://github.com/apollographql/router.git", branch="{{branch}}" } {{else}} -apollo-router-scaffold = { git = "https://github.com/apollographql/router.git", tag = "v1.59.1-rc.0" } +apollo-router-scaffold = { git = "https://github.com/apollographql/router.git", tag = "v1.59.1" } {{/if}} {{/if}} anyhow = "1.0.58" diff --git a/apollo-router/Cargo.toml b/apollo-router/Cargo.toml index 05196473d8..7bbbae06c5 100644 --- a/apollo-router/Cargo.toml +++ b/apollo-router/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router" -version = "1.59.1-rc.0" +version = "1.59.1" authors = ["Apollo Graph, Inc. "] repository = "https://github.com/apollographql/router/" documentation = "https://docs.rs/apollo-router" @@ -66,7 +66,7 @@ features = ["docs_rs"] access-json = "0.1.0" anyhow = "1.0.86" apollo-compiler.workspace = true -apollo-federation = { path = "../apollo-federation", version = "=1.59.1-rc.0" } +apollo-federation = { path = "../apollo-federation", version = "=1.59.1" } arc-swap = "1.6.0" async-channel = "1.9.0" async-compression = { version = "0.4.6", features = [ diff --git a/dockerfiles/tracing/docker-compose.datadog.yml b/dockerfiles/tracing/docker-compose.datadog.yml index ef9908c1ba..cad8686c22 100644 --- a/dockerfiles/tracing/docker-compose.datadog.yml +++ b/dockerfiles/tracing/docker-compose.datadog.yml @@ -3,7 +3,7 @@ services: apollo-router: container_name: apollo-router - image: ghcr.io/apollographql/router:v1.59.1-rc.0 + image: ghcr.io/apollographql/router:v1.59.1 volumes: - ./supergraph.graphql:/etc/config/supergraph.graphql - ./router/datadog.router.yaml:/etc/config/configuration.yaml diff --git a/dockerfiles/tracing/docker-compose.jaeger.yml b/dockerfiles/tracing/docker-compose.jaeger.yml index 292cae08fb..f84e25a10d 100644 --- a/dockerfiles/tracing/docker-compose.jaeger.yml +++ b/dockerfiles/tracing/docker-compose.jaeger.yml @@ -4,7 +4,7 @@ services: apollo-router: container_name: apollo-router #build: ./router - image: ghcr.io/apollographql/router:v1.59.1-rc.0 + image: ghcr.io/apollographql/router:v1.59.1 volumes: - ./supergraph.graphql:/etc/config/supergraph.graphql - ./router/jaeger.router.yaml:/etc/config/configuration.yaml diff --git a/dockerfiles/tracing/docker-compose.zipkin.yml b/dockerfiles/tracing/docker-compose.zipkin.yml index bcc0d62f75..cf71996327 100644 --- a/dockerfiles/tracing/docker-compose.zipkin.yml +++ b/dockerfiles/tracing/docker-compose.zipkin.yml @@ -4,7 +4,7 @@ services: apollo-router: container_name: apollo-router build: ./router - image: ghcr.io/apollographql/router:v1.59.1-rc.0 + image: ghcr.io/apollographql/router:v1.59.1 volumes: - ./supergraph.graphql:/etc/config/supergraph.graphql - ./router/zipkin.router.yaml:/etc/config/configuration.yaml diff --git a/helm/chart/router/Chart.yaml b/helm/chart/router/Chart.yaml index c8c33b8b0c..3302fa15fb 100644 --- a/helm/chart/router/Chart.yaml +++ b/helm/chart/router/Chart.yaml @@ -20,10 +20,10 @@ type: application # so it matches the shape of our release process and release automation. # By proxy of that decision, this version uses SemVer 2.0.0, though the prefix # of "v" is not included. -version: 1.59.1-rc.0 +version: 1.59.1 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "v1.59.1-rc.0" +appVersion: "v1.59.1" diff --git a/helm/chart/router/README.md b/helm/chart/router/README.md index 9775e2d9fb..705a48e567 100644 --- a/helm/chart/router/README.md +++ b/helm/chart/router/README.md @@ -2,7 +2,7 @@ [router](https://github.com/apollographql/router) Rust Graph Routing runtime for Apollo Federation -![Version: 1.59.1-rc.0](https://img.shields.io/badge/Version-1.59.1--rc.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.59.1-rc.0](https://img.shields.io/badge/AppVersion-v1.59.1--rc.0-informational?style=flat-square) +![Version: 1.59.1](https://img.shields.io/badge/Version-1.59.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.59.1](https://img.shields.io/badge/AppVersion-v1.59.1-informational?style=flat-square) ## Prerequisites @@ -11,7 +11,7 @@ ## Get Repo Info ```console -helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.59.1-rc.0 +helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.59.1 ``` ## Install Chart @@ -19,7 +19,7 @@ helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.59.1-rc.0 **Important:** only helm3 is supported ```console -helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.59.1-rc.0 --values my-values.yaml +helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.59.1 --values my-values.yaml ``` _See [configuration](#configuration) below._ @@ -98,4 +98,4 @@ helm show values oci://ghcr.io/apollographql/helm-charts/router | virtualservice.enabled | bool | `false` | | ---------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.11.2](https://github.com/norwoodj/helm-docs/releases/v1.11.2) +Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2) diff --git a/licenses.html b/licenses.html index 3b497f5e45..208b06d19a 100644 --- a/licenses.html +++ b/licenses.html @@ -6122,7 +6122,6 @@

Used by:

  • erased-serde
  • ghost
  • itoa
  • -
  • libc
  • linkme
  • paste
  • prettyplease
  • @@ -12605,6 +12604,7 @@

    Used by:

  • graphql_query_derive
  • http-serde
  • ident_case
  • +
  • libc
  • libssh2-sys
  • linkme-impl
  • md5
  • diff --git a/scripts/install.sh b/scripts/install.sh index 98e54b6c04..560319b7db 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -11,7 +11,7 @@ BINARY_DOWNLOAD_PREFIX="https://github.com/apollographql/router/releases/downloa # Router version defined in apollo-router's Cargo.toml # Note: Change this line manually during the release steps. -PACKAGE_VERSION="v1.59.1-rc.0" +PACKAGE_VERSION="v1.59.1" download_binary() { downloader --check