feat(profiling)!: add Tracepoint sample type#1676
feat(profiling)!: add Tracepoint sample type#1676gh-worker-dd-mergequeue-cf854d[bot] merged 1 commit intomainfrom
Conversation
ddprof uses "tracepoint"/"events" as the sample type for hardware
counters and perf tracepoint events. The v28 enum-based SampleType API
had no equivalent, causing those profiles to fall back to "sample"/"count"
and breaking the Datadog backend rendering.
Add `SampleType::Tracepoint` mapping to `ValueType::new("tracepoint", "events")`.
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
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. |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1676 +/- ##
==========================================
- Coverage 71.17% 71.16% -0.01%
==========================================
Files 427 427
Lines 62807 62810 +3
==========================================
- Hits 44703 44699 -4
- Misses 18104 18111 +7
🚀 New features to boost your workflow:
|
BenchmarksComparisonBenchmark execution time: 2026-03-06 09:01:45 Comparing candidate commit e97cfc5 in PR branch Found 1 performance improvements and 0 performance regressions! Performance is the same for 56 metrics, 2 unstable metrics. scenario:benching deserializing traces from msgpack to their internal representation
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. |
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
|
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
b70ded5
into
main
# What does this PR do? Bump to 29.0.0 [feat(profiling)!: add Tracepoint sample type](#1676) [feat(obfuscation/redis): Reach feature parity on redis obfuscation [APMSP-2668]](#1632) [fix(sidecar): Handle backpressure more gracefully](#1682) [feat(trace-protobuf)!: Add two fields to ClientGroupedStats [SVLS-8627]](#1630) [chore: exclude libdatadog from ADMS auto generated PRs for dependency updates](#1688) [chore(ci): run crashtracking ffi example tests in CI](#1687) [fix(crashtracking): use libunwind to unwind frames](#1663) [feat: publish tracer metadata as OTel process ctx](#1658) [ci: run thread count test in own process](#1693) [feat(obfuscation/json): Init json obfuscation [APMSP-2665]](#1635) [chore(ci): add final_status property on junit XML [APMSP-2610]](#1681) [refactor(data-pipeline-ffi): move macro definitions for better reuse](#1699) [fix(obfuscation/memcached): fuzzing fix](#1695) [ci: replace use of cargo cross for centos7 tests](#1675) #1702 (comment) [feat(stats_exporter)!: add process tags to CSS payloads](#1709) # Motivation I mainly am creating this to use the new unwinding from ucontext for crashtracking # Additional Notes Anything else we should know when reviewing? # How to test the change? Describe here in detail how the change can be validated. [APMSP-2668]: https://datadoghq.atlassian.net/browse/APMSP-2668?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [SVLS-8627]: https://datadoghq.atlassian.net/browse/SVLS-8627?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [APMSP-2665]: https://datadoghq.atlassian.net/browse/APMSP-2665?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: gyuheon.oh <[email protected]>
What does this PR do?
ddprof uses "tracepoint"/"events" as the sample type for hardware counters and perf tracepoint events. The v28 enum-based SampleType API had no equivalent, causing those profiles to fall back to "sample"/"count" and breaking the Datadog backend rendering.
Add
SampleType::Tracepointmapping toValueType::new("tracepoint", "events").Motivation
Enable usage of libdatadog sample types in ddprof
Additional Notes
NA
How to test the change?
sample_type_round_trip_conversion already passes and automatically covers Tracepoint via EnumIter.