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

w3c phase 2: add last parent_id to tracestate #4118

Merged
merged 10 commits into from
Mar 12, 2024

Conversation

mabdinur
Copy link
Contributor

@mabdinur mabdinur commented Feb 28, 2024

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: DataDog/system-tests#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 mabdinur requested a review from khanayan123 February 28, 2024 19:43
@mabdinur mabdinur changed the title w3c: add last parent_id to tracestate w3c phase: add last parent_id to tracestate Feb 28, 2024
Copy link

github-actions bot commented Feb 28, 2024

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

Copy link

codecov bot commented Feb 28, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

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     

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

@pr-commenter
Copy link

pr-commenter bot commented Feb 29, 2024

Benchmarks

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

Comparing candidate commit c075798 in PR branch munir/add-last-parent-id-to-tracestate with baseline commit b6fe67e 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%]

@mabdinur mabdinur changed the title w3c phase: add last parent_id to tracestate w3c phase 2: add last parent_id to tracestate Feb 29, 2024
@mabdinur mabdinur marked this pull request as ready for review February 29, 2024 19:03
@mabdinur mabdinur requested a review from a team as a code owner February 29, 2024 19:03
Copy link
Collaborator

@khanayan123 khanayan123 left a comment

Choose a reason for hiding this comment

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

LGTM, but I will have to defer the approval of this PR to @rochdev since he might have some opinions on changes to tracestate

@khanayan123 khanayan123 requested a review from rochdev February 29, 2024 20:21
@mabdinur mabdinur requested a review from khanayan123 March 4, 2024 17:54
rochdev
rochdev previously approved these changes Mar 5, 2024
@mabdinur mabdinur marked this pull request as draft March 5, 2024 15:47
@mabdinur
Copy link
Contributor Author

mabdinur commented Mar 5, 2024

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

@mabdinur
Copy link
Contributor Author

mabdinur commented Mar 8, 2024

Blocked by: #4153

mabdinur and others added 2 commits March 8, 2024 16:11
Co-authored-by: Stephen Belanger <stephen.belanger@datadoghq.com>
@mabdinur mabdinur marked this pull request as ready for review March 8, 2024 21:18
@mabdinur mabdinur enabled auto-merge (squash) March 8, 2024 21:55
Copy link
Member

@rochdev rochdev left a comment

Choose a reason for hiding this comment

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

Can a test for this be added?

@mabdinur mabdinur force-pushed the munir/add-last-parent-id-to-tracestate branch from 30b87b6 to 14a7122 Compare March 12, 2024 19:18
@mabdinur mabdinur requested review from rochdev and Qard March 12, 2024 19:18
@mabdinur mabdinur merged commit 5e8e957 into master Mar 12, 2024
110 of 111 checks passed
@mabdinur mabdinur deleted the munir/add-last-parent-id-to-tracestate branch March 12, 2024 21:54
This was referenced Mar 20, 2024
@mabdinur mabdinur restored the munir/add-last-parent-id-to-tracestate branch March 26, 2024 15:30
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