Skip to content

Reduce computation overhead for inactive complex log messages #5916

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

Merged
merged 1 commit into from
Jun 20, 2025

Conversation

watson
Copy link
Collaborator

@watson watson commented Jun 19, 2025

What does this PR do?

If a given log level isn't active, reduce the amount of work required to call it, by fully utilizing either the delegate feature or the support for printf-style log messages.

Motivation

Plugin Checklist

Additional Notes

Beware of the following differences in output this change introduces:

  1. One or two places, I've removed a linebreak in a log message, as log lines are not really supposed to have linebreaks
  2. There's a difference in the output of the template string ${foo} and util.format('%s', foo) if foo is an object. The template string will produce [object Object] whereas util.format will try to serialize the object in string format. If the object is very large, extra line breaks will be added to the output

@watson watson self-assigned this Jun 19, 2025
Copy link
Collaborator Author

watson commented Jun 19, 2025

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

Copy link

github-actions bot commented Jun 19, 2025

Overall package size

Self size: 9.71 MB
Deduped: 106.22 MB
No deduping: 106.74 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

Copy link

codecov bot commented Jun 19, 2025

Codecov Report

Attention: Patch coverage is 71.11111% with 13 lines in your changes missing coverage. Please review.

Project coverage is 80.75%. Comparing base (a408cd7) to head (16355b0).
Report is 2 commits behind head on master.

Files with missing lines Patch % Lines
...i-visibility/requests/get-library-configuration.js 33.33% 2 Missing ⚠️
packages/dd-trace/src/llmobs/index.js 0.00% 2 Missing ⚠️
...nstrumentations/src/helpers/check-require-cache.js 50.00% 1 Missing ⚠️
packages/datadog-plugin-mocha/src/index.js 0.00% 1 Missing ⚠️
...s/datadog-plugin-protobufjs/src/schema_iterator.js 0.00% 1 Missing ⚠️
packages/dd-trace/src/config.js 66.66% 1 Missing ⚠️
packages/dd-trace/src/datastreams/writer.js 66.66% 1 Missing ⚠️
packages/dd-trace/src/guardrails/telemetry.js 0.00% 1 Missing ⚠️
...ges/dd-trace/src/llmobs/plugins/langchain/index.js 0.00% 1 Missing ⚠️
packages/dd-trace/src/llmobs/writers/base.js 0.00% 1 Missing ⚠️
... and 1 more
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #5916      +/-   ##
==========================================
- Coverage   80.75%   80.75%   -0.01%     
==========================================
  Files         462      462              
  Lines       19924    19923       -1     
==========================================
- Hits        16090    16089       -1     
  Misses       3834     3834              

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

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

@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Jun 19, 2025

Datadog Report

Branch report: watson/clean-up-logs
Commit report: f765224
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 1259 Passed, 0 Skipped, 16m 1.16s Total Time

@pr-commenter
Copy link

pr-commenter bot commented Jun 19, 2025

Benchmarks

Benchmark execution time: 2025-06-19 12:59:03

Comparing candidate commit 16355b0 in PR branch watson/clean-up-logs with baseline commit a408cd7 in branch master.

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

If a given log level isn't active, reduce the amount of work required to
call it, by fully utilizing either the delegate feature or the support
for printf-style log messages.
@watson watson force-pushed the watson/clean-up-logs branch from f7f8376 to 16355b0 Compare June 19, 2025 12:49
@watson watson marked this pull request as ready for review June 19, 2025 12:57
@watson watson requested review from a team as code owners June 19, 2025 12:57
@watson watson requested a review from Mariovido June 19, 2025 12:57
@watson watson merged commit 2ce554f into master Jun 20, 2025
535 checks passed
@watson watson deleted the watson/clean-up-logs branch June 20, 2025 06:59
dd-trace-js bot pushed a commit that referenced this pull request Jun 21, 2025
If a given log level isn't active, reduce the amount of work required to
call it, by fully utilizing either the delegate feature or the support
for printf-style log messages.
@dd-trace-js dd-trace-js bot mentioned this pull request Jun 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants