Skip to content

feat!: implement HTTP common component#1624

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 22 commits intomainfrom
ekump/APMSP-2516-implement-http-common-component
Mar 30, 2026
Merged

feat!: implement HTTP common component#1624
gh-worker-dd-mergequeue-cf854d[bot] merged 22 commits intomainfrom
ekump/APMSP-2516-implement-http-common-component

Conversation

@ekump
Copy link
Copy Markdown
Contributor

@ekump ekump commented Feb 23, 2026

What does this PR do?

This PR introduces libdd-http-client, a new crate providing a generic, backend-agnostic async HTTP client supporting multipart/form-data designed to be consumed by external language libraries (Python, Ruby, .NET, …) via FFI.

This plan is to follow-up with a higher-level ddog-agent-specific layer (header injection, endpoint routing, etc.) on top of it.

The client supports both a hyper and a reqwest backend, depending on the binary size/performance tradeoffs of consumers.

Supported transport:

  • TCP (HTTP / HTTPS)
  • Unix Domain Socket
  • Windows Named Pipe

Additional features:

  • Opt-in exponential backoff with jitter via RetryConfig
  • FIPS support

Motivation

dd-trace-py and dd-trace-rb currently implement HTTP communication in their native
languages (http.client / net/http). This creates three problems:

  1. Instrumentation leakage: the SDK's own HTTP calls can be accidentally captured by the tracing instrumentation running in the same process.
  2. VM lock contention: synchronous I/O in Python holds the GIL; doing this on a background thread blocks the host application.
  3. Duplicated protocol logic: every SDK independently re-implements retries, UDS support, connection pooling, and FIPS TLS.

A shared Rust HTTP client exposed over FFI solves all three: it runs outside the language runtime, is never instrumented by the tracer, and provides one canonical implementation of transport and resilience.

Additional Notes

N/A

How to test the change?

Several unit tests are included. This is an initial PR, and porper integration will be handled later.

@ekump ekump changed the title (WIP} ekump/APMSP-2516 implement http common component (WIP) ekump/APMSP-2516 implement http common component Feb 23, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 23, 2026

Clippy Allow Annotation Report

Comparing clippy allow annotations between branches:

  • Base Branch: origin/main
  • PR Branch: origin/ekump/APMSP-2516-implement-http-common-component

Summary by Rule

Rule Base Branch PR Branch Change
unwrap_used 3 3 No change (0%)
Total 3 3 No change (0%)

Annotation Counts by File

File Base Branch PR Branch Change
libdd-common/src/lib.rs 3 3 No change (0%)

Annotation Stats by Crate

Crate Base Branch PR Branch Change
clippy-annotation-reporter 5 5 No change (0%)
datadog-ffe-ffi 1 1 No change (0%)
datadog-ipc 20 20 No change (0%)
datadog-live-debugger 6 6 No change (0%)
datadog-live-debugger-ffi 10 10 No change (0%)
datadog-profiling-replayer 4 4 No change (0%)
datadog-remote-config 3 3 No change (0%)
datadog-sidecar 55 55 No change (0%)
libdd-common 10 10 No change (0%)
libdd-common-ffi 12 12 No change (0%)
libdd-data-pipeline 5 5 No change (0%)
libdd-ddsketch 2 2 No change (0%)
libdd-dogstatsd-client 1 1 No change (0%)
libdd-profiling 13 13 No change (0%)
libdd-telemetry 19 19 No change (0%)
libdd-tinybytes 4 4 No change (0%)
libdd-trace-normalization 2 2 No change (0%)
libdd-trace-obfuscation 8 8 No change (0%)
libdd-trace-utils 15 15 No change (0%)
Total 195 195 No change (0%)

About This Report

This 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.

@ekump ekump force-pushed the ekump/APMSP-2516-implement-http-common-component branch 2 times, most recently from 919247e to 0c989d9 Compare February 23, 2026 17:34
@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Feb 23, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-03-30 13:53:50

Comparing candidate commit e8deb49 in PR branch ekump/APMSP-2516-implement-http-common-component with baseline commit 8d2029d in branch main.

Found 14 performance improvements and 5 performance regressions! Performance is the same for 43 metrics, 0 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:credit_card/is_card_number/ 378282246310005

  • 🟩 execution_time [-5.856µs; -5.786µs] or [-7.965%; -7.871%]
  • 🟩 throughput [+1163042.340op/s; +1176293.839op/s] or [+8.550%; +8.647%]

scenario:credit_card/is_card_number/378282246310005

  • 🟩 execution_time [-5.263µs; -5.191µs] or [-7.518%; -7.416%]
  • 🟩 throughput [+1145284.152op/s; +1160120.156op/s] or [+8.017%; +8.121%]

scenario:credit_card/is_card_number/37828224631000521389798

  • 🟩 execution_time [-7.329µs; -7.298µs] or [-14.000%; -13.940%]
  • 🟩 throughput [+3095105.326op/s; +3109010.841op/s] or [+16.203%; +16.276%]

scenario:credit_card/is_card_number_no_luhn/ 3782-8224-6310-005

  • 🟩 execution_time [-4.069µs; -3.951µs] or [-6.318%; -6.134%]
  • 🟩 throughput [+1015746.647op/s; +1047739.804op/s] or [+6.541%; +6.747%]

scenario:credit_card/is_card_number_no_luhn/ 378282246310005

  • 🟩 execution_time [-3.889µs; -3.848µs] or [-6.754%; -6.684%]
  • 🟩 throughput [+1244399.595op/s; +1257818.972op/s] or [+7.165%; +7.242%]

scenario:credit_card/is_card_number_no_luhn/378282246310005

  • 🟩 execution_time [-4.479µs; -4.434µs] or [-8.174%; -8.092%]
  • 🟩 throughput [+1607919.485op/s; +1623275.175op/s] or [+8.811%; +8.895%]

scenario:credit_card/is_card_number_no_luhn/37828224631000521389798

  • 🟩 execution_time [-7.363µs; -7.334µs] or [-14.056%; -14.001%]
  • 🟩 throughput [+3108529.655op/s; +3121644.282op/s] or [+16.283%; +16.352%]

scenario:normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo...

  • 🟥 execution_time [+19.522µs; +19.663µs] or [+10.467%; +10.543%]
  • 🟥 throughput [-511472.117op/s; -507943.766op/s] or [-9.539%; -9.473%]

scenario:normalization/normalize_name/normalize_name/good

  • 🟥 execution_time [+902.327ns; +932.409ns] or [+9.099%; +9.403%]
  • 🟥 throughput [-8663290.686op/s; -8401201.285op/s] or [-8.591%; -8.331%]

scenario:tags/replace_trace_tags

  • 🟥 execution_time [+97.321ns; +108.458ns] or [+4.103%; +4.573%]

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching deserializing traces from msgpack to their internal representation execution_time 49.099ms 49.372ms ± 1.113ms 49.209ms ± 0.046ms 49.266ms 49.441ms 56.297ms 60.455ms 22.86% 8.192 68.936 2.25% 0.079ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching deserializing traces from msgpack to their internal representation execution_time [49.218ms; 49.527ms] or [-0.312%; +0.312%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching serializing traces from their internal representation to msgpack execution_time 14.793ms 14.855ms ± 0.030ms 14.852ms ± 0.015ms 14.867ms 14.900ms 14.946ms 15.042ms 1.28% 1.985 9.196 0.20% 0.002ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching serializing traces from their internal representation to msgpack execution_time [14.851ms; 14.859ms] or [-0.028%; +0.028%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample_timestamped_x1000 execution_time 4.216ms 4.221ms ± 0.008ms 4.220ms ± 0.001ms 4.221ms 4.225ms 4.229ms 4.333ms 2.69% 11.780 152.649 0.20% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample_timestamped_x1000 execution_time [4.219ms; 4.222ms] or [-0.028%; +0.028%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
receiver_entry_point/report/2598 execution_time 3.419ms 3.461ms ± 0.030ms 3.450ms ± 0.010ms 3.466ms 3.532ms 3.554ms 3.561ms 3.23% 1.530 1.578 0.87% 0.002ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2598 execution_time [3.457ms; 3.465ms] or [-0.120%; +0.120%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
tags/replace_trace_tags execution_time 2.424µs 2.475µs ± 0.037µs 2.470µs ± 0.030µs 2.500µs 2.537µs 2.545µs 2.550µs 3.22% 0.357 -1.199 1.47% 0.003µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
tags/replace_trace_tags execution_time [2.470µs; 2.480µs] or [-0.205%; +0.205%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching string interning on wordpress profile execution_time 160.408µs 161.579µs ± 0.317µs 161.601µs ± 0.189µs 161.754µs 162.097µs 162.265µs 162.672µs 0.66% -0.042 0.997 0.20% 0.022µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching string interning on wordpress profile execution_time [161.535µs; 161.623µs] or [-0.027%; +0.027%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time 205.229µs 206.097µs ± 0.427µs 206.115µs ± 0.296µs 206.376µs 206.685µs 207.172µs 207.718µs 0.78% 0.322 0.398 0.21% 0.030µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4814227.421op/s 4852115.012op/s ± 10050.273op/s 4851663.987op/s ± 6959.356op/s 4859421.534op/s 4867682.062op/s 4871997.677op/s 4872613.424op/s 0.43% -0.308 0.367 0.21% 710.662op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.580µs 18.700µs ± 0.078µs 18.681µs ± 0.032µs 18.724µs 18.829µs 19.036µs 19.143µs 2.47% 2.626 10.450 0.41% 0.005µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 52237930.493op/s 53477002.310op/s ± 219955.635op/s 53529584.282op/s ± 91070.945op/s 53602618.352op/s 53701724.758op/s 53805395.778op/s 53821583.276op/s 0.55% -2.558 9.970 0.41% 15553.212op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.594µs 10.834µs ± 0.102µs 10.817µs ± 0.064µs 10.900µs 11.013µs 11.087µs 11.106µs 2.67% 0.378 -0.154 0.94% 0.007µs 1 200
normalization/normalize_name/normalize_name/good throughput 90038448.479op/s 92310866.297op/s ± 863164.296op/s 92445410.514op/s ± 548922.024op/s 92893043.944op/s 93557979.737op/s 94021557.121op/s 94395705.356op/s 2.11% -0.330 -0.191 0.93% 61034.933op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time [206.037µs; 206.156µs] or [-0.029%; +0.029%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4850722.141op/s; 4853507.883op/s] or [-0.029%; +0.029%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.689µs; 18.711µs] or [-0.058%; +0.058%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53446518.575op/s; 53507486.046op/s] or [-0.057%; +0.057%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.820µs; 10.848µs] or [-0.130%; +0.130%] None None None
normalization/normalize_name/normalize_name/good throughput [92191240.028op/s; 92430492.567op/s] or [-0.130%; +0.130%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
two way interface execution_time 14.932µs 15.410µs ± 0.267µs 15.374µs ± 0.154µs 15.530µs 15.891µs 16.110µs 16.691µs 8.56% 1.260 2.726 1.73% 0.019µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [15.373µs; 15.447µs] or [-0.240%; +0.240%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample_frames_x1000 execution_time 4.200ms 4.206ms ± 0.003ms 4.205ms ± 0.001ms 4.207ms 4.210ms 4.212ms 4.234ms 0.69% 3.942 33.366 0.07% 0.000ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample_frames_x1000 execution_time [4.205ms; 4.206ms] or [-0.010%; +0.010%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
ip_address/quantize_peer_ip_address_benchmark execution_time 4.976µs 5.061µs ± 0.044µs 5.083µs ± 0.026µs 5.092µs 5.120µs 5.125µs 5.127µs 0.87% -0.457 -1.225 0.86% 0.003µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
ip_address/quantize_peer_ip_address_benchmark execution_time [5.055µs; 5.067µs] or [-0.120%; +0.120%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
credit_card/is_card_number/ execution_time 3.899µs 3.917µs ± 0.004µs 3.916µs ± 0.003µs 3.919µs 3.924µs 3.928µs 3.932µs 0.42% 0.468 1.648 0.11% 0.000µs 1 200
credit_card/is_card_number/ throughput 254308887.717op/s 255312671.714op/s ± 275380.644op/s 255368576.901op/s ± 163901.431op/s 255511479.661op/s 255622997.837op/s 255744606.670op/s 256474680.205op/s 0.43% -0.457 1.658 0.11% 19472.352op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 76.383µs 77.625µs ± 0.548µs 77.608µs ± 0.411µs 78.012µs 78.547µs 78.966µs 79.001µs 1.79% 0.182 -0.470 0.70% 0.039µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12658053.957op/s 12883040.618op/s ± 90916.385op/s 12885239.507op/s ± 68102.930op/s 12954336.021op/s 13025744.941op/s 13066115.548op/s 13091936.960op/s 1.60% -0.150 -0.487 0.70% 6428.759op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 67.474µs 67.692µs ± 0.110µs 67.677µs ± 0.062µs 67.748µs 67.856µs 67.944µs 68.414µs 1.09% 1.670 8.143 0.16% 0.008µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 14616943.250op/s 14772769.834op/s ± 23988.700op/s 14776138.753op/s ± 13578.946op/s 14787722.494op/s 14804632.074op/s 14815135.532op/s 14820437.383op/s 0.30% -1.635 7.873 0.16% 1696.257op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.898µs 3.917µs ± 0.004µs 3.917µs ± 0.002µs 3.919µs 3.924µs 3.929µs 3.931µs 0.37% 0.234 2.927 0.10% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254376896.124op/s 255289140.285op/s ± 256153.488op/s 255316881.589op/s ± 160977.576op/s 255473320.844op/s 255613050.923op/s 255689749.158op/s 256532256.420op/s 0.48% -0.219 2.958 0.10% 18112.787op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 64.578µs 64.771µs ± 0.083µs 64.763µs ± 0.047µs 64.816µs 64.908µs 65.025µs 65.141µs 0.58% 0.889 2.674 0.13% 0.006µs 1 200
credit_card/is_card_number/378282246310005 throughput 15351278.350op/s 15438992.865op/s ± 19776.786op/s 15440870.730op/s ± 11304.016op/s 15451074.944op/s 15467784.782op/s 15481760.412op/s 15485231.734op/s 0.29% -0.874 2.623 0.13% 1398.430op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 44.799µs 45.036µs ± 0.086µs 45.038µs ± 0.058µs 45.095µs 45.176µs 45.217µs 45.249µs 0.47% -0.143 -0.066 0.19% 0.006µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 22099738.797op/s 22204433.393op/s ± 42346.147op/s 22203386.405op/s ± 28666.905op/s 22233079.077op/s 22278531.182op/s 22318054.905op/s 22321734.673op/s 0.53% 0.154 -0.059 0.19% 2994.325op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 5.697µs 5.708µs ± 0.007µs 5.706µs ± 0.004µs 5.711µs 5.716µs 5.723µs 5.771µs 1.13% 3.807 30.024 0.12% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 173277367.940op/s 175204607.851op/s ± 217618.260op/s 175242432.880op/s ± 127569.267op/s 175342393.424op/s 175439848.367op/s 175500792.919op/s 175537590.128op/s 0.17% -3.742 29.255 0.12% 15387.935op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.893µs 3.918µs ± 0.004µs 3.917µs ± 0.002µs 3.920µs 3.924µs 3.926µs 3.926µs 0.23% -1.055 7.594 0.10% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254702163.083op/s 255257686.644op/s ± 248512.225op/s 255276782.607op/s ± 151275.684op/s 255389852.537op/s 255594965.548op/s 255730322.791op/s 256870919.797op/s 0.62% 1.079 7.763 0.10% 17572.468op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 59.676µs 60.390µs ± 0.414µs 60.328µs ± 0.246µs 60.624µs 61.073µs 61.599µs 62.160µs 3.04% 1.108 1.956 0.68% 0.029µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 16087629.902op/s 16559928.460op/s ± 112620.922op/s 16576155.201op/s ± 67551.460op/s 16637127.015op/s 16706211.613op/s 16740324.869op/s 16757211.128op/s 1.09% -1.053 1.747 0.68% 7963.502op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 53.433µs 53.707µs ± 0.115µs 53.703µs ± 0.080µs 53.784µs 53.913µs 53.967µs 53.979µs 0.51% 0.109 -0.312 0.21% 0.008µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18525756.002op/s 18619477.497op/s ± 39949.524op/s 18620844.673op/s ± 27904.663op/s 18647694.154op/s 18688263.584op/s 18702222.694op/s 18715037.533op/s 0.51% -0.099 -0.314 0.21% 2824.858op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.903µs 3.917µs ± 0.004µs 3.916µs ± 0.003µs 3.919µs 3.923µs 3.927µs 3.931µs 0.37% 0.563 0.933 0.10% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254410825.270op/s 255319744.083op/s ± 261359.782op/s 255346351.762op/s ± 180581.181op/s 255516291.880op/s 255667923.366op/s 255738962.303op/s 256220674.821op/s 0.34% -0.555 0.925 0.10% 18480.927op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 50.225µs 50.339µs ± 0.067µs 50.331µs ± 0.042µs 50.374µs 50.440µs 50.551µs 50.609µs 0.55% 1.065 2.038 0.13% 0.005µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 19759421.595op/s 19865460.616op/s ± 26527.434op/s 19868389.408op/s ± 16490.189op/s 19884359.960op/s 19900976.843op/s 19909404.625op/s 19910538.648op/s 0.21% -1.054 1.996 0.13% 1875.773op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 44.771µs 45.034µs ± 0.086µs 45.036µs ± 0.062µs 45.098µs 45.172µs 45.210µs 45.230µs 0.43% -0.157 -0.408 0.19% 0.006µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 22109107.249op/s 22205392.526op/s ± 42626.510op/s 22204412.018op/s ± 30708.919op/s 22236810.919op/s 22278312.949op/s 22296338.422op/s 22335860.103op/s 0.59% 0.166 -0.401 0.19% 3014.149op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 5.695µs 5.706µs ± 0.006µs 5.704µs ± 0.004µs 5.710µs 5.716µs 5.721µs 5.724µs 0.35% 0.656 -0.157 0.10% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 174689870.640op/s 175259471.284op/s ± 178440.301op/s 175305218.192op/s ± 114900.616op/s 175394121.836op/s 175491384.158op/s 175563329.541op/s 175586061.072op/s 0.16% -0.652 -0.166 0.10% 12617.635op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
credit_card/is_card_number/ execution_time [3.916µs; 3.917µs] or [-0.015%; +0.015%] None None None
credit_card/is_card_number/ throughput [255274506.605op/s; 255350836.823op/s] or [-0.015%; +0.015%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [77.549µs; 77.701µs] or [-0.098%; +0.098%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12870440.481op/s; 12895640.754op/s] or [-0.098%; +0.098%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [67.677µs; 67.708µs] or [-0.023%; +0.023%] None None None
credit_card/is_card_number/ 378282246310005 throughput [14769445.231op/s; 14776094.437op/s] or [-0.023%; +0.023%] None None None
credit_card/is_card_number/37828224631 execution_time [3.917µs; 3.918µs] or [-0.014%; +0.014%] None None None
credit_card/is_card_number/37828224631 throughput [255253639.875op/s; 255324640.695op/s] or [-0.014%; +0.014%] None None None
credit_card/is_card_number/378282246310005 execution_time [64.760µs; 64.783µs] or [-0.018%; +0.018%] None None None
credit_card/is_card_number/378282246310005 throughput [15436251.993op/s; 15441733.738op/s] or [-0.018%; +0.018%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.024µs; 45.048µs] or [-0.026%; +0.026%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [22198564.625op/s; 22210302.162op/s] or [-0.026%; +0.026%] None None None
credit_card/is_card_number/x371413321323331 execution_time [5.707µs; 5.709µs] or [-0.017%; +0.017%] None None None
credit_card/is_card_number/x371413321323331 throughput [175174448.053op/s; 175234767.649op/s] or [-0.017%; +0.017%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.917µs; 3.918µs] or [-0.013%; +0.013%] None None None
credit_card/is_card_number_no_luhn/ throughput [255223245.240op/s; 255292128.048op/s] or [-0.013%; +0.013%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [60.332µs; 60.447µs] or [-0.095%; +0.095%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [16544320.284op/s; 16575536.637op/s] or [-0.094%; +0.094%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.691µs; 53.723µs] or [-0.030%; +0.030%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18613940.877op/s; 18625014.117op/s] or [-0.030%; +0.030%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.916µs; 3.917µs] or [-0.014%; +0.014%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255283522.131op/s; 255355966.035op/s] or [-0.014%; +0.014%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [50.329µs; 50.348µs] or [-0.019%; +0.019%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [19861784.169op/s; 19869137.063op/s] or [-0.019%; +0.019%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.022µs; 45.046µs] or [-0.027%; +0.027%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [22199484.902op/s; 22211300.151op/s] or [-0.027%; +0.027%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [5.705µs; 5.707µs] or [-0.014%; +0.014%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [175234741.174op/s; 175284201.393op/s] or [-0.014%; +0.014%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample2_frames_x1000 execution_time 745.860µs 747.122µs ± 0.602µs 747.089µs ± 0.292µs 747.350µs 748.173µs 749.015µs 750.371µs 0.44% 1.437 4.795 0.08% 0.043µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample2_frames_x1000 execution_time [747.039µs; 747.206µs] or [-0.011%; +0.011%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
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 145.212µs 147.815µs ± 1.584µs 147.634µs ± 0.580µs 148.190µs 149.640µs 153.937µs 162.138µs 9.82% 4.655 34.844 1.07% 0.112µ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 [147.596µs; 148.035µs] or [-0.149%; +0.149%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
redis/obfuscate_redis_string execution_time 33.948µs 34.686µs ± 1.196µs 34.132µs ± 0.056µs 34.249µs 37.246µs 37.306µs 38.282µs 12.16% 1.704 0.988 3.44% 0.085µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
redis/obfuscate_redis_string execution_time [34.521µs; 34.852µs] or [-0.478%; +0.478%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
write only interface execution_time 5.476µs 5.543µs ± 0.031µs 5.553µs ± 0.019µs 5.565µs 5.583µs 5.591µs 5.603µs 0.90% -0.699 -0.487 0.56% 0.002µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [5.539µs; 5.548µs] or [-0.078%; +0.078%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_serialize_compressed_pprof_timestamped_x1000 execution_time 911.233µs 915.786µs ± 2.743µs 915.267µs ± 1.105µs 916.670µs 919.582µs 927.514µs 934.906µs 2.15% 3.363 17.919 0.30% 0.194µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_serialize_compressed_pprof_timestamped_x1000 execution_time [915.406µs; 916.166µs] or [-0.042%; +0.042%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sql/obfuscate_sql_string execution_time 289.188µs 289.867µs ± 0.521µs 289.749µs ± 0.158µs 289.960µs 290.525µs 292.227µs 293.868µs 1.42% 4.275 25.560 0.18% 0.037µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sql/obfuscate_sql_string execution_time [289.795µs; 289.940µs] or [-0.025%; +0.025%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_trace/test_trace execution_time 244.353ns 255.391ns ± 13.757ns 249.876ns ± 4.048ns 257.534ns 289.841ns 297.604ns 299.967ns 20.05% 1.786 2.132 5.37% 0.973ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_trace/test_trace execution_time [253.484ns; 257.298ns] or [-0.747%; +0.747%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
concentrator/add_spans_to_concentrator execution_time 14.862ms 14.900ms ± 0.017ms 14.899ms ± 0.011ms 14.911ms 14.924ms 14.936ms 14.989ms 0.61% 1.042 4.175 0.12% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
concentrator/add_spans_to_concentrator execution_time [14.898ms; 14.902ms] or [-0.016%; +0.016%] None None None

Group 20

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
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 190.901ns 193.227ns ± 1.921ns 193.010ns ± 1.526ns 194.214ns 196.976ns 198.688ns 198.825ns 3.01% 0.890 0.188 0.99% 0.136ns 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 [192.961ns; 193.493ns] or [-0.138%; +0.138%] None None None

Group 21

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e8deb49 1774877806 ekump/APMSP-2516-implement-http-common-component
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time 534.948µs 536.370µs ± 1.256µs 536.039µs ± 0.484µs 536.683µs 538.906µs 539.911µs 545.797µs 1.82% 3.007 15.600 0.23% 0.089µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1832183.028op/s 1864395.482op/s ± 4336.071op/s 1865536.006op/s ± 1687.387op/s 1867106.396op/s 1868409.779op/s 1869064.782op/s 1869340.160op/s 0.20% -2.949 14.986 0.23% 306.607op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 380.352µs 381.265µs ± 0.450µs 381.204µs ± 0.293µs 381.551µs 381.968µs 382.674µs 382.826µs 0.43% 0.789 0.953 0.12% 0.032µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2612156.043op/s 2622854.471op/s ± 3090.098op/s 2623268.529op/s ± 2017.580op/s 2624896.124op/s 2626854.553op/s 2628478.603op/s 2629140.525op/s 0.22% -0.781 0.933 0.12% 218.503op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 189.121µs 190.255µs ± 0.395µs 190.245µs ± 0.283µs 190.520µs 190.907µs 191.118µs 191.436µs 0.63% 0.044 -0.006 0.21% 0.028µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5223668.337op/s 5256138.966op/s ± 10910.967op/s 5256376.132op/s ± 7821.869op/s 5264404.728op/s 5274619.435op/s 5280500.526op/s 5287621.493op/s 0.59% -0.032 -0.006 0.21% 771.522op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.825µs 37.932µs ± 0.056µs 37.920µs ± 0.030µs 37.960µs 38.034µs 38.096µs 38.169µs 0.66% 1.119 1.661 0.15% 0.004µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26198979.840op/s 26363087.257op/s ± 38534.121op/s 26370991.530op/s ± 21041.772op/s 26388366.839op/s 26410743.925op/s 26429705.593op/s 26437591.532op/s 0.25% -1.108 1.624 0.15% 2724.774op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.769µs 46.010µs ± 0.107µs 45.984µs ± 0.070µs 46.076µs 46.215µs 46.288µs 46.347µs 0.79% 0.698 0.074 0.23% 0.008µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21576404.228op/s 21734607.103op/s ± 50331.760op/s 21746714.643op/s ± 33086.701op/s 21772504.201op/s 21797691.919op/s 21819146.098op/s 21848692.228op/s 0.47% -0.687 0.054 0.23% 3558.993op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time [536.196µs; 536.544µs] or [-0.032%; +0.032%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1863794.544op/s; 1864996.420op/s] or [-0.032%; +0.032%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [381.202µs; 381.327µs] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2622426.213op/s; 2623282.729op/s] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [190.200µs; 190.309µs] or [-0.029%; +0.029%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5254626.811op/s; 5257651.121op/s] or [-0.029%; +0.029%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.924µs; 37.940µs] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26357746.799op/s; 26368427.716op/s] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.995µs; 46.025µs] or [-0.032%; +0.032%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21727631.605op/s; 21741582.601op/s] or [-0.032%; +0.032%] None None None

Baseline

Omitted due to size.

@dd-octo-sts
Copy link
Copy Markdown
Contributor

dd-octo-sts bot commented Feb 23, 2026

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.76 MB 8.76 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 101.91 MB 101.93 MB +.01% (+19.18 KB) 🔍
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 118.86 MB 118.83 MB --.02% (-30.56 KB) 💪
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.36 MB 11.36 MB -0% (-88 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 27.38 MB 27.38 MB +0% (+2.50 KB) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 80.69 KB 80.69 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 187.11 MB 187.10 MB -0% (-8.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 925.04 MB 925.19 MB +.01% (+155.56 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.06 MB 9.06 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 80.69 KB 80.69 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 26.98 MB 26.99 MB +.02% (+8.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 61.28 MB 61.30 MB +.02% (+17.40 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 23.19 MB 23.24 MB +.22% (+52.50 KB) 🔍
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 81.94 KB 81.94 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 191.47 MB 191.66 MB +.09% (+192.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 908.71 MB 910.20 MB +.16% (+1.48 MB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 6.90 MB 6.90 MB +.01% (+1.00 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 81.94 KB 81.94 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 29.11 MB 29.11 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 57.68 MB 57.67 MB --.01% (-10.66 KB) 💪
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 88.72 MB 88.77 MB +.04% (+45.07 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 10.32 MB 10.32 MB +.03% (+4.00 KB) 🔍
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 111.55 MB 111.54 MB -0% (-8.09 KB) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 12.08 MB 12.07 MB --.03% (-4.48 KB) 💪

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Feb 23, 2026

Codecov Report

❌ Patch coverage is 89.16409% with 70 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.30%. Comparing base (bfdbeae) to head (e8deb49).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1624      +/-   ##
==========================================
+ Coverage   71.21%   71.30%   +0.09%     
==========================================
  Files         414      423       +9     
  Lines       65963    66609     +646     
==========================================
+ Hits        46974    47496     +522     
- Misses      18989    19113     +124     
Components Coverage Δ
libdd-crashtracker 65.18% <ø> (-0.05%) ⬇️
libdd-crashtracker-ffi 34.47% <ø> (ø)
libdd-alloc 98.77% <ø> (ø)
libdd-data-pipeline 87.05% <ø> (+0.04%) ⬆️
libdd-data-pipeline-ffi 72.91% <ø> (+0.22%) ⬆️
libdd-common 80.19% <100.00%> (+0.40%) ⬆️
libdd-common-ffi 73.87% <ø> (ø)
libdd-telemetry 62.48% <ø> (ø)
libdd-telemetry-ffi 16.75% <ø> (ø)
libdd-dogstatsd-client 82.64% <ø> (ø)
datadog-ipc 72.33% <ø> (-0.23%) ⬇️
libdd-profiling 81.62% <ø> (ø)
libdd-profiling-ffi 64.94% <ø> (ø)
datadog-sidecar 30.18% <ø> (-0.61%) ⬇️
datdog-sidecar-ffi 6.52% <ø> (-2.85%) ⬇️
spawn-worker 54.69% <ø> (ø)
libdd-tinybytes 93.16% <ø> (ø)
libdd-trace-normalization 81.71% <ø> (ø)
libdd-trace-obfuscation 87.24% <ø> (ø)
libdd-trace-protobuf 68.25% <ø> (ø)
libdd-trace-utils 88.72% <ø> (ø)
datadog-tracer-flare 86.88% <ø> (ø)
libdd-log 74.69% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ekump ekump force-pushed the ekump/APMSP-2516-implement-http-common-component branch 2 times, most recently from 9093e6a to 5570b43 Compare February 25, 2026 09:30
@datadog-datadog-prod-us1-2
Copy link
Copy Markdown

datadog-datadog-prod-us1-2 bot commented Feb 25, 2026

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

🎯 Code Coverage (details)
Patch Coverage: 89.16%
Overall Coverage: 71.31% (+0.08%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: e8deb49 | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback!

@danielsn
Copy link
Copy Markdown
Contributor

It might make sense to tie this into the ddcommon Endpoint type

@ekump ekump force-pushed the ekump/APMSP-2516-implement-http-common-component branch from 5570b43 to c1327a8 Compare February 25, 2026 12:22
@ekump
Copy link
Copy Markdown
Contributor Author

ekump commented Feb 25, 2026

@danielsn Endpoint is specific for Datadog endpoints and does things like automatic header injection, which we don't want to do with a generic http client.

@brettlangdon did mention that it would be nice if there was an "agent client". I think it makes sense. We can build that on top of this generic http client. I assume we'll be able to extract logic in Endpoint so it's shared (or just use it directly).

@ekump ekump force-pushed the ekump/APMSP-2516-implement-http-common-component branch from 0a1ac56 to 5d99312 Compare February 26, 2026 13:13
Copy link
Copy Markdown
Contributor

@yannham yannham left a comment

Choose a reason for hiding this comment

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

👍 for the simple interface, README, extensive testing split in small files. LGTM

@yannham yannham self-assigned this Mar 19, 2026
@yannham yannham changed the title (WIP) ekump/APMSP-2516 implement http common component feat!: implement HTTP common component Mar 20, 2026
@yannham yannham force-pushed the ekump/APMSP-2516-implement-http-common-component branch from 2090110 to 7daa34f Compare March 20, 2026 10:56
@yannham yannham marked this pull request as ready for review March 20, 2026 10:56
@yannham yannham requested review from a team as code owners March 20, 2026 10:56
@yannham yannham requested a review from lloeki March 20, 2026 10:57
@yannham yannham requested a review from a team as a code owner March 20, 2026 13:20
@yannham yannham force-pushed the ekump/APMSP-2516-implement-http-common-component branch 2 times, most recently from 6436cbc to f7034e5 Compare March 20, 2026 13:30
ekump and others added 16 commits March 30, 2026 12:06
Builder API supports unix_socket() and windows_named_pipe() for
platform-specific transports. FIPS TLS via rustls-no-provider with
init_fips_crypto() helper for callers to install the crypto provider.
Opt-in retry via RetryConfig on the builder. Supports configurable max
retries, initial delay, exponential backoff, and jitter. All errors
except InvalidConfig are retried.
Add MultipartPart type and multipart_parts field on HttpRequest.
When parts are present, the request is sent as multipart/form-data
with reqwest handling Content-Type and boundary automatically. Setting
both multipart parts and a body returns an error.
Add a hyper-backend feature as a lighter alternative to reqwest-backend
for consumers where binary size matters. The hyper backend uses
libdd-common's Connector and a new shared multipart encoder in
libdd-common. CI runs tests against both backends.
When both reqwest-backend and hyper-backend are enabled (e.g. CI with
--all-features), reqwest takes precedence. Hyper backend only activates
when reqwest-backend is not enabled.
@yannham yannham force-pushed the ekump/APMSP-2516-implement-http-common-component branch from fc06596 to 97cfd8f Compare March 30, 2026 10:26
@yannham yannham force-pushed the ekump/APMSP-2516-implement-http-common-component branch from 97cfd8f to b49a17e Compare March 30, 2026 11:51
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot merged commit 29678bd into main Mar 30, 2026
89 checks passed
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot deleted the ekump/APMSP-2516-implement-http-common-component branch March 30, 2026 15:24
duncanista added a commit that referenced this pull request Mar 30, 2026
New crate from #1624 used reqwest?/rustls which re-introduced aws-lc-rs.
Switch to rustls-no-provider to match the rest of the workspace.
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.

7 participants