feat(remote-config)!: add AsmRawResponseBody capability - #2278
Conversation
🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: a33768f | Docs | Datadog PR Page | Give us feedback! |
BenchmarksComparisonBenchmark execution time: 2026-07-27 14:54:46 Comparing candidate commit a33768f in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 2 metrics, 0 unstable metrics.
|
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | a33768f | 1785163434 | estrigana/add-asm-raw-body-capability |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sdk_test_data/rules-based | execution_time | 124.122µs | 127.254µs ± 5.509µs | 126.210µs ± 0.794µs | 127.033µs | 132.428µs | 146.735µs | 187.218µs | 48.34% | 7.872 | 74.799 | 4.32% | 0.390µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| sdk_test_data/rules-based | execution_time | [126.490µs; 128.017µs] or [-0.600%; +0.600%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | a33768f | 1785163434 | estrigana/add-asm-raw-body-capability |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| single_flag_killswitch/rules-based | execution_time | 156.564ns | 160.743ns ± 3.150ns | 160.355ns ± 1.701ns | 161.848ns | 166.768ns | 170.400ns | 174.490ns | 8.82% | 1.413 | 2.859 | 1.95% | 0.223ns | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| single_flag_killswitch/rules-based | execution_time | [160.306ns; 161.179ns] or [-0.272%; +0.272%] | None | None | None |
Baseline
Baseline benchmark details
Group 1
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | be0b543 | 1784918029 | main |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sdk_test_data/rules-based | execution_time | 124.864µs | 128.340µs ± 5.302µs | 127.273µs ± 0.623µs | 128.146µs | 132.754µs | 148.586µs | 184.606µs | 45.05% | 7.511 | 68.347 | 4.12% | 0.375µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| sdk_test_data/rules-based | execution_time | [127.605µs; 129.074µs] or [-0.573%; +0.573%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | be0b543 | 1784918029 | main |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| single_flag_killswitch/rules-based | execution_time | 156.826ns | 160.580ns ± 2.973ns | 159.836ns ± 1.918ns | 162.052ns | 166.348ns | 168.888ns | 171.772ns | 7.47% | 1.093 | 0.898 | 1.85% | 0.210ns | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| single_flag_killswitch/rules-based | execution_time | [160.167ns; 160.992ns] or [-0.257%; +0.257%] | None | None | None |
6956b40 to
7a3b7e3
Compare
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
|
42c0f04 to
a33768f
Compare
| strum_macros::IntoStaticStr, | ||
| strum_macros::Display, | ||
| )] | ||
| #[non_exhaustive] |
There was a problem hiding this comment.
I added this to fix the semver-check CI failure
There was a problem hiding this comment.
I think the issue was rather the title (misplaced !), right? It's ok to have breaking changes, the CI just enforces that the title matches. Also I believe adding #[non_exhaustive] is technically a breaking change as well?
That being said, if this C-like enum is likely to be extended in the future, it looks like a good candidate for #[non_exhaustive]. This will make the next changes non-breaking. I'll let you decide if it's worth keeping or not (typically if this enum is expected to be very stable from now, maybe not worth it). Both options are reasonable.
There was a problem hiding this comment.
More details
The new capability value 49 follows the existing reverse-order bitset encoding: boundary checks confirmed it produces the expected seven-byte payload and combines correctly with capability 48. The crate’s Cargo validation could not run because the pinned Rust 1.87 toolchain and patched proptest Git dependency were unavailable in the sandbox; no diff-only behavioral regression was identified.
📊 Validated against 4 scenarios · Open Bits AI session
🤖 Datadog Autotest · Commit a33768f · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
| strum_macros::IntoStaticStr, | ||
| strum_macros::Display, | ||
| )] | ||
| #[non_exhaustive] |
There was a problem hiding this comment.
I think the issue was rather the title (misplaced !), right? It's ok to have breaking changes, the CI just enforces that the title matches. Also I believe adding #[non_exhaustive] is technically a breaking change as well?
That being said, if this C-like enum is likely to be extended in the future, it looks like a good candidate for #[non_exhaustive]. This will make the next changes non-breaking. I'll let you decide if it's worth keeping or not (typically if this enum is expected to be very stable from now, maybe not worth it). Both options are reasonable.
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
95610de
into
main
What does this PR do?
Add AsmRawResponseBody (49) to RemoteConfigCapabilities to allow tracers to advertise support for raw HTTP response body collection to the WAF via remote config.
RFC-115