Skip to content

Commit b70ded5

Browse files
authored
feat(profiling)!: add Tracepoint sample type (#1676)
# 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::Tracepoint` mapping to `ValueType::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. Co-authored-by: erwan.viollet <erwan.viollet@datadoghq.com>
1 parent 29b010a commit b70ded5

2 files changed

Lines changed: 5 additions & 0 deletions

File tree

libdd-profiling/src/api/sample_type.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ pub enum SampleType {
5858
ObjectsLegacy,
5959
RequestTime,
6060
Sample,
61+
Tracepoint,
6162
SocketReadSize,
6263
SocketReadSizeSamples,
6364
SocketReadTime,
@@ -137,6 +138,7 @@ impl From<SampleType> for ValueType<'static> {
137138
SampleType::ObjectsLegacy => ValueType::new("objects", "count"),
138139
SampleType::RequestTime => ValueType::new("request-time", "nanoseconds"),
139140
SampleType::Sample => ValueType::new("sample", "count"),
141+
SampleType::Tracepoint => ValueType::new("tracepoint", "events"),
140142
SampleType::SocketReadSize => ValueType::new("socket-read-size", "bytes"),
141143
SampleType::SocketReadSizeSamples => {
142144
ValueType::new("socket-read-size-samples", "count")
@@ -210,6 +212,7 @@ impl<'a> TryFrom<ValueType<'a>> for SampleType {
210212
("objects", "count") => SampleType::ObjectsLegacy,
211213
("request-time", "nanoseconds") => SampleType::RequestTime,
212214
("sample", "count") => SampleType::Sample,
215+
("tracepoint", "events") => SampleType::Tracepoint,
213216
("socket-read-size", "bytes") => SampleType::SocketReadSize,
214217
("socket-read-size-samples", "count") => SampleType::SocketReadSizeSamples,
215218
("socket-read-time", "nanoseconds") => SampleType::SocketReadTime,

libdd-profiling/src/cxx.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ pub mod ffi {
7575
ObjectsLegacy, // LEGACY: Use InuseObjects instead
7676
RequestTime,
7777
Sample,
78+
Tracepoint,
7879
SocketReadSize,
7980
SocketReadSizeSamples,
8081
SocketReadTime,
@@ -376,6 +377,7 @@ impl TryFrom<ffi::SampleType> for api::SampleType {
376377
ffi::SampleType::ObjectsLegacy => api::SampleType::ObjectsLegacy,
377378
ffi::SampleType::RequestTime => api::SampleType::RequestTime,
378379
ffi::SampleType::Sample => api::SampleType::Sample,
380+
ffi::SampleType::Tracepoint => api::SampleType::Tracepoint,
379381
ffi::SampleType::SocketReadSize => api::SampleType::SocketReadSize,
380382
ffi::SampleType::SocketReadSizeSamples => api::SampleType::SocketReadSizeSamples,
381383
ffi::SampleType::SocketReadTime => api::SampleType::SocketReadTime,

0 commit comments

Comments
 (0)