feat(crashtracking): include Kind in crash ping and clarify requirements#1595
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
| /// which has not previously been dropped. | ||
| /// All arguments must be valid. | ||
| /// This method requires that the builder has a UUID and metadata set | ||
| /// This method requires that the builder has `metadata` and `kind` set |
There was a problem hiding this comment.
uuid is set automatically (stale inline comment). We always know what Kind a crash is. We should send it
Clippy Allow Annotation ReportComparing clippy allow annotations between branches:
Summary by Rule
Annotation Counts by File
Annotation Stats by Crate
About This ReportThis report tracks Clippy allow annotations for specific rules, showing how they've changed in this PR. Decreasing the number of these annotations generally improves code quality. |
a5dd6fc to
fb63033
Compare
This comment has been minimized.
This comment has been minimized.
BenchmarksComparisonBenchmark execution time: 2026-02-18 05:34:54 Comparing candidate commit 99181d9 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 57 metrics, 2 unstable metrics. CandidateCandidate benchmark detailsGroup 1
Group 2
Group 3
Group 4
Group 5
Group 6
Group 7
Group 8
Group 9
Group 10
Group 11
Group 12
Group 13
Group 14
Group 15
Group 16
Group 17
Group 18
Group 19
BaselineOmitted due to size. |
Kind in crash ping and clarify requirements
fb63033 to
9d890c4
Compare
b876b7b to
f198560
Compare
| } | ||
|
|
||
| pub fn is_ping_ready(&self) -> bool { | ||
| // On Unix platforms, wait for both metadata and siginfo |
There was a problem hiding this comment.
We dont need to know sig info. It is documented for the runtimes to decide to send it if they wish to enhance the ping message
f198560 to
285bf36
Compare
285bf36 to
99181d9
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1595 +/- ##
==========================================
- Coverage 70.96% 70.96% -0.01%
==========================================
Files 424 424
Lines 62077 62117 +40
==========================================
+ Hits 44056 44084 +28
- Misses 18021 18033 +12
🚀 New features to boost your workflow:
|
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
Kind in crash ping and clarify requirementsKind in crash ping and clarify requirements
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
27de9f3
into
main
|
👍 I just gave this an after-merge pass, looks great! |
# What does this PR do? This PR adds support for applications to report unhandled exceptions through the libdatadog crashtracking infrastructure. I expose an API `report_unhandled_exception` which takes in a complete stacktrace, optional exception message, and optional exception type. It then uses pre-existing functionality to pipe over this data along with other data collected by the crashtracker to the receiver, generating a crash report for unhandled exceptions. I decide to reuse the current emit code logic and an enum for ErrorKind specific parameters and have conditional logic to decide what to emit based on Kind. This lets us keep the report generation largely unified, making sure that there is no drift. Another design choice could have been implementing a separate flow to create the crash report piece by piece for unhandled exceptions and upload it directly to an endpoint, but I greatly!!! prefer to reuse a slightly modified emit flow, to minimize drift and ensure parity between to two different "types" of crash reports. PR below on the stack: [feat(crashtracking): include Kind in crash ping and clarify requirements](#1595 (comment)) PR above on the stack: [feat(crashtracking): unhandled exception reporting FFI](#1597) # Motivation # Additional Notes Example output ``` { "counters": { "profiler_inactive": 0, "profiler_collecting_sample": 0, "profiler_serializing": 0, "profiler_unwinding": 0 }, "data_schema_version": "1.5", "error": { "is_crash": true, "kind": "UnhandledException", "message": "Process was terminated due to an unhandled exception of type 'com.example.UncaughtRuntimeException'. Message: Something went very wrong in the runtime", "thread_name": "crashtracking_u", "source_type": "Crashtracking", "stack": { "format": "Datadog Crashtracker 1.0", "frames": [ { "function": "com.example.MyApp.processRequest" }, { "function": "com.example.runtime.EventLoop.run" }, { "function": "com.example.runtime.main" } ], "incomplete": false } }, "experimental": {}, "files": { "/proc/self/maps": [ "5f06e90e8000-5f06e90e9000 r--p 00000000 103:03 20388557 /home/bits/go/src/github.com/DataDog/libdatadog/examples/ffi/build/crashtracking_unhandled_exception", "5f06e90e9000-5f06e90ea000 r-xp 00001000 103:03 20388557 /home/bits/go/src/github.com/DataDog/libdatadog/examples/ffi/build/crashtracking_unhandled_exception", "5f06e90ea000-5f06e90eb000 r--p 00002000 103:03 20388557 /home/bits/go/src/github.com/DataDog/libdatadog/examples/ffi/build/crashtracking_unhandled_exception", "5f06e90eb000-5f06e90ec000 r--p 00002000 103:03 20388557 /home/bits/go/src/github.com/DataDog/libdatadog/examples/ffi/build/crashtracking_unhandled_exception", "5f06e90ec000-5f06e90ed000 rw-p 00003000 103:03 20388557 /home/bits/go/src/github.com/DataDog/libdatadog/examples/ffi/build/crashtracking_unhandled_exception", "5f0706a0b000-5f0706a2c000 rw-p 00000000 00:00 0 [heap]", "7b23aaec5000-7b23aaec8000 rw-p 00000000 00:00 0 ", "7b23aaec8000-7b23aaed6000 r--p 00000000 00:33 18157635 /usr/lib/x86_64-linux-gnu/libm.so.6", "7b23aaed6000-7b23aaf52000 r-xp 0000e000 00:33 18157635 /usr/lib/x86_64-linux-gnu/libm.so.6", "7b23aaf52000-7b23aafad000 r--p 0008a000 00:33 18157635 /usr/lib/x86_64-linux-gnu/libm.so.6", "7b23aafad000-7b23aafae000 r--p 000e4000 00:33 18157635 /usr/lib/x86_64-linux-gnu/libm.so.6", "7b23aafae000-7b23aafaf000 rw-p 000e5000 00:33 18157635 /usr/lib/x86_64-linux-gnu/libm.so.6", "7b23aafaf000-7b23aafb2000 r--p 00000000 00:33 526021 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1", "7b23aafb2000-7b23aafc9000 r-xp 00003000 00:33 526021 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1", "7b23aafc9000-7b23aafcd000 r--p 0001a000 00:33 526021 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1", "7b23aafcd000-7b23aafce000 r--p 0001d000 00:33 526021 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1", "7b23aafce000-7b23aafcf000 rw-p 0001e000 00:33 526021 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1", "7b23aafcf000-7b23aaff7000 r--p 00000000 00:33 18157632 /usr/lib/x86_64-linux-gnu/libc.so.6", "7b23aaff7000-7b23ab18c000 r-xp 00028000 00:33 18157632 /usr/lib/x86_64-linux-gnu/libc.so.6", "7b23ab18c000-7b23ab1e4000 r--p 001bd000 00:33 18157632 /usr/lib/x86_64-linux-gnu/libc.so.6", "7b23ab1e4000-7b23ab1e5000 ---p 00215000 00:33 18157632 /usr/lib/x86_64-linux-gnu/libc.so.6", "7b23ab1e5000-7b23ab1e9000 r--p 00215000 00:33 18157632 /usr/lib/x86_64-linux-gnu/libc.so.6", "7b23ab1e9000-7b23ab1eb000 rw-p 00219000 00:33 18157632 /usr/lib/x86_64-linux-gnu/libc.so.6", "7b23ab1eb000-7b23ab1f8000 rw-p 00000000 00:00 0 ", "7b23ab200000-7b23ab4be000 r--p 00000000 103:03 19134266 /home/bits/go/src/github.com/DataDog/libdatadog/release/lib/libdatadog_profiling.so", "7b23ab4be000-7b23abb38000 r-xp 002bd000 103:03 19134266 /home/bits/go/src/github.com/DataDog/libdatadog/release/lib/libdatadog_profiling.so", "7b23abb38000-7b23abbae000 r--p 00936000 103:03 19134266 /home/bits/go/src/github.com/DataDog/libdatadog/release/lib/libdatadog_profiling.so", "7b23abbae000-7b23abbb1000 rw-p 009ab000 103:03 19134266 /home/bits/go/src/github.com/DataDog/libdatadog/release/lib/libdatadog_profiling.so", "7b23abbb1000-7b23abbcf000 rw-p 00000000 00:00 0 ", "7b23abbcf000-7b23abbd3000 rw-p 00000000 00:00 0 ", "7b23abbd3000-7b23abbd5000 r--p 00000000 00:33 18157629 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2", "7b23abbd5000-7b23abbff000 r-xp 00002000 00:33 18157629 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2", "7b23abbff000-7b23abc0a000 r--p 0002c000 00:33 18157629 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2", "7b23abc0b000-7b23abc0d000 r--p 00037000 00:33 18157629 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2", "7b23abc0d000-7b23abc0f000 rw-p 00039000 00:33 18157629 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2", "7ffd13b11000-7ffd13b33000 rw-p 00000000 00:00 0 [stack]", "7ffd13ba9000-7ffd13bad000 r--p 00000000 00:00 0 [vvar]", "7ffd13bad000-7ffd13baf000 r-xp 00000000 00:00 0 [vdso]", "ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]", "" ] }, "incomplete": false, "metadata": { "library_name": "crashtracking-ffi-test", "library_version": "0.0.0", "family": "native" }, "os_info": { "architecture": "x86_64", "bitness": "64-bit", "os_type": "Ubuntu", "version": "22.4.0" }, "proc_info": { "pid": 3794082, "tid": 3794082 }, "timestamp": "2026-02-18 07:11:37.317056506 UTC", "uuid": "930d6e20-f14d-42fd-bdac-c4263da9a6ca" } ``` # How to test the change? Unit test, bin test, instrument application and emit a crash report for an unhandled exception Co-authored-by: gyuheon.oh <[email protected]>
# Release proposal for libdd-crashtracker and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-crashtracker **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v2.0.0` ### Commits - chore(crashtracking): add tag for target triple (#1741) - refactor(libdd-crashtracker)!: avoid leaking Endpoint through the public API (#1705) - chore(cargo): bump to 29.0.0 (#1702) - fix(crashtracking): use libunwind to unwind frames (#1663) - chore(deps): bump blazesym to 0.2.3 and blazesym-c to 0.1.7 (#1654) - chore(ci): fix crashtracker receiver binary rpath setting (#1652) - chore(crashtracking): emit a best effort stacktrace for Mac (#1645) - chore(crashtracker): use default-features=false for aws-lc-sys (#1625) - feat(crashtracking): report unhandled exceptions (#1596) - refactor(ddcommon)!: remove direct dependency on hyper client everywhere in common (#1604) - feat(crashtracking): include `Kind` in crash ping and clarify requirements (#1595) - fix(crashtracking): add process_tags to application field (#1576) - ci: update nightly in CI to 2026-02-08 (#1539) - fix(telemetry)!: fix logs payload format [APMSP-2590] (#1498) - chore(crashtracking): bump os_info crate to 3.14 (#1507) - Don't bail (#1494) - feat(crashtracking)!: emit crashing thread name in crash report for linux crashes (#1485) - test(crashtracking): add minimal LD preload test for crashtracker collector (#1428) - chore: release libddcommon-v1.1.0 (#1456) - chore: prepare libdd-telemetry-v2.0.0 (#1457) - [crashtracker] Retrieve panic message when crashing (#1361) - fix(sidecar): AWS lambda also can return EACCESS for shm_open (#1446) - chore(crashtracking): add `is_crash_debug` tag to crashtracker receiver debug logs (#1445) - [crashtracker] Log errors in crashtracker receiver (#1395) - chore: add changelog for every published crate (#1396) - Fix CI (#1389) - [crashtracker] Set OS info in the crash info builder when receiving report (#1388) - crashtracker: support cxx bindings for crashinfo (#1379) [APMSP-2590]: https://datadoghq.atlassian.net/browse/APMSP-2590?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
# Release proposal for libdd-crashtracker and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-crashtracker **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v2.0.0` ### Commits - chore(crashtracking): add tag for target triple (#1741) - refactor(libdd-crashtracker)!: avoid leaking Endpoint through the public API (#1705) - chore(cargo): bump to 29.0.0 (#1702) - fix(crashtracking): use libunwind to unwind frames (#1663) - chore(deps): bump blazesym to 0.2.3 and blazesym-c to 0.1.7 (#1654) - chore(ci): fix crashtracker receiver binary rpath setting (#1652) - chore(crashtracking): emit a best effort stacktrace for Mac (#1645) - chore(crashtracker): use default-features=false for aws-lc-sys (#1625) - feat(crashtracking): report unhandled exceptions (#1596) - refactor(ddcommon)!: remove direct dependency on hyper client everywhere in common (#1604) - feat(crashtracking): include `Kind` in crash ping and clarify requirements (#1595) - fix(crashtracking): add process_tags to application field (#1576) - ci: update nightly in CI to 2026-02-08 (#1539) - fix(telemetry)!: fix logs payload format [APMSP-2590] (#1498) - chore(crashtracking): bump os_info crate to 3.14 (#1507) - Don't bail (#1494) - feat(crashtracking)!: emit crashing thread name in crash report for linux crashes (#1485) - test(crashtracking): add minimal LD preload test for crashtracker collector (#1428) - chore: release libddcommon-v1.1.0 (#1456) - chore: prepare libdd-telemetry-v2.0.0 (#1457) - [crashtracker] Retrieve panic message when crashing (#1361) - fix(sidecar): AWS lambda also can return EACCESS for shm_open (#1446) - chore(crashtracking): add `is_crash_debug` tag to crashtracker receiver debug logs (#1445) - [crashtracker] Log errors in crashtracker receiver (#1395) - chore: add changelog for every published crate (#1396) - Fix CI (#1389) - [crashtracker] Set OS info in the crash info builder when receiving report (#1388) - crashtracker: support cxx bindings for crashinfo (#1379) [APMSP-2590]: https://datadoghq.atlassian.net/browse/APMSP-2590?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
# Release proposal for libdd-crashtracker and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-crashtracker **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v2.0.0` ### Commits - chore(ci): give libdd-libunwind-sys its own version (#1743) - chore(crashtracking): add tag for target triple (#1741) - refactor(libdd-crashtracker)!: avoid leaking Endpoint through the public API (#1705) - chore(cargo): bump to 29.0.0 (#1702) - fix(crashtracking): use libunwind to unwind frames (#1663) - chore(deps): bump blazesym to 0.2.3 and blazesym-c to 0.1.7 (#1654) - chore(ci): fix crashtracker receiver binary rpath setting (#1652) - chore(crashtracking): emit a best effort stacktrace for Mac (#1645) - chore(crashtracker): use default-features=false for aws-lc-sys (#1625) - feat(crashtracking): report unhandled exceptions (#1596) - refactor(ddcommon)!: remove direct dependency on hyper client everywhere in common (#1604) - feat(crashtracking): include `Kind` in crash ping and clarify requirements (#1595) - fix(crashtracking): add process_tags to application field (#1576) - ci: update nightly in CI to 2026-02-08 (#1539) - fix(telemetry)!: fix logs payload format [APMSP-2590] (#1498) - chore(crashtracking): bump os_info crate to 3.14 (#1507) - Don't bail (#1494) - feat(crashtracking)!: emit crashing thread name in crash report for linux crashes (#1485) - test(crashtracking): add minimal LD preload test for crashtracker collector (#1428) - chore: release libddcommon-v1.1.0 (#1456) - chore: prepare libdd-telemetry-v2.0.0 (#1457) - [crashtracker] Retrieve panic message when crashing (#1361) - fix(sidecar): AWS lambda also can return EACCESS for shm_open (#1446) - chore(crashtracking): add `is_crash_debug` tag to crashtracker receiver debug logs (#1445) - [crashtracker] Log errors in crashtracker receiver (#1395) - chore: add changelog for every published crate (#1396) - Fix CI (#1389) - [crashtracker] Set OS info in the crash info builder when receiving report (#1388) - crashtracker: support cxx bindings for crashinfo (#1379) [APMSP-2590]: https://datadoghq.atlassian.net/browse/APMSP-2590?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
# Release proposal for libdd-crashtracker and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-crashtracker **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v2.0.0` ### Commits - chore(crashtracking): rename target triple to runtime platform (#1747) - chore(ci): give libdd-libunwind-sys its own version (#1743) - chore(crashtracking): add tag for target triple (#1741) - refactor(libdd-crashtracker)!: avoid leaking Endpoint through the public API (#1705) - chore(cargo): bump to 29.0.0 (#1702) - fix(crashtracking): use libunwind to unwind frames (#1663) - chore(deps): bump blazesym to 0.2.3 and blazesym-c to 0.1.7 (#1654) - chore(ci): fix crashtracker receiver binary rpath setting (#1652) - chore(crashtracking): emit a best effort stacktrace for Mac (#1645) - chore(crashtracker): use default-features=false for aws-lc-sys (#1625) - feat(crashtracking): report unhandled exceptions (#1596) - refactor(ddcommon)!: remove direct dependency on hyper client everywhere in common (#1604) - feat(crashtracking): include `Kind` in crash ping and clarify requirements (#1595) - fix(crashtracking): add process_tags to application field (#1576) - ci: update nightly in CI to 2026-02-08 (#1539) - fix(telemetry)!: fix logs payload format [APMSP-2590] (#1498) - chore(crashtracking): bump os_info crate to 3.14 (#1507) - Don't bail (#1494) - feat(crashtracking)!: emit crashing thread name in crash report for linux crashes (#1485) - test(crashtracking): add minimal LD preload test for crashtracker collector (#1428) - chore: release libddcommon-v1.1.0 (#1456) - chore: prepare libdd-telemetry-v2.0.0 (#1457) - [crashtracker] Retrieve panic message when crashing (#1361) - fix(sidecar): AWS lambda also can return EACCESS for shm_open (#1446) - chore(crashtracking): add `is_crash_debug` tag to crashtracker receiver debug logs (#1445) - [crashtracker] Log errors in crashtracker receiver (#1395) - chore: add changelog for every published crate (#1396) - Fix CI (#1389) - [crashtracker] Set OS info in the crash info builder when receiving report (#1388) - crashtracker: support cxx bindings for crashinfo (#1379) Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
# Release proposal for libdd-crashtracker and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-crashtracker **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v2.0.0` ### Commits - chore(crashtracking): rename target triple to runtime platform (#1747) - chore(ci): give libdd-libunwind-sys its own version (#1743) - chore(crashtracking): add tag for target triple (#1741) - refactor(libdd-crashtracker)!: avoid leaking Endpoint through the public API (#1705) - chore(cargo): bump to 29.0.0 (#1702) - fix(crashtracking): use libunwind to unwind frames (#1663) - chore(deps): bump blazesym to 0.2.3 and blazesym-c to 0.1.7 (#1654) - chore(ci): fix crashtracker receiver binary rpath setting (#1652) - chore(crashtracking): emit a best effort stacktrace for Mac (#1645) - chore(crashtracker): use default-features=false for aws-lc-sys (#1625) - feat(crashtracking): report unhandled exceptions (#1596) - refactor(ddcommon)!: remove direct dependency on hyper client everywhere in common (#1604) - feat(crashtracking): include `Kind` in crash ping and clarify requirements (#1595) - fix(crashtracking): add process_tags to application field (#1576) - ci: update nightly in CI to 2026-02-08 (#1539) - fix(telemetry)!: fix logs payload format [APMSP-2590] (#1498) - chore(crashtracking): bump os_info crate to 3.14 (#1507) - Don't bail (#1494) - feat(crashtracking)!: emit crashing thread name in crash report for linux crashes (#1485) - test(crashtracking): add minimal LD preload test for crashtracker collector (#1428) - chore: release libddcommon-v1.1.0 (#1456) - chore: prepare libdd-telemetry-v2.0.0 (#1457) - [crashtracker] Retrieve panic message when crashing (#1361) - fix(sidecar): AWS lambda also can return EACCESS for shm_open (#1446) - chore(crashtracking): add `is_crash_debug` tag to crashtracker receiver debug logs (#1445) - [crashtracker] Log errors in crashtracker receiver (#1395) - chore: add changelog for every published crate (#1396) - Fix CI (#1389) - [crashtracker] Set OS info in the crash info builder when receiving report (#1388) - crashtracker: support cxx bindings for crashinfo (#1379) Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
# Release proposal for libdd-crashtracker and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-common **Next version:** `3.0.0` **Semver bump:** `major` **Tag:** `libdd-common-v3.0.0` ### Commits - refactor(trace-utils)!: change header name type to accept dynamic values (#1722) ## libdd-crashtracker **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v2.0.0` ### Commits - chore(crashtracking): rename target triple to runtime platform (#1747) - chore(ci): give libdd-libunwind-sys its own version (#1743) - chore(crashtracking): add tag for target triple (#1741) - refactor(libdd-crashtracker)!: avoid leaking Endpoint through the public API (#1705) - chore(cargo): bump to 29.0.0 (#1702) - fix(crashtracking): use libunwind to unwind frames (#1663) - chore(deps): bump blazesym to 0.2.3 and blazesym-c to 0.1.7 (#1654) - chore(ci): fix crashtracker receiver binary rpath setting (#1652) - chore(crashtracking): emit a best effort stacktrace for Mac (#1645) - chore(crashtracker): use default-features=false for aws-lc-sys (#1625) - feat(crashtracking): report unhandled exceptions (#1596) - refactor(ddcommon)!: remove direct dependency on hyper client everywhere in common (#1604) - feat(crashtracking): include `Kind` in crash ping and clarify requirements (#1595) - fix(crashtracking): add process_tags to application field (#1576) - ci: update nightly in CI to 2026-02-08 (#1539) - fix(telemetry)!: fix logs payload format [APMSP-2590] (#1498) - chore(crashtracking): bump os_info crate to 3.14 (#1507) - Don't bail (#1494) - feat(crashtracking)!: emit crashing thread name in crash report for linux crashes (#1485) - test(crashtracking): add minimal LD preload test for crashtracker collector (#1428) - chore: release libddcommon-v1.1.0 (#1456) - chore: prepare libdd-telemetry-v2.0.0 (#1457) - [crashtracker] Retrieve panic message when crashing (#1361) - fix(sidecar): AWS lambda also can return EACCESS for shm_open (#1446) - chore(crashtracking): add `is_crash_debug` tag to crashtracker receiver debug logs (#1445) - [crashtracker] Log errors in crashtracker receiver (#1395) - chore: add changelog for every published crate (#1396) - Fix CI (#1389) - [crashtracker] Set OS info in the crash info builder when receiving report (#1388) - crashtracker: support cxx bindings for crashinfo (#1379) [APMSP-2590]: https://datadoghq.atlassian.net/browse/APMSP-2590?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --------- Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>

What does this PR do?
This PR updates what a
CrashPingconsists of. This is in preparation of allowing the crashtracker to not only handle UNIX signal based crashes, but other types of program terminations, such as unhandled exceptions.These are the biggest changes
CRASHTRACK_*_KINDblock in the communication protocol of the receiver. Previously, we always defaulted toUnixSignalin the receiver, which is not true in the world of supporting unhandled exceptionswith_kindAPI to the crash info builder, which is why this PR is marked asfeatKindas an explicitErrorKindfor theCrashPing. Previously, under the assumption that we were only supporting unix signal based crashes, we would set it toCrash ping. This was bad design and this PR fixes that.This PR does not contain any changes for actually handling unhandled exceptions. It is still in the world of unix signals only, it can now be extended, however, in the PR above this one
Additional Notes
PR on top of this on the stack: feat(crashtracking): report unhandled exceptions
How to test the change?
Unit tests have been updated to include Kind. If not, then any time Kind is not included, crash ping build will fail