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 crashtracking with libdatadog native binding #4692

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

Conversation

rochdev
Copy link
Member

@rochdev rochdev commented Sep 17, 2024

What does this PR do?

Add crashtracking with libdatadog native binding.

Motivation

We already report in-app errors using Error Tracking, but this doesn't cover cases when the process dies from a cause outside of a JavaScript error, for example a segmentation fault or an OOM exception. This PR adds support for those cases.

Additional Notes

This PR mostly just adds a thin wrapper on top of the native extension. The actual tracking happens in the crashtracker receiver, which is a side-process started by the native extension to monitor the current process externally.

Copy link

github-actions bot commented Sep 17, 2024

Overall package size

Self size: 7.17 MB
Deduped: 82.24 MB
No deduping: 82.52 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.1.6 | 19.71 MB | 19.71 MB | | @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.4.1 | 2.14 MB | 2.23 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.8.1 | 71.67 kB | 785.15 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

@pr-commenter
Copy link

pr-commenter bot commented Sep 19, 2024

Benchmarks

Benchmark execution time: 2024-09-23 14:47:41

Comparing candidate commit a094e3d in PR branch crashtracker with baseline commit 1213484 in branch master.

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

@rochdev rochdev marked this pull request as ready for review September 20, 2024 15:47
@rochdev rochdev requested a review from a team as a code owner September 20, 2024 15:47
@rochdev rochdev changed the title Add crashtracker Add crashtracking with libdatadog native binding Sep 20, 2024
@tlhunter
Copy link
Member

tlhunter commented Sep 20, 2024

Notes: Disabled by default, adds 20MB, sidecar process, excluded from lambda layer

tlhunter
tlhunter previously approved these changes Sep 20, 2024
szegedi
szegedi previously approved these changes Sep 23, 2024
Copy link
Contributor

@szegedi szegedi left a comment

Choose a reason for hiding this comment

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

LGTM, one small nitpick with the way configuration is handled.

packages/dd-trace/src/config.js Outdated Show resolved Hide resolved
@rochdev rochdev dismissed stale reviews from szegedi and tlhunter via a094e3d September 23, 2024 14:36
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.

3 participants