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

w3c phase 2: add last parent_id to tracestate

Open mabdinur opened this issue 11 months ago • 4 comments

What does this PR do?

With this change span_id will be encoded in both the tracestate and traceparent headers. This will allow us to re-connect datadog traces that contain non-datadog spans.

Ex: Host A: Datadog Spans ->tracecontext-> Host B: Otel Dynatrace Spans -->tracecontext-> Host C: Otel Datadog Spans By adding span_id to the tracestate Host C will be able to detect upstream Datadog spans from Host A. This span_id will then be sent to Datadog intake services (via _dd.parent_id tag). The Datadog internal services will use this tag to reconnect Datadog Spans.

Tests will be added in this PR: https://github.com/DataDog/system-tests/pull/2181

Motivation

Plugin Checklist

Additional Notes

Security

Datadog employees:

  • [ ] If this PR touches code that signs or publishes builds or packages, or handles credentials of any kind, I've requested a review from @DataDog/security-design-and-guidance.
  • [ ] This PR doesn't touch any of that.

Unsure? Have a question? Request a review!

mabdinur avatar Feb 28 '24 19:02 mabdinur

Overall package size

Self size: 6.22 MB Deduped: 61.21 MB No deduping: 61.97 MB

Dependency sizes

name version self size total size
@datadog/native-iast-taint-tracking 1.7.0 16.71 MB 16.72 MB
@datadog/native-appsec 7.1.0 14.37 MB 14.38 MB
@datadog/pprof 5.1.0 8.83 MB 9.68 MB
protobufjs 7.2.5 2.77 MB 6.56 MB
@datadog/native-iast-rewriter 2.2.3 2.19 MB 2.28 MB
@opentelemetry/core 1.14.0 872.87 kB 1.47 MB
@datadog/native-metrics 2.0.0 898.77 kB 1.3 MB
@opentelemetry/api 1.4.1 780.32 kB 780.32 kB
import-in-the-middle 1.7.3 67.62 kB 731.01 kB
pprof-format 2.0.7 588.12 kB 588.12 kB
msgpack-lite 0.1.26 201.16 kB 281.59 kB
opentracing 0.14.7 194.81 kB 194.81 kB
semver 7.5.4 93.4 kB 123.8 kB
@datadog/sketches-js 2.1.0 109.9 kB 109.9 kB
lodash.sortby 4.7.0 75.76 kB 75.76 kB
lru-cache 7.14.0 74.95 kB 74.95 kB
ipaddr.js 2.1.0 60.23 kB 60.23 kB
ignore 5.2.4 51.22 kB 51.22 kB
int64-buffer 0.1.10 49.18 kB 49.18 kB
shell-quote 1.8.1 44.96 kB 44.96 kB
istanbul-lib-coverage 3.2.0 29.34 kB 29.34 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
node-abort-controller 3.1.1 16.89 kB 16.89 kB
jest-docblock 29.7.0 8.99 kB 12.76 kB
crypto-randomuuid 1.0.0 11.18 kB 11.18 kB
path-to-regexp 0.1.7 6.78 kB 6.78 kB
koalas 1.0.2 6.47 kB 6.47 kB
methods 1.1.2 5.29 kB 5.29 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

github-actions[bot] avatar Feb 28 '24 19:02 github-actions[bot]

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 85.06%. Comparing base (22e9135) to head (14a7122). Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4118      +/-   ##
==========================================
+ Coverage   85.00%   85.06%   +0.06%     
==========================================
  Files         247      247              
  Lines       10914    10947      +33     
  Branches       33       33              
==========================================
+ Hits         9277     9312      +35     
+ Misses       1637     1635       -2     

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

codecov[bot] avatar Feb 28 '24 19:02 codecov[bot]

Benchmarks

Benchmark execution time: 2024-02-29 19:10:22

Comparing candidate commit c075798952635a332a3e988eb5fe797253a2751f in PR branch munir/add-last-parent-id-to-tracestate with baseline commit b6fe67e2855d57f92357cd791a0e3218d0e3034b in branch master.

Found 1 performance improvements and 0 performance regressions! Performance is the same for 257 metrics, 8 unstable metrics.

scenario:plugin-graphql-with-depth-off-18

  • 🟩 max_rss_usage [-125.847MB; -124.713MB] or [-13.079%; -12.961%]

pr-commenter[bot] avatar Feb 29 '24 15:02 pr-commenter[bot]

TODO: address the case where a span is not active and p value needs to be propagated

mabdinur avatar Mar 05 '24 15:03 mabdinur

Blocked by: https://github.com/DataDog/dd-trace-js/pull/4153

mabdinur avatar Mar 08 '24 18:03 mabdinur