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

Add support for exit spans in Code Origin for Spans #4772

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

watson
Copy link
Collaborator

@watson watson commented Oct 11, 2024

What does this PR do?

Note: This PR relates to an upcoming Datadog feature that's not generally available yet.

Support for Code Origin for Spans was added in #4449. That PR laid the groundwork for supporting this new feature and added limited support for just Fastify entry-spans. This PR adds to that original PR by adding support for all exit-spans. That is, spans that record a request going out to a different service, e.g. a database request, an outgoing HTTP request etc.

To enable, set DD_CODE_ORIGIN_FOR_SPANS_ENABLED=true.

Copy link
Collaborator Author

watson commented Oct 11, 2024

Copy link

github-actions bot commented Oct 11, 2024

Overall package size

Self size: 7.48 MB
Deduped: 63.25 MB
No deduping: 63.53 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/native-appsec | 8.1.1 | 18.67 MB | 18.68 MB | | @datadog/native-iast-taint-tracking | 3.1.0 | 12.27 MB | 12.28 MB | | @datadog/pprof | 5.3.0 | 9.85 MB | 10.22 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.5.0 | 2.51 MB | 2.59 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 | | jsonpath-plus | 9.0.0 | 580.4 kB | 1.03 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 | | 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 | | lru-cache | 7.14.0 | 74.95 kB | 74.95 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

Copy link

codecov bot commented Oct 11, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 92.04%. Comparing base (7f93d36) to head (d60ee21).
Report is 10 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff             @@
##           master    #4772       +/-   ##
===========================================
+ Coverage   69.19%   92.04%   +22.85%     
===========================================
  Files           1        6        +5     
  Lines         198      327      +129     
  Branches       33        0       -33     
===========================================
+ Hits          137      301      +164     
+ Misses         61       26       -35     

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

@pr-commenter
Copy link

pr-commenter bot commented Oct 11, 2024

Benchmarks

Benchmark execution time: 2024-10-14 07:44:17

Comparing candidate commit 78d6ef0 in PR branch watson/DEBUG-2984/exit-spans with baseline commit c085df1 in branch master.

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

return String(Number(new Error().stack.split('\n')[2].match(/:(\d+):/)[1]) + 1)
}

function parseTags (tags) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Do we already have a utility function that does this that I can re-use? Seem very much overkill to write this code for this test, but it does make the actual test much simpler to write once the tags are converted to a proper object structure 🤔

@watson watson force-pushed the watson/DEBUG-2984/exit-spans branch from 137a5a4 to d60ee21 Compare October 12, 2024 08:09
@watson watson marked this pull request as ready for review October 12, 2024 08:10
@watson watson requested review from a team as code owners October 12, 2024 08:10
Base automatically changed from watson/span-origin to master October 14, 2024 05:00
@watson watson requested review from a team as code owners October 14, 2024 05:00
@watson watson force-pushed the watson/DEBUG-2984/exit-spans branch 2 times, most recently from 4548f1c to 27ca214 Compare October 14, 2024 06:23
@watson watson force-pushed the watson/DEBUG-2984/exit-spans branch 2 times, most recently from be8019d to 78d6ef0 Compare October 14, 2024 07:33
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.

2 participants