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

v5.39.0 proposal #5337

Merged
merged 31 commits into from
Feb 27, 2025
Merged

v5.39.0 proposal #5337

merged 31 commits into from
Feb 27, 2025

Conversation

watson
Copy link
Collaborator

@watson watson commented Feb 27, 2025

  • [9bc5d3440a] - (SEMVER-PATCH) ESLint: Require await inside async functions (Thomas Watson) #5263
  • [991e77a547] - (SEMVER-PATCH) fix shimmer double wrapping for non-method functions (Roch Devost) #5329
  • [806877279d] - (SEMVER-MINOR) Various improvements to profiling sample label generator (Attila Szegedi) #5316
  • [5963c08821] - (SEMVER-PATCH) only load the naming schema version that is used (Roch Devost) #5318
  • [c9b9d086f3] - (SEMVER-PATCH) lazy load fetch instrumentation only when needed (Roch Devost) #5317
  • [2070869ffd] - (SEMVER-PATCH) CI: Clean up Node.js installation in GitHub actions (Thomas Watson) #5322
  • [2c9ab130df] - (SEMVER-MINOR) Automated Session Tracking (simon-id) #5060
  • [8cd547ee13] - (SEMVER-PATCH) [DI] Improve code comment (Thomas Watson) #5319
  • [8e6c297179] - (SEMVER-PATCH) ESLint: Add eslint-plugin-unicorn (Thomas Watson) #5297
  • [696cf86ac2] - (SEMVER-PATCH) ESLint: Add yarn lint:inspect command (Thomas Watson) #5309
  • [a1cd027712] - (SEMVER-PATCH) lazy load span leak detection only when used (Roch Devost) #5259
  • [bcf7e6129b] - (SEMVER-PATCH) lazy load dsm only when needed (Roch Devost) #5305
  • [487ea6f6ef] - (SEMVER-PATCH) lazy load runtime metrics only when needed (Roch Devost) #5254
  • [7fc2f9856e] - (SEMVER-PATCH) fix logging when extracting from w3c traceparent (Roch Devost) #5227
  • [f97f991636] - (SEMVER-PATCH) only load fetch plugin when fetch is used (Roch Devost) #5272
  • [f87acc237a] - (SEMVER-PATCH) security: fix VULN-9754 (Thomas Hunter II) #5315
  • [ddcbcbba70] - (SEMVER-MINOR) Ddd dynamodb payload tagging (Joey Zhao) #5224
  • [9f5b7c47ef] - (SEMVER-PATCH) Do not expose internals (Ruben Bridgewater) #5313
  • [7aae4fcb8b] - (SEMVER-PATCH) [DI] Remove source map cache in Node.js 18 (Thomas Watson) #5302
  • [f07a03ac71] - (SEMVER-PATCH) refactor: move remote_config code to the root of dd-trace (Thomas Watson) #4475
  • [b046c06060] - (SEMVER-PATCH) [test optimization] Fix wrong log.error if quarantined tests are empty (Juan Antonio Fernández de Alba) #5296
  • [996e8fbfd4] - (SEMVER-PATCH) Add stack id in location as a string (Ilyas Shabi) #5250
  • [fd425151b5] - (SEMVER-PATCH) Update .gitlab-ci.yml (Laplie Anderson) #5301
  • [e6a9d8dd72] - (SEMVER-PATCH) lazy load telemetry entrypoint only when needed (Roch Devost) #5258
  • [ac25f3005b] - (SEMVER-PATCH) refactor custom metrics to be self-contained (Bryan English) #5061
  • [85c5c4fd6e] - (SEMVER-PATCH) fix tracer flare log (Bryan English) #5143
  • [c4f2921527] - (SEMVER-PATCH) move otel to datadog context conversion on otel side (Roch Devost) #5260
  • [519fbce483] - (SEMVER-PATCH) Fix MongoDB DBM propagation issue where trace comments are not properly injected into commands (Zhengda Lu) #5306
  • [f7cc3445bf] - (SEMVER-MINOR) Update span pointer env vars (Nicholas Hulston) #5266
  • [c8940851ed] - (SEMVER-MINOR) [DSM] Add messaging.destination tag to spans so they show up in queue pages (Eric Firth) #5239

ericfirth and others added 30 commits February 27, 2025 13:35
* add `DD_TRACE_AWS_ADD_SPAN_POINTERS` env var & update DD_AWS_SDK_DYNAMODB_TABLE_PRIMARY_KEYS to DD_TRACE_DYNAMODB_TABLE_PRIMARY_KEYS
…ly injected into commands (#5306)

* comment has to be assigned back to the input ops to ensure incoming command is modified before execution

* input comment to injectDbmCommand

* rename injectDbmCommand to injectDbmComment
* Add stack id in location as a string

* get stackId  from location

* remove stack id from format vuln
* [DI] Remove source map cache for Node.js 18

This is the second attempt at a workaround for a bug in Node.js core,
that sometimes triggers when, among other things, a timer is created.
This makes the call to `setTimeout` throw an un-catchable error from
within `AsyncLocalStorage._propagate` with the following TypeError:

    Cannot read properties of undefined (reading 'Symbol(kResourceStore)')

* Adjust cache timings
The timeout and the flush can be handled without any variables.
This way nothing is added to the instance.
* add dynamodb payload tagging

* add tests for ddb payload tagging

* lint and remove version dependent checks
* lazy load dsm only when needed

* code cleanup

* refactor and add comments
Uses @eslint/config-inspector to generate a report of our current ESLint
configuraton.
* ESLint: Add eslint-plugin-unicorn

* ESLint: Clean up config

* Enable recommended unicorn rules that doesn't error
- Remove actions installing old Node.js versions no longer used (`14`
  and `16`)
- Rename `latest` action to `active-lts` to clearly signal intent (a
  separate `latest` or `current` action that tests non-lts, can be
  created in a follow up commit)
- Remove `18` action, and replace any usage of it with
  `oldest-maintenance-lts`
- Remove `setup` action and replace any usage of it with `active-lts`
- Move `install` action to after the first Node.js install action that
  actually needs it, instead of first installing one Node.js version,
  only to install another right after
- Change any direct usage of `actions/setup-node` to use our own Node.js
  installation actions instead, when a matrix is not used.
* - Allow for context.context not being defined (newer pprof-nodejs won't attach it to idle samples)
- Bail out faster when it's not present
- Handle soon-to-be-introduced context.asyncId

* Add a comment, better express type expectations

* Test the label generator
If a function is marked as async, V8 will create a few extra promises
behind the scenes when awaiting it. If the function doesn't itself
contain any awaits, these extra promises just adds overhead that isn't
needed.

The `require-await` rule isn't enabled in tests, where the extra created
promises doesn't harm anyone.
Copy link

Overall package size

Self size: 8.81 MB
Deduped: 95.01 MB
No deduping: 95.52 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.4.0 | 29.44 MB | 29.44 MB | | @datadog/native-appsec | 8.4.0 | 19.25 MB | 19.26 MB | | @datadog/native-iast-taint-tracking | 3.3.0 | 13.77 MB | 13.78 MB | | @datadog/pprof | 5.5.1 | 9.79 MB | 10.17 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.8.0 | 2.6 MB | 2.74 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 3.1.0 | 1.06 MB | 1.46 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.11.2 | 112.74 kB | 835.4 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.0 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.2 | 53.63 kB | 53.63 kB | | shell-quote | 1.8.1 | 44.96 kB | 44.96 kB | | istanbul-lib-coverage | 3.2.0 | 29.34 kB | 29.34 kB | | rfdc | 1.3.1 | 25.21 kB | 25.21 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | dc-polyfill | 0.1.4 | 23.1 kB | 23.1 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.3 | 4.47 kB | 4.47 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

Copy link

codecov bot commented Feb 27, 2025

Codecov Report

Attention: Patch coverage is 86.15752% with 58 lines in your changes missing coverage. Please review.

Please upload report for BASE (v5.x@e493e16). Learn more about missing BASE report.

Files with missing lines Patch % Lines
packages/dd-trace/src/opentelemetry/tracer.js 8.69% 21 Missing ⚠️
packages/dd-trace/src/datastreams/size.js 50.00% 12 Missing ⚠️
packages/dd-trace/src/telemetry/telemetry.js 92.77% 12 Missing ⚠️
packages/dd-trace/src/remote_config/index.js 42.85% 4 Missing ⚠️
packages/datadog-instrumentations/src/fetch.js 86.66% 2 Missing ⚠️
packages/dd-trace/src/tracer.js 50.00% 2 Missing ⚠️
...ackages/datadog-instrumentations/src/mocha/main.js 0.00% 1 Missing ⚠️
packages/datadog-shimmer/src/shimmer.js 96.00% 1 Missing ⚠️
packages/dd-trace/src/opentracing/span.js 50.00% 1 Missing ⚠️
packages/dd-trace/src/proxy.js 50.00% 1 Missing ⚠️
... and 1 more
Additional details and impacted files
@@           Coverage Diff           @@
##             v5.x    #5337   +/-   ##
=======================================
  Coverage        ?   80.70%           
=======================================
  Files           ?      486           
  Lines           ?    21824           
  Branches        ?        0           
=======================================
  Hits            ?    17612           
  Misses          ?     4212           
  Partials        ?        0           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@datadog-datadog-prod-us1
Copy link

Datadog Report

Branch report: v5.39.0-proposal
Commit report: b201bb4
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 668 Passed, 0 Skipped, 11m 21.29s Total Time

@pr-commenter
Copy link

pr-commenter bot commented Feb 27, 2025

Benchmarks

Benchmark execution time: 2025-02-27 12:48:09

Comparing candidate commit 668778e in PR branch v5.39.0-proposal with baseline commit e493e16 in branch v5.x.

Found 107 performance improvements and 1 performance regressions! Performance is the same for 807 metrics, 18 unstable metrics.

scenario:appsec-appsec-enabled-18

  • 🟩 cpu_user_time [-36.546ms; -31.602ms] or [-7.837%; -6.777%]
  • 🟩 execution_time [-41.116ms; -34.754ms] or [-7.661%; -6.476%]
  • 🟩 instructions [-76.1M instructions; -73.9M instructions] or [-5.835%; -5.663%]

scenario:appsec-appsec-enabled-20

  • 🟩 cpu_user_time [-28.741ms; -24.396ms] or [-6.535%; -5.547%]
  • 🟩 execution_time [-32.196ms; -28.318ms] or [-6.471%; -5.692%]
  • 🟩 instructions [-74.2M instructions; -72.0M instructions] or [-6.285%; -6.099%]

scenario:appsec-appsec-enabled-22

  • 🟩 cpu_user_time [-28.409ms; -23.935ms] or [-7.113%; -5.993%]
  • 🟩 execution_time [-37.797ms; -33.639ms] or [-8.098%; -7.207%]
  • 🟩 instructions [-83.8M instructions; -82.5M instructions] or [-6.789%; -6.688%]

scenario:appsec-appsec-enabled-with-attacks-18

  • 🟩 cpu_user_time [-41.705ms; -36.579ms] or [-8.108%; -7.112%]
  • 🟩 execution_time [-45.376ms; -39.166ms] or [-7.768%; -6.705%]
  • 🟩 instructions [-77.5M instructions; -75.7M instructions] or [-5.472%; -5.348%]

scenario:appsec-appsec-enabled-with-attacks-20

  • 🟩 execution_time [-33.294ms; -28.652ms] or [-6.141%; -5.285%]
  • 🟩 instructions [-75.3M instructions; -72.5M instructions] or [-5.835%; -5.614%]

scenario:appsec-appsec-enabled-with-attacks-22

  • 🟩 execution_time [-36.260ms; -31.771ms] or [-7.191%; -6.301%]
  • 🟩 instructions [-83.8M instructions; -81.3M instructions] or [-6.280%; -6.097%]

scenario:appsec-control-18

  • 🟩 cpu_user_time [-35.195ms; -31.354ms] or [-9.947%; -8.862%]
  • 🟩 execution_time [-39.315ms; -34.504ms] or [-9.307%; -8.168%]
  • 🟩 instructions [-87.6M instructions; -85.9M instructions] or [-9.409%; -9.223%]

scenario:appsec-control-20

  • 🟩 cpu_user_time [-34.817ms; -31.477ms] or [-10.374%; -9.379%]
  • 🟩 execution_time [-39.241ms; -35.843ms] or [-10.057%; -9.186%]
  • 🟩 instructions [-83.0M instructions; -81.5M instructions] or [-10.238%; -10.054%]

scenario:appsec-control-22

  • 🟩 cpu_user_time [-35.579ms; -31.787ms] or [-11.621%; -10.382%]
  • 🟩 execution_time [-40.361ms; -37.137ms] or [-11.039%; -10.157%]
  • 🟩 instructions [-97.2M instructions; -96.0M instructions] or [-11.205%; -11.067%]

scenario:appsec-control-with-attacks-18

  • 🟩 cpu_user_time [-35.927ms; -32.312ms] or [-10.056%; -9.044%]
  • 🟩 execution_time [-41.656ms; -36.293ms] or [-9.756%; -8.500%]
  • 🟩 instructions [-83.4M instructions; -81.8M instructions] or [-8.909%; -8.737%]

scenario:appsec-control-with-attacks-20

  • 🟩 cpu_user_time [-33.785ms; -30.290ms] or [-10.039%; -9.000%]
  • 🟩 execution_time [-38.333ms; -34.818ms] or [-9.807%; -8.908%]
  • 🟩 instructions [-83.5M instructions; -82.0M instructions] or [-10.195%; -10.008%]

scenario:appsec-control-with-attacks-22

  • 🟩 cpu_user_time [-34.451ms; -30.954ms] or [-11.213%; -10.075%]
  • 🟩 execution_time [-41.586ms; -37.763ms] or [-11.304%; -10.265%]
  • 🟩 instructions [-97.6M instructions; -96.5M instructions] or [-11.142%; -11.018%]

scenario:appsec-iast-no-vulnerability-control-18

  • 🟩 cpu_user_time [-50.615ms; -38.445ms] or [-8.193%; -6.223%]
  • 🟩 instructions [-106.7M instructions; -83.2M instructions] or [-7.487%; -5.835%]

scenario:appsec-iast-no-vulnerability-control-20

  • 🟩 cpu_user_time [-54.544ms; -44.254ms] or [-9.024%; -7.321%]
  • 🟩 execution_time [-63.401ms; -50.517ms] or [-9.178%; -7.313%]
  • 🟩 instructions [-110.5M instructions; -95.2M instructions] or [-8.652%; -7.452%]

scenario:appsec-iast-no-vulnerability-control-22

  • 🟩 cpu_user_time [-58.685ms; -46.374ms] or [-10.725%; -8.475%]
  • 🟩 execution_time [-62.031ms; -47.969ms] or [-9.732%; -7.526%]
  • 🟩 instructions [-134.3M instructions; -114.8M instructions] or [-10.045%; -8.588%]

scenario:appsec-iast-startup-time-iast-enabled-20

  • 🟥 max_rss_usage [+7.252MB; +8.798MB] or [+5.374%; +6.519%]

scenario:appsec-iast-with-vulnerability-control-18

  • 🟩 instructions [-143.3M instructions; -124.9M instructions] or [-5.764%; -5.022%]

scenario:appsec-startup-time-control-20

  • 🟩 instructions [-103.3M instructions; -99.0M instructions] or [-5.553%; -5.322%]

scenario:log-skip-log-18

  • 🟩 cpu_user_time [-29.204ms; -24.874ms] or [-8.067%; -6.871%]
  • 🟩 execution_time [-29.544ms; -28.183ms] or [-7.373%; -7.034%]

scenario:log-skip-log-22

  • 🟩 cpu_user_time [-44.892ms; -41.234ms] or [-14.925%; -13.709%]
  • 🟩 execution_time [-50.898ms; -49.550ms] or [-14.639%; -14.252%]
  • 🟩 instructions [-84.6M instructions; -82.6M instructions] or [-7.104%; -6.941%]

scenario:log-with-debug-18

  • 🟩 cpu_user_time [-25.544ms; -20.324ms] or [-7.129%; -5.672%]
  • 🟩 execution_time [-28.425ms; -26.568ms] or [-7.122%; -6.657%]

scenario:log-with-debug-22

  • 🟩 cpu_user_time [-46.233ms; -42.086ms] or [-15.428%; -14.044%]
  • 🟩 execution_time [-50.327ms; -48.596ms] or [-14.529%; -14.029%]
  • 🟩 instructions [-85.1M instructions; -83.2M instructions] or [-7.143%; -6.984%]

scenario:log-with-error-18

  • 🟩 cpu_user_time [-26.507ms; -21.736ms] or [-7.416%; -6.082%]
  • 🟩 execution_time [-28.694ms; -27.105ms] or [-7.207%; -6.808%]

scenario:log-with-error-22

  • 🟩 cpu_user_time [-45.560ms; -40.597ms] or [-15.366%; -13.692%]
  • 🟩 execution_time [-50.242ms; -49.064ms] or [-14.675%; -14.331%]
  • 🟩 instructions [-85.3M instructions; -83.3M instructions] or [-7.162%; -6.996%]

scenario:log-without-log-18

  • 🟩 cpu_user_time [-27.762ms; -22.978ms] or [-8.336%; -6.899%]
  • 🟩 execution_time [-29.041ms; -27.424ms] or [-7.800%; -7.366%]
  • 🟩 instructions [-69.7M instructions; -67.4M instructions] or [-5.610%; -5.421%]

scenario:log-without-log-22

  • 🟩 cpu_user_time [-47.006ms; -42.537ms] or [-16.868%; -15.264%]
  • 🟩 execution_time [-50.601ms; -49.478ms] or [-15.592%; -15.246%]
  • 🟩 instructions [-85.1M instructions; -81.8M instructions] or [-8.105%; -7.788%]

scenario:net-with-tracer-18

  • 🟩 cpu_user_time [-48.667ms; -44.507ms] or [-13.000%; -11.889%]
  • 🟩 execution_time [-55.369ms; -53.587ms] or [-10.231%; -9.902%]
  • 🟩 instructions [-99.5M instructions; -97.1M instructions] or [-10.659%; -10.400%]

scenario:net-with-tracer-20

  • 🟩 cpu_user_time [-35.537ms; -31.355ms] or [-9.676%; -8.537%]
  • 🟩 execution_time [-41.420ms; -39.107ms] or [-7.806%; -7.370%]
  • 🟩 instructions [-84.3M instructions; -81.1M instructions] or [-9.625%; -9.257%]

scenario:net-with-tracer-22

  • 🟩 cpu_user_time [-36.679ms; -32.288ms] or [-10.964%; -9.651%]
  • 🟩 execution_time [-42.725ms; -40.885ms] or [-8.771%; -8.393%]
  • 🟩 instructions [-102.7M instructions; -99.3M instructions] or [-11.230%; -10.858%]

scenario:plugin-bluebird-with-tracer-18

  • 🟩 cpu_user_time [-27.608ms; -24.055ms] or [-8.364%; -7.288%]
  • 🟩 execution_time [-30.744ms; -28.119ms] or [-8.123%; -7.430%]
  • 🟩 instructions [-79.5M instructions; -72.6M instructions] or [-8.621%; -7.877%]

scenario:plugin-bluebird-with-tracer-20

  • 🟩 cpu_user_time [-23.328ms; -19.595ms] or [-7.193%; -6.042%]
  • 🟩 execution_time [-25.687ms; -22.954ms] or [-6.864%; -6.134%]
  • 🟩 instructions [-71.2M instructions; -63.5M instructions] or [-8.365%; -7.458%]

scenario:plugin-bluebird-with-tracer-22

  • 🟩 cpu_user_time [-24.087ms; -19.891ms] or [-7.792%; -6.434%]
  • 🟩 execution_time [-27.222ms; -24.554ms] or [-7.495%; -6.760%]
  • 🟩 instructions [-76.1M instructions; -69.3M instructions] or [-8.417%; -7.661%]

scenario:plugin-dns-with-tracer-18

  • 🟩 instructions [-117.9M instructions; -110.0M instructions] or [-9.884%; -9.221%]

scenario:plugin-dns-with-tracer-20

  • 🟩 cpu_user_time [-57.799ms; -38.036ms] or [-9.245%; -6.084%]
  • 🟩 instructions [-108.5M instructions; -99.6M instructions] or [-9.084%; -8.338%]

scenario:plugin-dns-with-tracer-22

  • 🟩 cpu_user_time [-63.825ms; -44.402ms] or [-11.565%; -8.046%]
  • 🟩 instructions [-152.0M instructions; -144.6M instructions] or [-12.077%; -11.489%]

scenario:plugin-http-client-with-tracer-18

  • 🟩 instructions [-125.7M instructions; -117.2M instructions] or [-7.658%; -7.142%]

scenario:plugin-http-client-with-tracer-20

  • 🟩 cpu_user_time [-41.125ms; -34.091ms] or [-7.005%; -5.807%]
  • 🟩 instructions [-92.8M instructions; -87.5M instructions] or [-8.135%; -7.671%]

scenario:plugin-http-client-with-tracer-22

  • 🟩 cpu_user_time [-41.894ms; -33.572ms] or [-7.851%; -6.291%]
  • 🟩 execution_time [-49.578ms; -41.819ms] or [-6.547%; -5.523%]
  • 🟩 instructions [-112.4M instructions; -106.7M instructions] or [-9.270%; -8.800%]

scenario:plugin-http-server-querystring-obfuscation-22

  • 🟩 execution_time [-43.449ms; -39.417ms] or [-5.553%; -5.037%]

scenario:plugin-http-server-with-tracer-22

  • 🟩 execution_time [-45.717ms; -41.903ms] or [-6.114%; -5.604%]

scenario:plugin-q-with-tracer-20

  • 🟩 cpu_user_time [-78.850ms; -58.811ms] or [-8.654%; -6.455%]
  • 🟩 execution_time [-79.551ms; -60.198ms] or [-7.870%; -5.955%]

scenario:plugin-q-with-tracer-22

  • 🟩 instructions [-120.1M instructions; -102.6M instructions] or [-6.374%; -5.445%]

scenario:spans-finish-later-22

  • 🟩 instructions [-264.0M instructions; -186.1M instructions] or [-9.328%; -6.576%]

scenario:startup-with-tracer-18

  • 🟩 cpu_user_time [-25.257ms; -18.245ms] or [-10.576%; -7.640%]
  • 🟩 execution_time [-29.269ms; -27.660ms] or [-10.415%; -9.842%]
  • 🟩 instructions [-71.3M instructions; -67.0M instructions] or [-11.040%; -10.380%]

scenario:startup-with-tracer-20

  • 🟩 instructions [-60.6M instructions; -58.3M instructions] or [-10.567%; -10.163%]

scenario:startup-with-tracer-22

  • 🟩 cpu_user_time [-25.471ms; -18.712ms] or [-13.541%; -9.948%]
  • 🟩 execution_time [-28.369ms; -27.140ms] or [-12.283%; -11.750%]
  • 🟩 instructions [-77.5M instructions; -76.0M instructions] or [-12.592%; -12.351%]

@watson watson marked this pull request as ready for review February 27, 2025 12:58
@watson watson requested a review from a team as a code owner February 27, 2025 12:58
@watson watson merged commit f0c5551 into v5.x Feb 27, 2025
394 checks passed
@watson watson deleted the v5.39.0-proposal branch February 27, 2025 13:59
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.