Skip to content

perf(profiling): cache TLS in ProfileExporter::new#1619

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 1 commit intomainfrom
PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
Feb 27, 2026
Merged

perf(profiling): cache TLS in ProfileExporter::new#1619
gh-worker-dd-mergequeue-cf854d[bot] merged 1 commit intomainfrom
PROF-13824-ProfileExporter-new-creates-TLS-config-every-time

Conversation

@morrisonlevi
Copy link
Copy Markdown
Contributor

@morrisonlevi morrisonlevi commented Feb 20, 2026

What does this PR do?

Adds a TlsConfig type that wraps a rustls::ClientConfig pre-configured
with the platform certificate verifier. This is cached in ProfileExporter::new
with a global variable, similar to what we did in v25.

Motivation

ProfileExporter::new() called reqwest::ClientBuilder::build(), which
initialized TLS from scratch every time. On Linux this means loading and
parsing the system certificate store from disk on every exporter creation
— an expensive operation that was identified as a performance regression
when upgrading libdatadog from v25 to v28.

Screenshot 2026-02-20 at 8 37 56 AM

Additional Notes

I dropped an explicit API in favor of an implicit one to get the regression
fixed. We can pursue a newer API later if we want.

The new verifier used in reqwest seems to be more expensive than the TLS verifier we used in v25, but since this cached once per process, this should be okay. However, be aware when benchmarking that it will be a bit more expensive than before, especially for short times like 180 seconds. Here it is in PHP after the fix, left is v28, right is this branch:

Screenshot 2026-02-27 at 10 38 48 AM

How to test the change?

Do everything the same, just notice less overhead because it's not
creating the TLS every time (except on MacOS, which does lazy eval
internally in the library on purpose).

@morrisonlevi morrisonlevi added the profiling Relates to the profiling* modules. label Feb 20, 2026
@github-actions github-actions bot removed the profiling Relates to the profiling* modules. label Feb 20, 2026
@github-actions
Copy link
Copy Markdown

Clippy Allow Annotation Report

Comparing clippy allow annotations between branches:

  • Base Branch: origin/main
  • PR Branch: origin/PROF-13824-ProfileExporter-new-creates-TLS-config-every-time

Summary by Rule

Rule Base Branch PR Branch Change

Annotation Counts by File

File Base Branch PR Branch Change

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.

@morrisonlevi morrisonlevi force-pushed the PROF-13824-ProfileExporter-new-creates-TLS-config-every-time branch from c58ab33 to eb5eef9 Compare February 20, 2026 20:13
@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Feb 20, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-02-26 22:46:37

Comparing candidate commit e90e20c in PR branch PROF-13824-ProfileExporter-new-creates-TLS-config-every-time with baseline commit 195b024 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 e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.589ms 10.614ms ± 0.016ms 10.612ms ± 0.009ms 10.623ms 10.635ms 10.674ms 10.718ms 1.00% 2.284 11.018 0.15% 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.612ms; 10.616ms] or [-0.020%; +0.020%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.942µs 5.018µs ± 0.043µs 5.005µs ± 0.027µs 5.053µs 5.103µs 5.106µs 5.108µs 2.06% 0.662 -0.857 0.85% 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.012µs; 5.024µs] or [-0.119%; +0.119%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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 533.890µs 534.880µs ± 1.249µs 534.697µs ± 0.305µs 534.997µs 535.664µs 539.807µs 545.878µs 2.09% 6.634 52.137 0.23% 0.088µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1831910.567op/s 1869589.458op/s ± 4299.054op/s 1870218.601op/s ± 1068.467op/s 1871303.470op/s 1872304.650op/s 1872923.715op/s 1873044.597op/s 0.15% -6.564 51.270 0.23% 303.989op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 379.977µs 380.676µs ± 0.332µs 380.638µs ± 0.184µs 380.830µs 381.269µs 381.671µs 381.971µs 0.35% 0.912 1.456 0.09% 0.023µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2617996.816op/s 2626908.497op/s ± 2286.695op/s 2627170.471op/s ± 1266.824op/s 2628406.290op/s 2630079.080op/s 2631257.070op/s 2631735.828op/s 0.17% -0.905 1.439 0.09% 161.694op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 189.720µs 190.191µs ± 0.175µs 190.179µs ± 0.130µs 190.311µs 190.506µs 190.640µs 190.684µs 0.27% 0.301 -0.055 0.09% 0.012µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5244268.620op/s 5257872.313op/s ± 4839.395op/s 5258190.290op/s ± 3600.691op/s 5261369.492op/s 5265017.135op/s 5266772.991op/s 5270934.835op/s 0.24% -0.296 -0.059 0.09% 342.197op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.392µs 37.545µs ± 0.064µs 37.542µs ± 0.044µs 37.591µs 37.655µs 37.690µs 37.725µs 0.49% 0.079 -0.198 0.17% 0.005µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26507830.066op/s 26634737.740op/s ± 45563.402op/s 26637148.056op/s ± 31555.104op/s 26664515.518op/s 26712034.089op/s 26734379.860op/s 26743560.771op/s 0.40% -0.069 -0.201 0.17% 3221.819op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.786µs 45.911µs ± 0.146µs 45.891µs ± 0.043µs 45.938µs 46.019µs 46.114µs 47.345µs 3.17% 7.312 64.236 0.32% 0.010µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21121366.186op/s 21781600.372op/s ± 67693.278op/s 21790532.945op/s ± 20303.680op/s 21810147.753op/s 21828677.848op/s 21835525.052op/s 21840700.242op/s 0.23% -7.191 62.671 0.31% 4786.638op/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 [534.707µs; 535.053µs] or [-0.032%; +0.032%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1868993.651op/s; 1870185.266op/s] or [-0.032%; +0.032%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [380.630µs; 380.722µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2626591.583op/s; 2627225.411op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [190.167µs; 190.215µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5257201.620op/s; 5258543.007op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.536µs; 37.554µs] or [-0.024%; +0.024%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26628423.091op/s; 26641052.389op/s] or [-0.024%; +0.024%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.891µs; 45.931µs] or [-0.044%; +0.044%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21772218.735op/s; 21790982.010op/s] or [-0.043%; +0.043%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.198µs 185.613µs ± 0.215µs 185.598µs ± 0.149µs 185.748µs 186.036µs 186.157µs 186.268µs 0.36% 0.425 -0.125 0.12% 0.015µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5368621.641op/s 5387573.977op/s ± 6238.539op/s 5387975.306op/s ± 4335.809op/s 5392606.891op/s 5397191.354op/s 5398872.908op/s 5399631.448op/s 0.22% -0.419 -0.133 0.12% 441.131op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.921µs 18.007µs ± 0.045µs 18.000µs ± 0.029µs 18.033µs 18.083µs 18.119µs 18.257µs 1.43% 1.185 3.738 0.25% 0.003µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 54773763.643op/s 55534851.189op/s ± 139434.660op/s 55556554.137op/s ± 89481.766op/s 55630047.315op/s 55718799.673op/s 55773059.566op/s 55799227.814op/s 0.44% -1.153 3.552 0.25% 9859.519op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.289µs 10.382µs ± 0.033µs 10.375µs ± 0.019µs 10.398µs 10.450µs 10.472µs 10.498µs 1.18% 0.777 1.045 0.31% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 95260295.148op/s 96324913.028op/s ± 303119.611op/s 96387336.910op/s ± 180729.140op/s 96507294.983op/s 96723264.934op/s 96861492.246op/s 97191532.850op/s 0.83% -0.754 1.010 0.31% 21433.793op/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 [185.583µs; 185.642µs] or [-0.016%; +0.016%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5386709.376op/s; 5388438.579op/s] or [-0.016%; +0.016%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.001µs; 18.013µs] or [-0.035%; +0.035%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [55515526.886op/s; 55554175.492op/s] or [-0.035%; +0.035%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.377µs; 10.386µs] or [-0.044%; +0.044%] None None None
normalization/normalize_name/normalize_name/good throughput [96282903.565op/s; 96366922.491op/s] or [-0.044%; +0.044%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.415µs 33.873µs ± 0.773µs 33.526µs ± 0.045µs 33.610µs 35.463µs 35.518µs 37.498µs 11.85% 1.903 2.497 2.28% 0.055µ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 [33.766µs; 33.980µs] or [-0.316%; +0.316%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.800ms 14.859ms ± 0.031ms 14.854ms ± 0.016ms 14.872ms 14.900ms 14.977ms 15.038ms 1.24% 1.970 7.403 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.854ms; 14.863ms] or [-0.029%; +0.029%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.672µs 25.211µs ± 9.301µs 17.893µs ± 0.125µs 33.610µs 42.277µs 42.822µs 53.462µs 198.79% 0.730 -0.869 36.80% 0.658µ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.922µs; 26.500µs] or [-5.113%; +5.113%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.532µs 147.482µs ± 1.603µs 147.288µs ± 0.446µs 147.715µs 149.053µs 152.753µs 163.582µs 11.06% 6.408 55.621 1.08% 0.113µ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.260µs; 147.704µs] or [-0.151%; +0.151%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.136ms 3.166ms ± 0.011ms 3.166ms ± 0.007ms 3.173ms 3.185ms 3.194ms 3.200ms 1.09% 0.257 0.270 0.34% 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.164ms; 3.167ms] or [-0.047%; +0.047%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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 713.338µs 714.267µs ± 0.545µs 714.197µs ± 0.253µs 714.468µs 714.924µs 715.503µs 719.277µs 0.71% 4.131 34.273 0.08% 0.039µ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 [714.191µs; 714.342µs] or [-0.011%; +0.011%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.223µs 3.171µs ± 1.429µs 3.006µs ± 0.025µs 3.026µs 3.280µs 13.776µs 15.134µs 403.52% 7.527 57.184 44.95% 0.101µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [2.973µs; 3.369µs] or [-6.246%; +6.246%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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 47.062ms 47.496ms ± 0.833ms 47.374ms ± 0.054ms 47.442ms 47.534ms 53.091ms 54.623ms 15.30% 7.272 54.105 1.75% 0.059ms 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 [47.381ms; 47.611ms] or [-0.243%; +0.243%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.246ns 190.891ns ± 2.168ns 190.575ns ± 1.430ns 192.017ns 194.787ns 197.596ns 201.695ns 5.84% 1.424 3.113 1.13% 0.153ns 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 [190.591ns; 191.192ns] or [-0.157%; +0.157%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.895µs 90.157µs ± 0.123µs 90.154µs ± 0.053µs 90.201µs 90.291µs 90.570µs 91.076µs 1.02% 2.757 16.930 0.14% 0.009µ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 [90.140µs; 90.174µs] or [-0.019%; +0.019%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.319µs 2.381µs ± 0.019µs 2.382µs ± 0.007µs 2.389µs 2.416µs 2.424µs 2.430µs 2.04% -0.834 2.752 0.79% 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.378µs; 2.383µs] or [-0.110%; +0.110%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.890µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.915µs 3.918µs 3.919µs 3.921µs 0.20% -1.603 10.166 0.08% 0.000µs 1 200
credit_card/is_card_number/ throughput 255048453.221op/s 255550471.121op/s ± 213483.776op/s 255546071.851op/s ± 140681.962op/s 255670022.694op/s 255848237.190op/s 255927858.718op/s 257041318.713op/s 0.59% 1.627 10.365 0.08% 15095.583op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 79.065µs 79.836µs ± 0.444µs 79.793µs ± 0.318µs 80.113µs 80.659µs 80.938µs 81.827µs 2.55% 0.872 1.293 0.55% 0.031µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12220971.459op/s 12526090.747op/s ± 69270.788op/s 12532505.565op/s ± 49994.207op/s 12582188.344op/s 12617028.736op/s 12636278.784op/s 12647763.012op/s 0.92% -0.830 1.133 0.55% 4898.184op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 72.361µs 72.985µs ± 0.360µs 72.936µs ± 0.219µs 73.196µs 73.645µs 73.962µs 74.300µs 1.87% 0.814 0.921 0.49% 0.025µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13458883.258op/s 13701696.089op/s ± 67246.173op/s 13710568.036op/s ± 41181.831op/s 13749802.939op/s 13797722.621op/s 13816505.129op/s 13819509.001op/s 0.79% -0.781 0.833 0.49% 4755.022op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.893µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.915µs 3.918µs 3.919µs 3.921µs 0.20% -1.342 9.578 0.08% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255055125.735op/s 255574844.499op/s ± 193929.108op/s 255565703.083op/s ± 115282.077op/s 255684625.255op/s 255823173.741op/s 255895408.135op/s 256900868.930op/s 0.52% 1.364 9.744 0.08% 13712.859op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 69.212µs 69.668µs ± 0.304µs 69.587µs ± 0.211µs 69.855µs 70.239µs 70.354µs 70.438µs 1.22% 0.622 -0.638 0.44% 0.021µs 1 200
credit_card/is_card_number/378282246310005 throughput 14196816.581op/s 14354154.181op/s ± 62442.591op/s 14370514.611op/s ± 43620.293op/s 14406453.391op/s 14430804.832op/s 14439098.712op/s 14448336.911op/s 0.54% -0.609 -0.658 0.43% 4415.358op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 52.160µs 52.236µs ± 0.042µs 52.235µs ± 0.027µs 52.260µs 52.296µs 52.331µs 52.524µs 0.55% 1.769 10.146 0.08% 0.003µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19038802.269op/s 19143933.464op/s ± 15466.371op/s 19144114.501op/s ± 9896.718op/s 19154620.319op/s 19166597.604op/s 19171460.386op/s 19171725.539op/s 0.14% -1.747 9.975 0.08% 1093.638op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.027µs 6.038µs ± 0.010µs 6.035µs ± 0.003µs 6.039µs 6.068µs 6.077µs 6.108µs 1.20% 3.470 14.803 0.17% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 163726554.718op/s 165626936.720op/s ± 279403.512op/s 165688675.180op/s ± 82830.382op/s 165767960.720op/s 165849793.875op/s 165873579.578op/s 165919744.109op/s 0.14% -3.446 14.579 0.17% 19756.812op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.894µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.914µs 3.917µs 3.920µs 3.921µs 0.21% -0.824 7.424 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255047261.575op/s 255590559.719op/s ± 189533.000op/s 255586760.608op/s ± 103312.145op/s 255694344.821op/s 255846246.928op/s 255894559.929op/s 256793628.142op/s 0.47% 0.843 7.538 0.07% 13402.007op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.143µs 64.462µs ± 0.144µs 64.450µs ± 0.088µs 64.533µs 64.725µs 64.837µs 64.910µs 0.71% 0.597 0.325 0.22% 0.010µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15405876.710op/s 15513161.728op/s ± 34659.681op/s 15515798.863op/s ± 21089.553op/s 15536974.264op/s 15561149.645op/s 15577517.072op/s 15590189.094op/s 0.48% -0.583 0.304 0.22% 2450.810op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 58.103µs 58.412µs ± 0.169µs 58.389µs ± 0.088µs 58.482µs 58.720µs 58.916µs 59.312µs 1.58% 1.408 3.870 0.29% 0.012µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 16860085.502op/s 17119948.377op/s ± 49342.710op/s 17126576.654op/s ± 25987.929op/s 17152031.344op/s 17182503.230op/s 17197597.437op/s 17210739.501op/s 0.49% -1.375 3.692 0.29% 3489.056op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.890µs 3.914µs ± 0.003µs 3.914µs ± 0.002µs 3.916µs 3.918µs 3.919µs 3.922µs 0.19% -2.542 18.106 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254981589.372op/s 255490414.498op/s ± 198963.524op/s 255470013.121op/s ± 102810.690op/s 255586851.701op/s 255799681.523op/s 255898376.363op/s 257065506.263op/s 0.62% 2.574 18.414 0.08% 14068.846op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.575µs 54.873µs ± 0.218µs 54.826µs ± 0.143µs 55.013µs 55.273µs 55.478µs 55.800µs 1.78% 1.025 0.887 0.40% 0.015µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17921141.659op/s 18224261.120op/s ± 72217.187op/s 18239509.794op/s ± 47808.496op/s 18281392.423op/s 18306672.247op/s 18316031.902op/s 18323373.103op/s 0.46% -1.003 0.799 0.40% 5106.526op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 52.141µs 52.217µs ± 0.043µs 52.207µs ± 0.026µs 52.241µs 52.294µs 52.326µs 52.451µs 0.47% 1.224 3.308 0.08% 0.003µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19065511.879op/s 19150767.715op/s ± 15885.443op/s 19154493.715op/s ± 9412.033op/s 19161823.898op/s 19171954.403op/s 19174731.922op/s 19178908.954op/s 0.13% -1.215 3.253 0.08% 1123.270op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.027µs 6.039µs ± 0.013µs 6.036µs ± 0.003µs 6.039µs 6.070µs 6.082µs 6.147µs 1.84% 4.566 28.122 0.21% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 162685502.709op/s 165594217.781op/s ± 349786.092op/s 165671545.912op/s ± 81703.330op/s 165740991.892op/s 165847863.321op/s 165886766.130op/s 165911337.862op/s 0.14% -4.508 27.391 0.21% 24733.612op/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.913µs; 3.914µs] or [-0.012%; +0.012%] None None None
credit_card/is_card_number/ throughput [255520884.323op/s; 255580057.919op/s] or [-0.012%; +0.012%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [79.774µs; 79.897µs] or [-0.077%; +0.077%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12516490.482op/s; 12535691.012op/s] or [-0.077%; +0.077%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [72.936µs; 73.035µs] or [-0.068%; +0.068%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13692376.416op/s; 13711015.762op/s] or [-0.068%; +0.068%] None None None
credit_card/is_card_number/37828224631 execution_time [3.912µs; 3.913µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/37828224631 throughput [255547967.790op/s; 255601721.209op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/378282246310005 execution_time [69.625µs; 69.710µs] or [-0.060%; +0.060%] None None None
credit_card/is_card_number/378282246310005 throughput [14345500.238op/s; 14362808.123op/s] or [-0.060%; +0.060%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.230µs; 52.242µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19141789.974op/s; 19146076.954op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.036µs; 6.039µs] or [-0.024%; +0.024%] None None None
credit_card/is_card_number/x371413321323331 throughput [165588214.080op/s; 165665659.359op/s] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.912µs; 3.913µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ throughput [255564292.268op/s; 255616827.170op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [64.442µs; 64.482µs] or [-0.031%; +0.031%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15508358.230op/s; 15517965.227op/s] or [-0.031%; +0.031%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [58.388µs; 58.435µs] or [-0.040%; +0.040%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17113109.952op/s; 17126786.802op/s] or [-0.040%; +0.040%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.914µs; 3.914µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255462840.067op/s; 255517988.929op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.843µs; 54.903µs] or [-0.055%; +0.055%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18214252.512op/s; 18234269.727op/s] or [-0.055%; +0.055%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.211µs; 52.223µs] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19148566.146op/s; 19152969.285op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.037µs; 6.041µs] or [-0.030%; +0.030%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [165545740.792op/s; 165642694.769op/s] or [-0.029%; +0.029%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.151ms 4.157ms ± 0.008ms 4.157ms ± 0.002ms 4.158ms 4.161ms 4.165ms 4.259ms 2.45% 11.741 152.949 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.156ms; 4.158ms] 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 e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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 243.272ns 253.520ns ± 13.028ns 246.951ns ± 3.006ns 257.584ns 279.915ns 296.555ns 300.066ns 21.51% 1.743 2.389 5.13% 0.921ns 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 [251.714ns; 255.325ns] or [-0.712%; +0.712%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz e90e20c 1772144967 PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
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.583µs 161.199µs ± 0.338µs 161.149µs ± 0.176µs 161.331µs 161.709µs 162.210µs 163.561µs 1.50% 2.154 11.302 0.21% 0.024µ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.152µs; 161.246µs] or [-0.029%; +0.029%] None None None

Baseline

Omitted due to size.

@dd-octo-sts
Copy link
Copy Markdown
Contributor

dd-octo-sts bot commented Feb 20, 2026

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.51 MB 8.51 MB +0% (+352 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 97.27 MB 97.30 MB +.03% (+34.12 KB) 🔍
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 112.87 MB 112.92 MB +.04% (+51.92 KB) 🔍
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.12 MB 11.12 MB +0% (+1.03 KB) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 27.15 MB 27.16 MB +.03% (+10.50 KB) 🔍
/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.94 MB 185.94 MB +0% (+8.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 914.84 MB 916.65 MB +.19% (+1.80 MB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.93 MB 9.93 MB +.04% (+4.50 KB) 🔍
/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 +.03% (+8.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 51.40 MB 51.43 MB +.04% (+24.85 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 22.96 MB 22.97 MB +.04% (+10.50 KB) 🔍
/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 190.14 MB 190.17 MB +.01% (+32.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 898.43 MB 900.31 MB +.20% (+1.87 MB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 7.53 MB 7.53 MB +.03% (+3.00 KB) 🔍
/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.52 MB +.05% (+16.00 KB) 🔍
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 47.03 MB 47.06 MB +.04% (+23.90 KB) 🔍
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 85.23 MB 85.27 MB +.04% (+38.69 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 10.04 MB 10.04 MB +.04% (+4.34 KB) 🔍
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 105.85 MB 105.89 MB +.04% (+44.58 KB) 🔍
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.78 MB 11.79 MB +.04% (+5.02 KB) 🔍

@datadog-datadog-prod-us1-2
Copy link
Copy Markdown

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

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

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

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Feb 20, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.21%. Comparing base (195b024) to head (e90e20c).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1619   +/-   ##
=======================================
  Coverage   71.21%   71.21%           
=======================================
  Files         423      424    +1     
  Lines       62464    62493   +29     
=======================================
+ Hits        44481    44504   +23     
- Misses      17983    17989    +6     
Components Coverage Δ
libdd-crashtracker 63.25% <ø> (ø)
libdd-crashtracker-ffi 17.64% <ø> (ø)
libdd-alloc 98.77% <ø> (ø)
libdd-data-pipeline 87.70% <ø> (ø)
libdd-data-pipeline-ffi 73.91% <ø> (ø)
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.59% <100.00%> (+0.03%) ⬆️
libdd-profiling-ffi 63.65% <ø> (ø)
datadog-sidecar 33.46% <ø> (ø)
datdog-sidecar-ffi 12.49% <ø> (ø)
spawn-worker 54.69% <ø> (ø)
libdd-tinybytes 93.16% <ø> (ø)
libdd-trace-normalization 81.71% <ø> (ø)
libdd-trace-obfuscation 94.67% <ø> (ø)
libdd-trace-protobuf 68.00% <ø> (ø)
libdd-trace-utils 89.18% <ø> (ø)
datadog-tracer-flare 88.95% <ø> (ø)
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.

@gyuheon0h gyuheon0h changed the title feat(profiling): TlsConfig for reusable TLS init feat(profiling)!: TlsConfig for reusable TLS init Feb 24, 2026
Avoid rebuilding TLS configuration for every export by reusing a
process-wide cached config in implicit exporter creation paths. This
removes repeated certificate-store initialization overhead on most
platforms and fixes the CPU regression during profile uploads.
@morrisonlevi morrisonlevi force-pushed the PROF-13824-ProfileExporter-new-creates-TLS-config-every-time branch from 31ed060 to e90e20c Compare February 26, 2026 22:29
@morrisonlevi morrisonlevi changed the title feat(profiling)!: TlsConfig for reusable TLS init perf(profiling): cache TLS in ProfileExporter::new Feb 26, 2026
Copy link
Copy Markdown
Contributor

@gyuheon0h gyuheon0h left a comment

Choose a reason for hiding this comment

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

LGTM. Just a thought; for the use case of a ProfileExporter, if the exporter is always hitting the same endpoint(s) with the same proxy settings, it may be worth caching a reqwest::Client (or a small client pool) that’s built using this TLS config? I'm pretty sure for all the usecases of ProfileExporter. we don't change the config stuff, like headers, timeouts, proxies within the process (plz correct me if I am wrong).

@gyuheon0h
Copy link
Copy Markdown
Contributor

/merge

@gh-worker-devflow-routing-ef8351
Copy link
Copy Markdown

gh-worker-devflow-routing-ef8351 bot commented Feb 27, 2026

View all feedbacks in Devflow UI.

2026-02-27 11:07:36 UTC ℹ️ Start processing command /merge


2026-02-27 11:07:40 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in main is approximately 48m (p90).


2026-02-27 11:48:41 UTC ℹ️ MergeQueue: This merge request was merged

@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot merged commit 9a61cae into main Feb 27, 2026
141 of 143 checks passed
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot deleted the PROF-13824-ProfileExporter-new-creates-TLS-config-every-time branch February 27, 2026 11:48
gh-worker-dd-mergequeue-cf854d bot pushed a commit that referenced this pull request Feb 27, 2026
# What does this PR do?

Bump version to 28.0.2

This includes:
- [chore: update bytes to 1.11.1 to address RUSTSEC-2026-0007](https://github.com/DataDog/libdatadog/pull/1628)[chore: update bytes to 1.11.1 to address RUSTSEC-2026-0007](#1628)
- [chore(release): merge release branch to main](https://github.com/DataDog/libdatadog/pull/1629)[chore(release): merge release branch to main](#1629)
- [fix: add ecs task metadata to unobfuscated ip addresses](https://github.com/DataDog/libdatadog/pull/1631)[fix: add ecs task metadata to unobfuscated ip addresses](#1631)
- [fix: credit card luhn validation for obfuscation](https://github.com/DataDog/libdatadog/pull/1633)[fix: credit card luhn validation for obfuscation](#1633)   
- [perf(profiling): cache TLS in ProfileExporter::new](https://github.com/DataDog/libdatadog/pull/1619)[perf(profiling): cache TLS in ProfileExporter::new](#1619)

# Motivation
[perf(profiling): cache TLS in ProfileExporter::new](https://github.com/DataDog/libdatadog/pull/1619)[perf(profiling): cache TLS in ProfileExporter::new](#1619) fixes slow TLS issue

# Additional Notes

Anything else we should know when reviewing?

# How to test the change?

Describe here in detail how the change can be validated.


Co-authored-by: gyuheon.oh <[email protected]>
) -> anyhow::Result<Self> {
let (builder, request_url) = endpoint.to_reqwest_client_builder()?;

let tls_config = super::tls::cached_tls_config()?;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

tls should not be needed for http / uds

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The design of the reqwest library is that a client can connect to multiple URLs. It doesn't know if it will use HTTP/HTTPS until later, but the config is done here.. We can possibly-rewrite the necessary components because we should know if we'll be using HTTPS or not, but that's not how the prior nor current code was designed (probably because we inherit such design unintentionally from tokio/reqwest).

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.

4 participants