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

Enable 128 bit trace id log injection by default #5021

Merged
merged 4 commits into from
Feb 19, 2025

Conversation

khanayan123
Copy link
Collaborator

@khanayan123 khanayan123 commented Dec 16, 2024

What does this PR do?

Enables 128 bit trace id log injection by default & refactors code to change 128 bit trace id generation to default.

Changes:

  • Both features (128Bit Generation and 128Bit ids in logs) are true by default
  • If 128Bit Generation is set to false, then 128Bit ids in logs follows suit and evaluates to false. However, it can be enabled independently if desired.

Other edge case behaviors will stay the same, such as:

  • If 128Bit Generation is set to false and 128Bit ids in logs is set to true, only the uint 64bit trace ID will be logged, unless we're dealing with an edge case where we've inherited a trace context with a 128bit trace ID.

Motivation

Standardizing configuration across SDKs to a unified and consistent definition

Copy link

github-actions bot commented Dec 16, 2024

Overall package size

Self size: 8.75 MB
Deduped: 94.95 MB
No deduping: 95.47 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

@pr-commenter
Copy link

pr-commenter bot commented Dec 16, 2024

Benchmarks

Benchmark execution time: 2025-02-19 17:55:30

Comparing candidate commit a1e069a in PR branch khanayan123/implement-consistent-config with baseline commit 052a833 in branch master.

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

Copy link

codecov bot commented Dec 17, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 80.91%. Comparing base (052a833) to head (a1e069a).
Report is 8 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #5021   +/-   ##
=======================================
  Coverage   80.91%   80.91%           
=======================================
  Files         488      488           
  Lines       21817    21817           
=======================================
  Hits        17654    17654           
  Misses       4163     4163           

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

@khanayan123 khanayan123 changed the title enable 128 bit trace id log injection by default Enable 128 bit trace id log injection by default Dec 17, 2024
@khanayan123 khanayan123 marked this pull request as ready for review December 17, 2024 19:08
@khanayan123 khanayan123 requested review from a team as code owners December 17, 2024 19:08
@rochdev
Copy link
Member

rochdev commented Dec 18, 2024

@bantonsson I remember this being a breaking change for log injection, do you know if there have been any new developments on that front that would make this non-breaking?

@rochdev rochdev requested a review from bantonsson December 18, 2024 17:19
Copy link

@bantonsson bantonsson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rochdev So the breaking part that going to 128 bits can have is the observed behavior from the customer perspective. If the customer is shipping logs somewhere else than Datadog, and the format of the TraceID changes then there could be breakage. The Datadog log ingestion and correlation handles both 64 and 128 bit ids as far as I know.

@khanayan123
Copy link
Collaborator Author

@rochdev So the breaking part that going to 128 bits can have is the observed behavior from the customer perspective. If the customer is shipping logs somewhere else than Datadog, and the format of the TraceID changes then there could be breakage. The Datadog log ingestion and correlation handles both 64 and 128 bit ids as far as I know.

@mabdinur should we classify this as a breaking change on the jira card?

@mabdinur
Copy link
Contributor

mabdinur commented Jan 3, 2025

@rochdev So the breaking part that going to 128 bits can have is the observed behavior from the customer perspective. If the customer is shipping logs somewhere else than Datadog, and the format of the TraceID changes then there could be breakage. The Datadog log ingestion and correlation handles both 64 and 128 bit ids as far as I know.

@mabdinur should we classify this as a breaking change on the jira card?

Officially, Datadog supports log correlation only within its own ecosystem. As long as this proposed change does not disrupt any existing Datadog functionality, it should not be considered a breaking change. Datadog does not officially support customers manually extracting trace data from logs or performing custom correlations. This functionality technically falls outside the scope of our versioning policy.

Including a clear note about this change in the release documentation should sufficiently address any potential concerns. Enforcing this modification to be part of a major release could unnecessarily delay the rollout of this important enhancement, ultimately impacting the value it delivers to Datadog users.

@khanayan123 khanayan123 force-pushed the khanayan123/implement-consistent-config branch from eeeb2a1 to 5619725 Compare January 14, 2025 02:26
@khanayan123 khanayan123 marked this pull request as draft January 14, 2025 03:49
@khanayan123 khanayan123 force-pushed the khanayan123/implement-consistent-config branch from 5619725 to 09bd9a4 Compare January 15, 2025 04:18
@khanayan123 khanayan123 force-pushed the khanayan123/implement-consistent-config branch from 09bd9a4 to 104c6b5 Compare February 3, 2025 15:26
@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Feb 3, 2025

Datadog Report

Branch report: khanayan123/implement-consistent-config
Commit report: 2c06fe5
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 669 Passed, 0 Skipped, 16m 12.62s Total Time

@khanayan123 khanayan123 force-pushed the khanayan123/implement-consistent-config branch from 1cc6a0c to 1c3e657 Compare February 11, 2025 19:44
@khanayan123 khanayan123 marked this pull request as ready for review February 12, 2025 17:48
@khanayan123 khanayan123 force-pushed the khanayan123/implement-consistent-config branch from 744fdde to ee4392d Compare February 12, 2025 17:49
@khanayan123 khanayan123 merged commit f06fb27 into master Feb 19, 2025
360 checks passed
@khanayan123 khanayan123 deleted the khanayan123/implement-consistent-config branch February 19, 2025 21:22
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.

4 participants