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

Upcoming Release Changes #3239

Merged
merged 1 commit into from
May 8, 2024
Merged

Upcoming Release Changes #3239

merged 1 commit into from
May 8, 2024

Conversation

theguild-bot
Copy link
Collaborator

@theguild-bot theguild-bot commented Apr 15, 2024

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@graphql-yoga/plugin-prometheus@5.0.0

Major Changes

  • #3251
    a8ddac54
    Thanks @EmrysMyrddin! - Adds a cache for metrics definition
    (Summary, Histogram and Counter).

    Fixes an issue preventing this plugin to be initialized multiple times, leading to metrics
    duplication error (How to run Prometheus with mesh start without giving an error? ardatan/graphql-mesh#6545).

    Behavior Breaking Change:

    Due to Prometheus client API limitations, a metric is only defined once for a given registry. This
    means that if the configuration of the metrics, it will be silently ignored on plugin
    re-initialization.

    This is to avoid potential loss of metrics data produced between the plugin re-initialization and
    the last pull by the prometheus agent.

    If you need to be sure metrics configuration is up to date after a plugin re-initialization, you
    can either:

    • restart the whole node process instead of just recreating a graphql server at runtime
    • clear the registry using registry.clear() before plugin re-initialization:
      function usePrometheusWithReset() {
        registry.clear()
        return usePrometheus({ ... })
      }
    • use a new registry for each plugin instance:
      function usePrometheusWithRegistry() {
        const registry = new Registry()
        return usePrometheus({
          registry,
          ...
        })
      }

    Keep in mind that this implies potential data loss in pull mode.

    API Breaking Change:

    To ensure metrics from being registered multiple times on the same registry, the signature of
    createHistogram, createSummary and createCounter have been changed to now include the
    registry as a mandatory parameter.

    If you were customizing metrics parameters, you will need to update the metric definitions

    usePrometheus({
      execute: createHistogram({
    +   registry: registry
        histogram: new Histogram({
          name: 'my_custom_name',
          help: 'HELP ME',
          labelNames: ['opText'] as const,
    -     registers: [registry],
        }),
        fillLabelsFn: () => {}
      }),
      requestCount: createCounter({
    +   registry: registry
        histogram: new Histogram({
          name: 'my_custom_name',
          help: 'HELP ME',
          labelNames: ['opText'] as const,
    -     registers: [registry],
        }),
        fillLabelsFn: () => {}
      }),
      requestSummary: createSummary({
    +   registry: registry
        histogram: new Histogram({
          name: 'my_custom_name',
          help: 'HELP ME',
          labelNames: ['opText'] as const,
    -     registers: [registry],
        }),
        fillLabelsFn: () => {}
      }),
    })

Patch Changes

graphql-yoga-cloud-run-guide@3.3.1

Patch Changes

graphql-yoga@5.3.1

Patch Changes

  • #3237
    3324bbab
    Thanks @ardatan! - dependencies updates:

  • #3237
    3324bbab
    Thanks @ardatan! - In such environments like CloudFlare Workers, the
    request object in the context always has the initial request object, so it was impossible to
    access the actual Request object from the execution context. Now Yoga ensures that the request
    in the context is the same with the actual Request.

@graphql-yoga/nestjs@3.3.1

Patch Changes

@graphql-yoga/nestjs-federation@3.3.1

Patch Changes

  • Updated dependencies []:
    • @graphql-yoga/nestjs@3.3.1
    • @graphql-yoga/plugin-apollo-inline-trace@3.3.1

@graphql-yoga/plugin-apollo-inline-trace@3.3.1

Patch Changes

@graphql-yoga/plugin-apq@3.3.1

Patch Changes

@graphql-yoga/plugin-csrf-prevention@3.3.1

Patch Changes

@graphql-yoga/plugin-defer-stream@3.3.1

Patch Changes

@graphql-yoga/plugin-disable-introspection@2.3.1

Patch Changes

@graphql-yoga/plugin-graphql-sse@3.3.1

Patch Changes

@graphql-yoga/plugin-jwt@2.3.1

Patch Changes

@graphql-yoga/plugin-persisted-operations@3.3.1

Patch Changes

@graphql-yoga/plugin-response-cache@3.5.1

Patch Changes

@graphql-yoga/plugin-sofa@3.3.1

Patch Changes

@graphql-yoga/render-graphiql@5.3.1

Patch Changes

@graphql-yoga/apollo-link@3.3.1

@graphql-yoga/urql-exchange@3.3.1

hello-world-benchmark@3.5.1

Patch Changes

  • Updated dependencies
    [3324bbab,
    3324bbab]:
    • graphql-yoga@5.3.1
    • @graphql-yoga/plugin-response-cache@3.5.1

apollo-federation-gateway-with-yoga@3.3.1

Patch Changes

apollo-subgraph-with-yoga@3.3.1

Patch Changes

graphql-lambda@3.3.1

Patch Changes

cloudflare-advanced@3.3.1

Patch Changes

cloudflare@3.3.1

Patch Changes

nextjs-app@2.3.1

Patch Changes

Copy link
Contributor

github-actions bot commented Apr 15, 2024

Apollo Federation Subgraph Compatibility Results

Federation 1 Support Federation 2 Support
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢

Learn more:

Copy link
Contributor

github-actions bot commented Apr 15, 2024

✅ Benchmark Results

     ✓ no_errors{mode:graphql}
     ✓ expected_result{mode:graphql}
     ✓ no_errors{mode:graphql-jit}
     ✓ expected_result{mode:graphql-jit}
     ✓ no_errors{mode:graphql-response-cache}
     ✓ expected_result{mode:graphql-response-cache}
     ✓ no_errors{mode:graphql-no-parse-validate-cache}
     ✓ expected_result{mode:graphql-no-parse-validate-cache}

     checks.......................................: 100.00% ✓ 400450      ✗ 0     
     data_received................................: 1.6 GB  13 MB/s
     data_sent....................................: 81 MB   674 kB/s
     http_req_blocked.............................: avg=1.46µs   min=990ns    med=1.32µs   max=356.52µs p(90)=1.9µs    p(95)=2.1µs   
     http_req_connecting..........................: avg=2ns      min=0s       med=0s       max=147.84µs p(90)=0s       p(95)=0s      
     http_req_duration............................: avg=386.59µs min=219.62µs med=343.63µs max=24.32ms  p(90)=542.65µs p(95)=562.88µs
       { expected_response:true }.................: avg=386.59µs min=219.62µs med=343.63µs max=24.32ms  p(90)=542.65µs p(95)=562.88µs
     ✓ { mode:graphql-jit }.......................: avg=291.03µs min=219.62µs med=269.91µs max=14.25ms  p(90)=300.51µs p(95)=312.8µs 
     ✓ { mode:graphql-no-parse-validate-cache }...: avg=569.26µs min=480.11µs med=542.21µs max=10.07ms  p(90)=587.1µs  p(95)=620.51µs
     ✓ { mode:graphql-response-cache }............: avg=366.38µs min=291.98µs med=347.53µs max=10.93ms  p(90)=379.08µs p(95)=389.92µs
     ✓ { mode:graphql }...........................: avg=382.52µs min=296.39µs med=350.63µs max=24.32ms  p(90)=394.29µs p(95)=434.55µs
     http_req_failed..............................: 0.00%   ✓ 0           ✗ 200225
     http_req_receiving...........................: avg=32.52µs  min=15.73µs  med=32.68µs  max=862.27µs p(90)=38.25µs  p(95)=40.28µs 
     http_req_sending.............................: avg=8.18µs   min=5.76µs   med=7.31µs   max=317.96µs p(90)=10.68µs  p(95)=11.41µs 
     http_req_tls_handshaking.....................: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s      
     http_req_waiting.............................: avg=345.88µs min=189.14µs med=303.5µs  max=24.09ms  p(90)=501.59µs p(95)=520.23µs
     http_reqs....................................: 200225  1668.425695/s
     iteration_duration...........................: avg=594.47µs min=387.85µs med=547.91µs max=25.22ms  p(90)=753.82µs p(95)=778.37µs
     iterations...................................: 200225  1668.425695/s
     vus..........................................: 1       min=0         max=1   
     vus_max......................................: 2       min=2         max=2   

Copy link
Contributor

github-actions bot commented Apr 15, 2024

💻 Website Preview

The latest changes are available as preview in: https://07d1206e.graphql-yoga.pages.dev

@theguild-bot theguild-bot force-pushed the changeset-release/main branch from ac8d34e to 84a9af1 Compare April 17, 2024 06:36
@theguild-bot theguild-bot force-pushed the changeset-release/main branch 7 times, most recently from 87b8aea to 9616e0f Compare April 30, 2024 07:05
@theguild-bot theguild-bot force-pushed the changeset-release/main branch from 9616e0f to ab3f328 Compare May 8, 2024 08:23
@theguild-bot theguild-bot force-pushed the changeset-release/main branch from ab3f328 to 86bb49a Compare May 8, 2024 08:33
@EmrysMyrddin EmrysMyrddin merged commit f99322f into main May 8, 2024
26 of 27 checks passed
@EmrysMyrddin EmrysMyrddin deleted the changeset-release/main branch May 8, 2024 09:11
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.

2 participants