dd-trace-js
dd-trace-js copied to clipboard
w3c phase 2: add last parent_id to tracestate
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
- [ ] Unit tests.
- [ ] TypeScript definitions.
- [ ] TypeScript tests.
- [ ] API documentation.
- [ ] CircleCI jobs/workflows.
- [ ] Plugin is exported.
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!
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
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.
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%]
TODO: address the case where a span is not active and p
value needs to be propagated
Blocked by: https://github.com/DataDog/dd-trace-js/pull/4153