Skip to content

Comments

(WIP) ekump/APMSP-2516 implement http common component#1624

Draft
ekump wants to merge 12 commits intomainfrom
ekump/APMSP-2516-implement-http-common-component
Draft

(WIP) ekump/APMSP-2516 implement http common component#1624
ekump wants to merge 12 commits intomainfrom
ekump/APMSP-2516-implement-http-common-component

Conversation

@ekump
Copy link
Contributor

@ekump ekump commented Feb 23, 2026

What does this PR do?

A generic HTTP client that can be used by other languages.

NOTE: This PR will be updated to work with the shared runtime component as soon as it lands before being ready for proper review because 🍴

Motivation

What inspired you to submit this pull request?

Additional Notes

Anything else we should know when reviewing?

How to test the change?

Describe here in detail how the change can be validated.

@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

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 27 27 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 59 59 No change (0%)
libdd-common 10 10 No change (0%)
libdd-common-ffi 12 12 No change (0%)
libdd-crashtracker 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 9 9 No change (0%)
libdd-trace-utils 15 15 No change (0%)
Total 219 219 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.

@github-actions
Copy link

github-actions bot commented Feb 23, 2026

📚 Documentation Check Results

⚠️ 169 documentation warning(s) found

📦 libdd-common - 169 warning(s)

📦 libdd-http-client - ✅ No warnings


Updated: 2026-02-25 12:47:37 UTC | Commit: 83c5c04 | missing-docs job results

@github-actions
Copy link

github-actions bot commented Feb 23, 2026

🔒 Cargo Deny Results

No issues found!

📦 libdd-common - ✅ No issues

📦 libdd-http-client - ✅ No issues


Updated: 2026-02-25 12:50:14 UTC | Commit: 83c5c04 | dependency-check job results

@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

pr-commenter bot commented Feb 23, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-02-25 13:01:23

Comparing candidate commit 0a1ac56 in PR branch ekump/APMSP-2516-implement-http-common-component with baseline commit 0b0863b in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 57 metrics, 2 unstable metrics.

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 0a1ac56 1772023488 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.896µs 3.915µs ± 0.003µs 3.915µs ± 0.002µs 3.917µs 3.919µs 3.921µs 3.923µs 0.21% -1.352 10.654 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 254885394.847op/s 255412452.167op/s ± 178757.348op/s 255420525.904op/s ± 111624.600op/s 255524747.573op/s 255643511.877op/s 255727968.712op/s 256663120.262op/s 0.49% 1.375 10.826 0.07% 12640.053op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 77.915µs 78.989µs ± 0.492µs 78.984µs ± 0.300µs 79.266µs 79.933µs 80.130µs 80.791µs 2.29% 0.426 0.364 0.62% 0.035µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12377592.000op/s 12660400.249op/s ± 78717.458op/s 12660734.177op/s ± 48061.511op/s 12717732.314op/s 12778860.017op/s 12821744.674op/s 12834527.895op/s 1.37% -0.386 0.294 0.62% 5566.165op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 71.426µs 71.840µs ± 0.294µs 71.793µs ± 0.217µs 72.015µs 72.316µs 72.716µs 73.140µs 1.87% 1.042 1.653 0.41% 0.021µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13672499.876op/s 13920022.142op/s ± 56641.464op/s 13928847.273op/s ± 41940.142op/s 13961209.492op/s 13990914.651op/s 13995675.240op/s 14000414.412op/s 0.51% -1.011 1.529 0.41% 4005.156op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.894µs 3.915µs ± 0.003µs 3.915µs ± 0.001µs 3.916µs 3.919µs 3.921µs 3.922µs 0.18% -2.218 18.758 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254968111.024op/s 255417913.040op/s ± 170442.684op/s 255416976.741op/s ± 88812.595op/s 255508393.456op/s 255635981.732op/s 255702295.080op/s 256777313.066op/s 0.53% 2.249 19.047 0.07% 12052.118op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 68.254µs 68.613µs ± 0.376µs 68.514µs ± 0.188µs 68.778µs 69.428µs 70.043µs 70.284µs 2.58% 1.910 4.348 0.55% 0.027µs 1 200
credit_card/is_card_number/378282246310005 throughput 14227997.620op/s 14574927.832op/s ± 79016.970op/s 14595624.995op/s ± 40254.131op/s 14633449.874op/s 14647195.240op/s 14649749.833op/s 14651060.411op/s 0.38% -1.866 4.128 0.54% 5587.344op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 45.354µs 45.706µs ± 0.121µs 45.715µs ± 0.081µs 45.793µs 45.894µs 45.934µs 46.022µs 0.67% -0.262 -0.196 0.26% 0.009µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21728695.312op/s 21879309.834op/s ± 58098.747op/s 21874639.637op/s ± 38876.594op/s 21914618.698op/s 21982812.999op/s 22016718.949op/s 22048936.154op/s 0.80% 0.276 -0.186 0.26% 4108.202op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.580µs 6.625µs ± 0.015µs 6.630µs ± 0.008µs 6.636µs 6.642µs 6.646µs 6.653µs 0.35% -0.848 0.103 0.22% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 150302909.007op/s 150950497.137op/s ± 332177.094op/s 150826061.588op/s ± 191383.652op/s 151154543.915op/s 151606811.423op/s 151877621.947op/s 151967980.326op/s 0.76% 0.857 0.123 0.22% 23488.468op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.896µs 3.915µs ± 0.003µs 3.914µs ± 0.001µs 3.916µs 3.920µs 3.923µs 3.924µs 0.24% -0.571 9.380 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254857465.497op/s 255436787.421op/s ± 184926.438op/s 255465707.831op/s ± 87609.396op/s 255540169.428op/s 255643983.040op/s 255709539.845op/s 256659809.336op/s 0.47% 0.595 9.522 0.07% 13076.274op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 65.075µs 65.668µs ± 0.159µs 65.723µs ± 0.074µs 65.770µs 65.852µs 65.930µs 65.944µs 0.34% -1.344 2.119 0.24% 0.011µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15164350.337op/s 15228184.709op/s ± 37004.692op/s 15215408.415op/s ± 17069.817op/s 15246123.251op/s 15297309.356op/s 15364103.511op/s 15366910.602op/s 1.00% 1.361 2.181 0.24% 2616.627op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 53.365µs 53.445µs ± 0.086µs 53.435µs ± 0.027µs 53.461µs 53.509µs 53.595µs 54.269µs 1.56% 7.229 62.622 0.16% 0.006µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18426693.614op/s 18710985.494op/s ± 29930.217op/s 18714254.096op/s ± 9352.628op/s 18723614.674op/s 18732831.093op/s 18735585.932op/s 18738926.092op/s 0.13% -7.169 61.884 0.16% 2116.386op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.897µs 3.915µs ± 0.003µs 3.915µs ± 0.002µs 3.917µs 3.919µs 3.922µs 3.923µs 0.20% -0.964 8.266 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254898846.560op/s 255406580.374op/s ± 180940.589op/s 255414819.158op/s ± 123387.979op/s 255538286.024op/s 255622688.668op/s 255707701.649op/s 256599863.997op/s 0.46% 0.984 8.401 0.07% 12794.432op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 50.151µs 50.208µs ± 0.060µs 50.201µs ± 0.016µs 50.218µs 50.246µs 50.609µs 50.678µs 0.95% 6.141 43.346 0.12% 0.004µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 19732295.888op/s 19917064.041op/s ± 23437.053op/s 19920094.525op/s ± 6335.069op/s 19926167.075op/s 19934625.194op/s 19938019.139op/s 19939761.979op/s 0.10% -6.114 43.075 0.12% 1657.250op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 45.498µs 45.755µs ± 0.110µs 45.750µs ± 0.063µs 45.817µs 45.902µs 46.154µs 46.302µs 1.21% 0.998 3.754 0.24% 0.008µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21597292.350op/s 21855588.384op/s ± 52481.473op/s 21857899.500op/s ± 30272.265op/s 21886289.339op/s 21937043.441op/s 21959575.375op/s 21978930.736op/s 0.55% -0.965 3.610 0.24% 3711.001op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.563µs 6.622µs ± 0.016µs 6.624µs ± 0.011µs 6.634µs 6.640µs 6.645µs 6.650µs 0.39% -0.913 0.667 0.24% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 150368467.345op/s 151020296.801op/s ± 363150.634op/s 150958102.597op/s ± 248132.116op/s 151231945.625op/s 151620141.405op/s 152046841.682op/s 152372795.907op/s 0.94% 0.927 0.709 0.24% 25678.628op/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.915µs; 3.916µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ throughput [255387678.118op/s; 255437226.216op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [78.921µs; 79.058µs] or [-0.086%; +0.086%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12649490.766op/s; 12671309.731op/s] or [-0.086%; +0.086%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [71.799µs; 71.881µs] or [-0.057%; +0.057%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13912172.180op/s; 13927872.104op/s] or [-0.056%; +0.056%] None None None
credit_card/is_card_number/37828224631 execution_time [3.915µs; 3.916µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631 throughput [255394291.323op/s; 255441534.756op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/378282246310005 execution_time [68.561µs; 68.665µs] or [-0.076%; +0.076%] None None None
credit_card/is_card_number/378282246310005 throughput [14563976.840op/s; 14585878.824op/s] or [-0.075%; +0.075%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.689µs; 45.722µs] or [-0.037%; +0.037%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [21871257.906op/s; 21887361.761op/s] or [-0.037%; +0.037%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.623µs; 6.627µs] or [-0.030%; +0.030%] None None None
credit_card/is_card_number/x371413321323331 throughput [150904460.587op/s; 150996533.688op/s] or [-0.030%; +0.030%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.914µs; 3.915µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ throughput [255411158.396op/s; 255462416.447op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.646µs; 65.690µs] or [-0.034%; +0.034%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15223056.214op/s; 15233313.203op/s] or [-0.034%; +0.034%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.433µs; 53.457µs] or [-0.022%; +0.022%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18706837.454op/s; 18715133.535op/s] or [-0.022%; +0.022%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.915µs; 3.916µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255381503.748op/s; 255431656.999op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [50.200µs; 50.217µs] or [-0.016%; +0.016%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [19913815.891op/s; 19920312.192op/s] or [-0.016%; +0.016%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.740µs; 45.770µs] or [-0.033%; +0.033%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [21848314.957op/s; 21862861.812op/s] or [-0.033%; +0.033%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.619µs; 6.624µs] or [-0.033%; +0.033%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [150969967.616op/s; 151070625.987op/s] or [-0.033%; +0.033%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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 5.011µs 5.071µs ± 0.047µs 5.052µs ± 0.021µs 5.096µs 5.168µs 5.170µs 5.172µs 2.37% 0.950 -0.426 0.93% 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.064µs; 5.077µs] or [-0.129%; +0.129%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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.372µs 2.428µs ± 0.014µs 2.429µs ± 0.005µs 2.436µs 2.446µs 2.450µs 2.454µs 1.03% -1.721 4.299 0.58% 0.001µ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.426µs; 2.430µs] or [-0.080%; +0.080%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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.831ms 14.880ms ± 0.032ms 14.875ms ± 0.013ms 14.889ms 14.917ms 14.990ms 15.102ms 1.53% 3.322 16.886 0.21% 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.875ms; 14.884ms] or [-0.030%; +0.030%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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/2597 execution_time 3.292ms 3.316ms ± 0.012ms 3.314ms ± 0.007ms 3.322ms 3.338ms 3.355ms 3.370ms 1.68% 1.175 2.559 0.37% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2597 execution_time [3.314ms; 3.317ms] or [-0.052%; +0.052%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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 144.747µs 146.404µs ± 1.821µs 146.049µs ± 0.500µs 146.670µs 148.345µs 153.659µs 164.780µs 12.82% 6.363 54.688 1.24% 0.129µ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 [146.152µs; 146.657µs] or [-0.172%; +0.172%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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 188.462ns 191.343ns ± 2.037ns 191.181ns ± 1.392ns 192.370ns 195.174ns 197.470ns 199.228ns 4.21% 1.118 1.423 1.06% 0.144ns 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 [191.061ns; 191.626ns] or [-0.148%; +0.148%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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.126ms 4.130ms ± 0.007ms 4.129ms ± 0.001ms 4.131ms 4.133ms 4.139ms 4.229ms 2.40% 12.142 159.624 0.18% 0.001ms 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.129ms; 4.131ms] or [-0.025%; +0.025%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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 241.726ns 252.185ns ± 13.133ns 245.841ns ± 2.438ns 253.247ns 283.634ns 290.165ns 295.542ns 20.22% 1.705 1.722 5.19% 0.929ns 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 [250.365ns; 254.006ns] or [-0.722%; +0.722%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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 89.312µs 89.483µs ± 0.153µs 89.460µs ± 0.042µs 89.506µs 89.643µs 89.902µs 91.179µs 1.92% 7.405 75.286 0.17% 0.011µ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 [89.462µs; 89.504µs] or [-0.024%; +0.024%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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 495.571µs 496.343µs ± 0.757µs 496.253µs ± 0.217µs 496.492µs 496.817µs 497.222µs 506.069µs 1.98% 10.688 134.714 0.15% 0.054µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1976013.610op/s 2014740.557op/s ± 3023.960op/s 2015101.281op/s ± 881.592op/s 2015807.007op/s 2016686.806op/s 2017396.451op/s 2017875.688op/s 0.14% -10.585 132.949 0.15% 213.826op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 371.428µs 372.045µs ± 0.316µs 371.991µs ± 0.179µs 372.211µs 372.658µs 373.035µs 373.333µs 0.36% 1.117 1.982 0.08% 0.022µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2678571.637op/s 2687851.858op/s ± 2282.785op/s 2688238.338op/s ± 1294.359op/s 2689255.792op/s 2690933.537op/s 2691588.879op/s 2692308.998op/s 0.15% -1.110 1.958 0.08% 161.417op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 168.963µs 169.932µs ± 0.199µs 169.944µs ± 0.118µs 170.055µs 170.230µs 170.377µs 170.447µs 0.30% -0.759 2.857 0.12% 0.014µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5866916.770op/s 5884729.243op/s ± 6907.501op/s 5884295.322op/s ± 4086.162op/s 5888538.727op/s 5896234.784op/s 5903563.041op/s 5918464.481op/s 0.58% 0.774 2.909 0.12% 488.434op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.913µs 37.070µs ± 0.115µs 37.047µs ± 0.098µs 37.174µs 37.246µs 37.308µs 37.510µs 1.25% 0.499 -0.490 0.31% 0.008µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26659390.221op/s 26976540.277op/s ± 83713.313op/s 26992501.268op/s ± 71701.394op/s 27058845.907op/s 27075858.273op/s 27080731.003op/s 27090385.797op/s 0.36% -0.488 -0.531 0.31% 5919.425op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 46.159µs 46.305µs ± 0.113µs 46.298µs ± 0.042µs 46.337µs 46.398µs 46.442µs 47.679µs 2.98% 9.033 107.527 0.24% 0.008µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20973403.627op/s 21596075.379op/s ± 51601.208op/s 21599220.701op/s ± 19628.089op/s 21619529.787op/s 21641830.287op/s 21648762.334op/s 21664153.625op/s 0.30% -8.830 104.264 0.24% 3648.756op/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 [496.238µs; 496.448µs] or [-0.021%; +0.021%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [2014321.465op/s; 2015159.649op/s] or [-0.021%; +0.021%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [372.001µs; 372.088µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2687535.485op/s; 2688168.230op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [169.904µs; 169.959µs] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5883771.930op/s; 5885686.557op/s] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.054µs; 37.086µs] or [-0.043%; +0.043%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26964938.417op/s; 26988142.137op/s] or [-0.043%; +0.043%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.289µs; 46.321µs] or [-0.034%; +0.034%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21588923.948op/s; 21603226.810op/s] or [-0.033%; +0.033%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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 48.878ms 49.262ms ± 1.145ms 49.101ms ± 0.116ms 49.225ms 49.303ms 56.635ms 60.898ms 24.03% 8.140 69.456 2.32% 0.081ms 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.103ms; 49.420ms] or [-0.322%; +0.322%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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 738.898µs 740.063µs ± 0.622µs 740.006µs ± 0.199µs 740.243µs 740.704µs 741.213µs 746.806µs 0.92% 6.558 67.899 0.08% 0.044µ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 [739.977µs; 740.149µs] or [-0.012%; +0.012%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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 1.212µs 3.201µs ± 1.312µs 3.037µs ± 0.024µs 3.060µs 3.594µs 10.547µs 15.489µs 410.02% 7.764 63.301 40.88% 0.093µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [3.019µs; 3.382µs] or [-5.679%; +5.679%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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 163.190µs 163.956µs ± 0.546µs 163.905µs ± 0.172µs 164.081µs 164.411µs 164.675µs 170.707µs 4.15% 9.504 115.050 0.33% 0.039µ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 [163.880µs; 164.031µs] or [-0.046%; +0.046%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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.951µs 34.440µs ± 0.721µs 34.114µs ± 0.096µs 34.283µs 35.922µs 35.961µs 37.712µs 10.55% 1.823 2.166 2.09% 0.051µ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.340µs; 34.540µs] or [-0.290%; +0.290%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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 10.660ms 10.684ms ± 0.012ms 10.683ms ± 0.007ms 10.690ms 10.702ms 10.720ms 10.757ms 0.69% 1.428 6.325 0.11% 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 [10.683ms; 10.686ms] or [-0.016%; +0.016%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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 185.724µs 186.279µs ± 0.388µs 186.170µs ± 0.175µs 186.381µs 187.238µs 187.489µs 187.761µs 0.85% 1.761 2.878 0.21% 0.027µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5325933.836op/s 5368316.646op/s ± 11152.867op/s 5371437.957op/s ± 5048.019op/s 5375822.763op/s 5379320.752op/s 5381139.098op/s 5384348.238op/s 0.24% -1.750 2.839 0.21% 788.627op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.368µs 17.552µs ± 0.067µs 17.549µs ± 0.042µs 17.594µs 17.672µs 17.706µs 17.734µs 1.05% 0.122 0.037 0.38% 0.005µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 56390312.718op/s 56975972.406op/s ± 218208.987op/s 56984418.383op/s ± 134841.217op/s 57115378.186op/s 57316040.418op/s 57460434.474op/s 57575917.262op/s 1.04% -0.099 0.037 0.38% 15429.705op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 9.826µs 9.913µs ± 0.062µs 9.910µs ± 0.049µs 9.957µs 10.023µs 10.043µs 10.070µs 1.61% 0.279 -0.827 0.62% 0.004µs 1 200
normalization/normalize_name/normalize_name/good throughput 99308452.052op/s 100881489.238op/s ± 630073.456op/s 100905936.748op/s ± 497226.984op/s 101521205.036op/s 101724550.956op/s 101770191.482op/s 101773715.396op/s 0.86% -0.258 -0.849 0.62% 44552.921op/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 [186.225µs; 186.333µ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 [5366770.966op/s; 5369862.326op/s] or [-0.029%; +0.029%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [17.542µs; 17.561µs] or [-0.053%; +0.053%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [56945730.739op/s; 57006214.073op/s] or [-0.053%; +0.053%] None None None
normalization/normalize_name/normalize_name/good execution_time [9.904µs; 9.922µs] or [-0.087%; +0.087%] None None None
normalization/normalize_name/normalize_name/good throughput [100794167.117op/s; 100968811.360op/s] or [-0.087%; +0.087%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0a1ac56 1772023488 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 17.797µs 25.261µs ± 9.216µs 18.227µs ± 0.361µs 33.310µs 41.255µs 45.178µs 69.672µs 282.25% 1.040 1.186 36.39% 0.652µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [23.983µs; 26.538µs] or [-5.056%; +5.056%] None None None

Baseline

Omitted due to size.

@dd-octo-sts
Copy link

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.a 97.27 MB 97.27 MB +0% (+16 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.51 MB 8.51 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 112.87 MB 112.87 MB +0% (+16 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.12 MB 11.12 MB 0% (0 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 27.15 MB 27.15 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 76.26 KB 76.26 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 185.89 MB 185.87 MB -0% (-16.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 915.04 MB 915.06 MB +0% (+20.81 KB) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.93 MB 9.93 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 76.26 KB 76.26 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 24.76 MB 24.76 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 51.40 MB 51.40 MB 0% (0 B) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 22.96 MB 22.96 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 77.44 KB 77.44 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 189.92 MB 189.92 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 898.20 MB 898.28 MB +0% (+89.50 KB) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 7.53 MB 7.53 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 77.44 KB 77.44 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 26.51 MB 26.51 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 47.04 MB 47.04 MB 0% (0 B) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 85.23 MB 85.23 MB +0% (+16 B) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 10.04 MB 10.04 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 105.85 MB 105.85 MB +0% (+24 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.78 MB 11.78 MB 0% (0 B) 👌

@codecov-commenter
Copy link

codecov-commenter commented Feb 23, 2026

Codecov Report

❌ Patch coverage is 91.82692% with 34 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.34%. Comparing base (5231c15) to head (9093e6a).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1624      +/-   ##
==========================================
+ Coverage   71.19%   71.34%   +0.14%     
==========================================
  Files         423      430       +7     
  Lines       62486    62863     +377     
==========================================
+ Hits        44489    44848     +359     
- Misses      17997    18015      +18     
Components Coverage Δ
libdd-crashtracker 63.25% <ø> (+0.20%) ⬆️
libdd-crashtracker-ffi 17.64% <ø> (+2.01%) ⬆️
libdd-alloc 98.77% <ø> (ø)
libdd-data-pipeline 88.31% <ø> (+1.03%) ⬆️
libdd-data-pipeline-ffi 78.12% <ø> (+6.61%) ⬆️
libdd-common 79.73% <ø> (ø)
libdd-common-ffi 73.40% <ø> (ø)
libdd-telemetry 62.48% <ø> (ø)
libdd-telemetry-ffi 16.75% <ø> (ø)
libdd-dogstatsd-client 82.64% <ø> (ø)
datadog-ipc 80.74% <ø> (ø)
libdd-profiling 81.56% <ø> (ø)
libdd-profiling-ffi 63.65% <ø> (ø)
datadog-sidecar 32.81% <ø> (-1.38%) ⬇️
datdog-sidecar-ffi 9.65% <ø> (-5.98%) ⬇️
spawn-worker 54.69% <ø> (ø)
libdd-tinybytes 93.16% <ø> (ø)
libdd-trace-normalization 81.71% <ø> (ø)
libdd-trace-obfuscation 94.21% <ø> (ø)
libdd-trace-protobuf 68.00% <ø> (ø)
libdd-trace-utils 89.18% <ø> (+0.20%) ⬆️
datadog-tracer-flare 90.45% <ø> (+3.58%) ⬆️
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 from 85020c6 to 8420021 Compare February 24, 2026 08:35
New HTTP client crate for use by external language clients via FFI.
Defines HttpClient, HttpRequest, HttpResponse, HttpClientError, and a
builder API with configurable timeout, transport, and retry.
ReqwestBackend sends requests via reqwest::Client with connection
pooling, error mapping, and per-request timeout. Integration tests
cover HTTP round-trips, timeout behavior, and connection pooling.
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.
@ekump ekump force-pushed the ekump/APMSP-2516-implement-http-common-component branch from 9093e6a to 5570b43 Compare February 25, 2026 09:30
@datadog-datadog-prod-us1-2
Copy link

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

⚠️ Tests

Fix all issues with BitsAI or with Cursor

⚠️ Warnings

❄️ 2 New flaky tests detected

test_retries_on_connection_error from libdd-http-client::retry_test (Datadog) (Fix with Cursor)
Test has failed
test_connection_refused from libdd-http-client::timeout_test (Datadog) (Fix with Cursor)
Test has failed

ℹ️ Info

🧪 All tests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 0a1ac56 | Docs | Datadog PR Page | Was this helpful? Give us feedback!

@danielsn
Copy link
Contributor

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

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.
@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
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).

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

3 participants