dd-trace-js icon indicating copy to clipboard operation
dd-trace-js copied to clipboard

Use proper API to get number of bytes in data

Open watson opened this issue 4 months ago • 5 comments
trafficstars

What does this PR do?

Relying on string length to calculate the number of bytes in the string is incorrect as the length property returns number of characters - not the number of bytes those characters take up.

This is a follow up to PR #5924

Motivation

Plugin Checklist

Additional Notes

Reviewers should be careful to check the input to Buffer.byteLength() as it will throw un unsupported input, whereas input.length will in most cases just return undefined. However, while the old behavior is not throwing, it's most likely still incorrect and propably means that the input is of an unexpected type.

watson avatar Jun 23 '25 12:06 watson

This stack of pull requests is managed by Graphite. Learn more about stacking.

watson avatar Jun 23 '25 12:06 watson

Overall package size

Self size: 9.75 MB Deduped: 106.26 MB No deduping: 106.78 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.7.0 | 35.02 MB | 35.02 MB | | @datadog/native-appsec | 8.5.2 | 19.33 MB | 19.34 MB | | @datadog/native-iast-taint-tracking | 4.0.0 | 11.72 MB | 11.73 MB | | @datadog/pprof | 5.8.2 | 9.56 MB | 9.93 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.5.3 | 2.95 MB | 5.6 MB | | @datadog/wasm-js-rewriter | 4.0.1 | 2.85 MB | 3.58 MB | | @datadog/native-metrics | 3.1.1 | 1.02 MB | 1.43 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.14.0 | 120.58 kB | 841.68 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.1 | 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 | | istanbul-lib-coverage | 3.2.2 | 34.37 kB | 34.37 kB | | rfdc | 1.4.1 | 27.15 kB | 27.15 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | dc-polyfill | 0.1.9 | 25.11 kB | 25.11 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | shell-quote | 1.8.2 | 23.54 kB | 23.54 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 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 | | mutexify | 1.4.0 | 5.71 kB | 8.74 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.4 | 3.96 kB | 3.96 kB |

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

github-actions[bot] avatar Jun 23 '25 12:06 github-actions[bot]

Codecov Report

Attention: Patch coverage is 50.00000% with 2 lines in your changes missing coverage. Please review.

Project coverage is 79.60%. Comparing base (abdf73b) to head (9b7b0dc). Report is 5 commits behind head on master.

Files with missing lines Patch % Lines
packages/dd-trace/src/llmobs/writers/base.js 0.00% 1 Missing :warning:
packages/dd-trace/src/llmobs/writers/spans.js 0.00% 1 Missing :warning:
Additional details and impacted files
@@           Coverage Diff           @@
##           master    #5927   +/-   ##
=======================================
  Coverage   79.60%   79.60%           
=======================================
  Files         477      477           
  Lines       20387    20387           
=======================================
  Hits        16229    16229           
  Misses       4158     4158           

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

:rocket: New features to boost your workflow:
  • :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

codecov[bot] avatar Jun 23 '25 12:06 codecov[bot]

Datadog Report

Branch report: watson/byte-length-fix Commit report: 1f80364 Test service: dd-trace-js-integration-tests

:white_check_mark: 0 Failed, 1259 Passed, 0 Skipped, 21m 36.49s Total Time

Benchmarks

Benchmark execution time: 2025-06-25 05:24:06

Comparing candidate commit 9b7b0dc3e8a789b5170a4ba83133a556a49b5437 in PR branch watson/byte-length-fix with baseline commit abdf73b782b32d7f31c48377635a8c838dea4b26 in branch master.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 1277 metrics, 46 unstable metrics.

pr-commenter[bot] avatar Jun 23 '25 12:06 pr-commenter[bot]