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

Baggage support #4563

Open
wants to merge 45 commits into
base: master
Choose a base branch
from
Open

Baggage support #4563

wants to merge 45 commits into from

Conversation

ida613
Copy link
Collaborator

@ida613 ida613 commented Jul 31, 2024

What does this PR do?

Add support for baggage in datadog public api

Motivation

Plugin Checklist

Additional Notes

Copy link

github-actions bot commented Jul 31, 2024

Overall package size

Self size: 7.81 MB
Deduped: 64.67 MB
No deduping: 65.01 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/native-appsec | 8.2.1 | 19.18 MB | 19.19 MB | | @datadog/native-iast-taint-tracking | 3.2.0 | 13.9 MB | 13.91 MB | | @datadog/pprof | 5.4.1 | 9.76 MB | 10.13 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.5.0 | 2.51 MB | 2.65 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.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.11.2 | 112.74 kB | 826.22 kB | | msgpack-lite | 0.1.26 | 201.16 kB | 281.59 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 | | semver | 7.6.3 | 95.82 kB | 95.82 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.1 | 51.46 kB | 51.46 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 | | rfdc | 1.3.1 | 25.21 kB | 25.21 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 | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | path-to-regexp | 0.1.10 | 6.38 kB | 6.38 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 Jul 31, 2024

Benchmarks

Benchmark execution time: 2024-10-30 02:14:14

Comparing candidate commit f898c98 in PR branch ida613/baggage with baseline commit 1c0958e in branch master.

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

Copy link

codecov bot commented Aug 5, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 54.77%. Comparing base (fd0f570) to head (1f3ebc0).
Report is 11 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff             @@
##           master    #4563       +/-   ##
===========================================
- Coverage   68.58%   54.77%   -13.81%     
===========================================
  Files          12      125      +113     
  Lines         818     3980     +3162     
===========================================
+ Hits          561     2180     +1619     
- Misses        257     1800     +1543     

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

@ida613 ida613 changed the title WIP: otel baggage support proof of concept WIP: Baggage support Oct 23, 2024
@ida613 ida613 changed the title WIP: Baggage support Baggage support Oct 23, 2024
@ida613 ida613 marked this pull request as ready for review October 23, 2024 19:10
@ida613 ida613 requested review from a team as code owners October 23, 2024 19:10
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.

What happens when there is a conflict between a Datadog baggage and an OpenTelemetry baggage?

packages/dd-trace/src/config.js Show resolved Hide resolved
packages/dd-trace/src/config.js Show resolved Hide resolved
packages/dd-trace/src/config.js Show resolved Hide resolved
@@ -36,13 +36,15 @@ class DatadogSpanContext {
? this._trace.tags[TRACE_ID_128] + this._traceId.toString(16).padStart(16, '0')
: this._traceId.toString(16).padStart(32, '0')
}
// if (!this._traceId) return ''
Copy link
Member

Choose a reason for hiding this comment

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

Dead code should be removed and not just commented out.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

will do

@ida613
Copy link
Collaborator Author

ida613 commented Oct 25, 2024

What happens when there is a conflict between a Datadog baggage and an OpenTelemetry baggage?

when the new baggage propagation style this PR proposes comes into conflict with existing baggage propagation, the existing style takes precedence. Is this what you are asking?


propagator.inject(spanContext, carrier)

expect(carrier['ot-baggage-number']).to.equal('1.23')
expect(carrier['ot-baggage-bool']).to.equal('true')
expect(carrier['ot-baggage-array']).to.equal('foo,bar')
expect(carrier['ot-baggage-object']).to.equal('[object Object]')
expect(carrier.baggage).to.be.equal('number=1.23,bool=true,array=foo%2Cbar,object=%5Bobject%20Object%5D')
Copy link
Member

@lucaspimentel lucaspimentel Oct 28, 2024

Choose a reason for hiding this comment

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

Good test. The array=foo%2Cbar here decodes to

key:array
value:foo,bar

which we should be able to handle correctly, despite the comma in foo,bar. I need to add a test with commas to make sure we handle this correctly .NET, thanks!

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