Skip to content

Comments

feat(profiling): TlsConfig for reusable TLS init#1619

Draft
morrisonlevi wants to merge 2 commits intomainfrom
PROF-13824-ProfileExporter-new-creates-TLS-config-every-time
Draft

feat(profiling): TlsConfig for reusable TLS init#1619
morrisonlevi wants to merge 2 commits intomainfrom
PROF-13824-ProfileExporter-new-creates-TLS-config-every-time

Conversation

@morrisonlevi
Copy link
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. Callers create a TlsConfig once
and pass it to the new ProfileExporter::new_with_tls() constructor,
which injects it via reqwest::ClientBuilder::tls_backend_preconfigured().

The old ProfileExporter::new() and its FFI counterpart
ddog_prof_Exporter_new are marked #[deprecated].

FFI surface:

  • ddog_prof_TlsConfig_new — creates a ref-counted TLS config handle
  • ddog_prof_TlsConfig_try_clone — bumps the ref count
  • ddog_prof_TlsConfig_drop — decrements the ref count
  • ddog_prof_Exporter_new_with_tls — creates an exporter using a
    pre-built TLS config

Motivation

ProfileExporter::new() calls reqwest::ClientBuilder::build(), which
initializes 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 v27.

Screenshot 2026-02-20 at 8 37 56 AM

Additional Notes

  • TlsConfig is Clone (cheap — inner Arc), and exposed via
    ArcHandle<TlsConfig> in FFI for shared, ref-counted ownership.
  • ProfileExporter::new() now delegates to TlsConfig::new() +
    new_with_tls() internally.

Note that in v25, this config caching was done implicitly. I'm not a big fan of statics hidden away in libraries, though, so I'm seeing how a new API goes.

How to test the change?

  1. Linux performance: Create a TlsConfig once, then create multiple
    exporters with new_with_tls. Verify that only the first
    TlsConfig::new() call incurs the certificate loading cost.

  2. Backwards compatibility: The old ddog_prof_Exporter_new continues
    to work (it creates a TlsConfig internally). Callers see a
    deprecation warning guiding them to the new API.

@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

github-actions bot commented Feb 20, 2026

📚 Documentation Check Results

⚠️ 644 documentation warning(s) found

📦 libdd-profiling - 644 warning(s)


Updated: 2026-02-20 20:25:02 UTC | Commit: e44938b | missing-docs job results

@github-actions
Copy link

github-actions bot commented Feb 20, 2026

🔒 Cargo Deny Results

⚠️ 1 issue(s) found, showing only errors (advisories, bans, sources)

📦 libdd-profiling - 1 error(s)

Show output
error[vulnerability]: Integer overflow in `BytesMut::reserve`
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:31:1
   │
31 │ bytes 1.8.0 registry+https://github.com/rust-lang/crates.io-index
   │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
   │
   ├ ID: RUSTSEC-2026-0007
   ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2026-0007
   ├ In the unique reclaim path of `BytesMut::reserve`, the condition
     ```rs
     if v_capacity >= new_cap + offset
     ```
     uses an unchecked addition. When `new_cap + offset` overflows `usize` in release builds, this condition may incorrectly pass, causing `self.cap` to be set to a value that exceeds the actual allocated capacity. Subsequent APIs such as `spare_capacity_mut()` then trust this corrupted `cap` value and may create out-of-bounds slices, leading to UB.
     
     This behavior is observable in release builds (integer overflow wraps), whereas debug builds panic due to overflow checks.
     
     ## PoC
     
     ```rs
     use bytes::*;
     
     fn main() {
         let mut a = BytesMut::from(&b"hello world"[..]);
         let mut b = a.split_off(5);
     
         // Ensure b becomes the unique owner of the backing storage
         drop(a);
     
         // Trigger overflow in new_cap + offset inside reserve
         b.reserve(usize::MAX - 6);
     
         // This call relies on the corrupted cap and may cause UB & HBO
         b.put_u8(b'h');
     }
     ```
     
     # Workarounds
     
     Users of `BytesMut::reserve` are only affected if integer overflow checks are configured to wrap. When integer overflow is configured to panic, this issue does not apply.
   ├ Announcement: https://github.com/advisories/GHSA-434x-w66g-qw3r
   ├ Solution: Upgrade to >=1.11.1 (try `cargo update -p bytes`)
   ├ bytes v1.8.0
     ├── combine v4.6.7
     │   └── jni v0.21.1
     │       └── rustls-platform-verifier v0.6.2
     │           ├── libdd-profiling v1.0.0
     │           │   └── (dev) libdd-profiling v1.0.0 (*)
     │           └── reqwest v0.13.1
     │               ├── libdd-common v1.1.0
     │               │   └── libdd-profiling v1.0.0 (*)
     │               └── libdd-profiling v1.0.0 (*)
     ├── http v1.1.0
     │   ├── http-body v1.0.1
     │   │   ├── http-body-util v0.1.2
     │   │   │   ├── libdd-common v1.1.0 (*)
     │   │   │   ├── libdd-profiling v1.0.0 (*)
     │   │   │   └── reqwest v0.13.1 (*)
     │   │   ├── hyper v1.6.0
     │   │   │   ├── hyper-rustls v0.27.3
     │   │   │   │   ├── libdd-common v1.1.0 (*)
     │   │   │   │   └── reqwest v0.13.1 (*)
     │   │   │   ├── hyper-util v0.1.17
     │   │   │   │   ├── hyper-rustls v0.27.3 (*)
     │   │   │   │   ├── libdd-common v1.1.0 (*)
     │   │   │   │   └── reqwest v0.13.1 (*)
     │   │   │   ├── libdd-common v1.1.0 (*)
     │   │   │   └── reqwest v0.13.1 (*)
     │   │   ├── hyper-util v0.1.17 (*)
     │   │   ├── libdd-common v1.1.0 (*)
     │   │   ├── reqwest v0.13.1 (*)
     │   │   └── tower-http v0.6.8
     │   │       └── reqwest v0.13.1 (*)
     │   ├── http-body-util v0.1.2 (*)
     │   ├── hyper v1.6.0 (*)
     │   ├── hyper-rustls v0.27.3 (*)
     │   ├── hyper-util v0.1.17 (*)
     │   ├── libdd-common v1.1.0 (*)
     │   ├── libdd-profiling v1.0.0 (*)
     │   ├── multer v3.1.0
     │   │   └── libdd-common v1.1.0 (*)
     │   ├── reqwest v0.13.1 (*)
     │   └── tower-http v0.6.8 (*)
     ├── http-body v1.0.1 (*)
     ├── http-body-util v0.1.2 (*)
     ├── hyper v1.6.0 (*)
     ├── hyper-util v0.1.17 (*)
     ├── (dev) libdd-common v1.1.0 (*)
     ├── libdd-profiling v1.0.0 (*)
     ├── multer v3.1.0 (*)
     ├── prost v0.14.3
     │   ├── libdd-profiling v1.0.0 (*)
     │   └── libdd-profiling-protobuf v1.0.0
     │       ├── libdd-profiling v1.0.0 (*)
     │       └── (dev) libdd-profiling-protobuf v1.0.0 (*)
     ├── reqwest v0.13.1 (*)
     ├── tokio v1.49.0
     │   ├── hickory-proto v0.25.2
     │   │   └── hickory-resolver v0.25.2
     │   │       └── reqwest v0.13.1 (*)
     │   ├── hickory-resolver v0.25.2 (*)
     │   ├── hyper v1.6.0 (*)
     │   ├── hyper-rustls v0.27.3 (*)
     │   ├── hyper-util v0.1.17 (*)
     │   ├── (dev) libdd-common v1.1.0 (*)
     │   ├── libdd-profiling v1.0.0 (*)
     │   ├── reqwest v0.13.1 (*)
     │   ├── tokio-rustls v0.26.0
     │   │   ├── hyper-rustls v0.27.3 (*)
     │   │   ├── libdd-common v1.1.0 (*)
     │   │   └── reqwest v0.13.1 (*)
     │   ├── tokio-util v0.7.12
     │   │   └── libdd-profiling v1.0.0 (*)
     │   └── tower v0.5.2
     │       ├── reqwest v0.13.1 (*)
     │       └── tower-http v0.6.8 (*)
     ├── tokio-util v0.7.12 (*)
     └── tower-http v0.6.8 (*)

advisories FAILED, bans ok, sources ok

Updated: 2026-02-20 20:27:51 UTC | Commit: e44938b | dependency-check job results

ProfileExporter::new() initializes TLS on every call, which on
Linux involves expensive disk I/O to load the system certificate
store. Add TlsConfig (wrapping rustls::ClientConfig with the
platform verifier) and ProfileExporter::new_with_tls() so callers
can initialize TLS once and reuse it across exporter instances.

FFI: adds ddog_prof_TlsConfig_new, TlsConfig_try_clone,
TlsConfig_drop, and Exporter_new_with_tls via
ArcHandle<TlsConfig> for shared ownership.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions
Copy link

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
Co-authored-by: Cursor <cursoragent@cursor.com>
@pr-commenter
Copy link

pr-commenter bot commented Feb 20, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-02-20 20:39:11

Comparing candidate commit f8ed78c in PR branch PROF-13824-ProfileExporter-new-creates-TLS-config-every-time with baseline commit 7f3f0e1 in branch main.

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

scenario:credit_card/is_card_number/378282246310005

  • 🟥 execution_time [+10.690µs; +10.801µs] or [+15.594%; +15.756%]
  • 🟥 throughput [-1986499.068op/s; -1966691.151op/s] or [-13.618%; -13.482%]

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 f8ed78c 1771618983 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 5.007µs 5.068µs ± 0.040µs 5.052µs ± 0.027µs 5.103µs 5.141µs 5.146µs 5.150µs 1.94% 0.523 -1.032 0.78% 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.063µs; 5.074µs] or [-0.109%; +0.109%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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.394µs 2.424µs ± 0.021µs 2.420µs ± 0.008µs 2.427µs 2.480µs 2.490µs 2.505µs 3.51% 1.710 2.807 0.88% 0.002µ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.421µs; 2.427µs] or [-0.122%; +0.122%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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.563µs 24.802µs ± 9.366µs 17.832µs ± 0.105µs 33.319µs 42.070µs 43.693µs 69.433µs 289.36% 1.110 1.178 37.67% 0.662µ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.504µs; 26.100µs] or [-5.234%; +5.234%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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 731.767µs 732.713µs ± 0.575µs 732.588µs ± 0.323µs 732.957µs 733.767µs 734.147µs 736.389µs 0.52% 1.845 7.426 0.08% 0.041µ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 [732.633µs; 732.793µs] or [-0.011%; +0.011%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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 48.748ms 49.166ms ± 1.396ms 48.993ms ± 0.071ms 49.070ms 49.166ms 56.601ms 64.188ms 31.01% 8.834 81.567 2.83% 0.099ms 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 [48.972ms; 49.359ms] or [-0.394%; +0.394%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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.224ms 4.228ms ± 0.007ms 4.228ms ± 0.001ms 4.229ms 4.231ms 4.234ms 4.330ms 2.42% 12.608 168.044 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.227ms; 4.229ms] or [-0.025%; +0.025%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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 13.874ms 13.947ms ± 0.031ms 13.945ms ± 0.013ms 13.959ms 13.981ms 14.067ms 14.139ms 1.40% 2.197 10.243 0.22% 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 [13.943ms; 13.952ms] or [-0.030%; +0.030%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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 245.542ns 255.453ns ± 12.358ns 249.478ns ± 1.700ns 257.475ns 284.454ns 292.972ns 295.160ns 18.31% 1.742 1.853 4.83% 0.874ns 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.741ns; 257.166ns] or [-0.670%; +0.670%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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.386ms 3.415ms ± 0.012ms 3.415ms ± 0.007ms 3.421ms 3.434ms 3.450ms 3.453ms 1.11% 0.512 0.481 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.414ms; 3.417ms] 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 f8ed78c 1771618983 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.899µs 3.915µs ± 0.002µs 3.915µs ± 0.001µs 3.916µs 3.919µs 3.920µs 3.921µs 0.16% -1.126 7.695 0.06% 0.000µs 1 200
credit_card/is_card_number/ throughput 255023514.066op/s 255420464.518op/s ± 160473.716op/s 255438183.961op/s ± 76908.974op/s 255490597.950op/s 255665139.239op/s 255728365.532op/s 256458256.275op/s 0.40% 1.142 7.802 0.06% 11347.205op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 78.446µs 80.181µs ± 0.750µs 80.142µs ± 0.430µs 80.578µs 81.219µs 81.701µs 85.702µs 6.94% 1.955 13.297 0.93% 0.053µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 11668272.688op/s 12472827.303op/s ± 114809.656op/s 12477870.501op/s ± 66704.930op/s 12543484.512op/s 12639206.498op/s 12694381.543op/s 12747587.468op/s 2.16% -1.657 10.788 0.92% 8118.269op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 71.533µs 71.862µs ± 0.397µs 71.842µs ± 0.184µs 71.939µs 72.307µs 72.442µs 76.434µs 6.39% 7.791 85.950 0.55% 0.028µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13083146.198op/s 13915888.304op/s ± 73842.268op/s 13919406.636op/s ± 35700.736op/s 13960603.540op/s 13971466.076op/s 13977145.537op/s 13979522.795op/s 0.43% -7.351 79.084 0.53% 5221.437op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.893µs 3.915µs ± 0.003µs 3.915µs ± 0.001µs 3.916µs 3.919µs 3.922µs 3.922µs 0.18% -2.658 15.725 0.08% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254967165.862op/s 255435132.616op/s ± 210454.689op/s 255422973.391op/s ± 97516.029op/s 255525347.804op/s 255676792.171op/s 256425489.776op/s 256860659.682op/s 0.56% 2.684 15.912 0.08% 14881.394op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 78.710µs 79.301µs ± 0.326µs 79.271µs ± 0.212µs 79.517µs 79.907µs 80.066µs 80.166µs 1.13% 0.383 -0.389 0.41% 0.023µs 1 200
credit_card/is_card_number/378282246310005 throughput 12474111.308op/s 12610444.272op/s ± 51805.479op/s 12614997.013op/s ± 33745.600op/s 12644604.935op/s 12691142.284op/s 12700144.874op/s 12704857.067op/s 0.71% -0.365 -0.407 0.41% 3663.201op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 45.380µs 45.732µs ± 0.105µs 45.730µs ± 0.061µs 45.789µs 45.864µs 45.938µs 46.512µs 1.71% 1.801 14.321 0.23% 0.007µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21499865.994op/s 21866461.612op/s ± 49988.775op/s 21867386.979op/s ± 29005.006op/s 21896462.631op/s 21932168.938op/s 21973356.999op/s 22036008.448op/s 0.77% -1.713 13.621 0.23% 3534.740op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.570µs 6.623µs ± 0.016µs 6.626µs ± 0.012µs 6.637µs 6.642µs 6.648µs 6.653µs 0.41% -0.846 0.560 0.24% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 150309431.648op/s 150983568.234op/s ± 366855.301op/s 150924510.694op/s ± 266960.735op/s 151199391.443op/s 151637156.202op/s 152085775.430op/s 152202987.245op/s 0.85% 0.859 0.599 0.24% 25940.587op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.897µs 3.915µs ± 0.003µs 3.915µs ± 0.002µs 3.917µs 3.920µs 3.923µs 3.924µs 0.24% -0.737 7.598 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254812871.610op/s 255422370.716op/s ± 187114.720op/s 255430510.131op/s ± 106089.932op/s 255533283.211op/s 255676751.897op/s 255735670.672op/s 256611461.222op/s 0.46% 0.757 7.711 0.07% 13231.009op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 65.139µs 65.790µs ± 0.069µs 65.787µs ± 0.031µs 65.821µs 65.892µs 65.932µs 65.955µs 0.26% -3.911 38.160 0.10% 0.005µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15161944.431op/s 15199802.208op/s ± 16014.593op/s 15200675.745op/s ± 7158.302op/s 15207030.301op/s 15216429.619op/s 15222257.724op/s 15351877.063op/s 0.99% 3.990 39.065 0.11% 1132.403op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 53.359µs 53.417µs ± 0.031µs 53.416µs ± 0.018µs 53.434µs 53.466µs 53.488µs 53.594µs 0.33% 1.084 4.526 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18658662.497op/s 18720585.386op/s ± 10787.801op/s 18721037.473op/s ± 6381.917op/s 18727878.005op/s 18736618.799op/s 18740370.558op/s 18740982.771op/s 0.11% -1.075 4.471 0.06% 762.813op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.900µs 3.914µs ± 0.002µs 3.914µs ± 0.002µs 3.916µs 3.918µs 3.920µs 3.921µs 0.17% -0.931 6.021 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255043243.056op/s 255469921.803op/s ± 156715.017op/s 255465831.471op/s ± 98992.320op/s 255567738.233op/s 255702150.451op/s 255763740.502op/s 256433906.645op/s 0.38% 0.945 6.102 0.06% 11081.425op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 50.140µs 50.216µs ± 0.034µs 50.214µs ± 0.021µs 50.235µs 50.279µs 50.300µs 50.312µs 0.19% 0.383 -0.004 0.07% 0.002µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 19876155.649op/s 19913928.743op/s ± 13420.075op/s 19914879.821op/s ± 8464.118op/s 19923278.940op/s 19932380.101op/s 19941455.318op/s 19944188.184op/s 0.15% -0.379 -0.007 0.07% 948.943op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 45.458µs 45.707µs ± 0.104µs 45.710µs ± 0.069µs 45.777µs 45.880µs 45.928µs 45.984µs 0.60% -0.020 -0.207 0.23% 0.007µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21746925.566op/s 21878727.255op/s ± 49908.554op/s 21876988.690op/s ± 32911.711op/s 21911722.248op/s 21964323.649op/s 21987242.101op/s 21998443.033op/s 0.56% 0.032 -0.209 0.23% 3529.068op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.575µs 6.622µs ± 0.016µs 6.625µs ± 0.010µs 6.633µs 6.640µs 6.643µs 6.645µs 0.29% -0.929 0.413 0.23% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 150488669.598op/s 151021833.195op/s ± 355037.521op/s 150932148.476op/s ± 216172.705op/s 151255046.270op/s 151786685.548op/s 152038750.062op/s 152097198.773op/s 0.77% 0.940 0.441 0.23% 25104.944op/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.915µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ throughput [255398224.405op/s; 255442704.632op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [80.077µs; 80.285µs] or [-0.130%; +0.130%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12456915.789op/s; 12488738.817op/s] or [-0.128%; +0.128%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [71.807µs; 71.917µs] or [-0.077%; +0.077%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13905654.476op/s; 13926122.133op/s] or [-0.074%; +0.074%] None None None
credit_card/is_card_number/37828224631 execution_time [3.914µs; 3.915µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/37828224631 throughput [255405965.620op/s; 255464299.612op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/378282246310005 execution_time [79.255µs; 79.346µs] or [-0.057%; +0.057%] None None None
credit_card/is_card_number/378282246310005 throughput [12603264.531op/s; 12617624.013op/s] or [-0.057%; +0.057%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.718µs; 45.747µs] or [-0.032%; +0.032%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [21859533.648op/s; 21873389.575op/s] or [-0.032%; +0.032%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.621µs; 6.626µs] or [-0.034%; +0.034%] None None None
credit_card/is_card_number/x371413321323331 throughput [150932725.617op/s; 151034410.850op/s] or [-0.034%; +0.034%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.915µs; 3.915µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ throughput [255396438.416op/s; 255448303.017op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.781µs; 65.800µs] or [-0.015%; +0.015%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15197582.739op/s; 15202021.676op/s] or [-0.015%; +0.015%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.413µs; 53.421µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18719090.301op/s; 18722080.472op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.914µs; 3.915µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255448202.609op/s; 255491640.997op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [50.211µs; 50.221µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [19912068.850op/s; 19915788.636op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.692µs; 45.721µs] or [-0.032%; +0.032%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [21871810.410op/s; 21885644.101op/s] or [-0.032%; +0.032%] 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 [150972628.409op/s; 151071037.981op/s] or [-0.033%; +0.033%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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.528µs 186.088µs ± 0.346µs 186.026µs ± 0.159µs 186.193µs 186.737µs 187.366µs 187.473µs 0.78% 1.832 4.442 0.19% 0.024µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5334113.536op/s 5373829.266op/s ± 9968.727op/s 5375592.660op/s ± 4588.866op/s 5379349.726op/s 5385478.807op/s 5389434.668op/s 5390020.539op/s 0.27% -1.815 4.376 0.19% 704.895op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.813µs 17.908µs ± 0.050µs 17.910µs ± 0.037µs 17.941µs 17.986µs 18.033µs 18.053µs 0.80% 0.193 -0.434 0.28% 0.004µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 55393306.440op/s 55842314.343op/s ± 156047.863op/s 55834034.987op/s ± 114794.262op/s 55962268.268op/s 56092236.764op/s 56115132.418op/s 56138165.933op/s 0.54% -0.180 -0.450 0.28% 11034.250op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 9.823µs 9.867µs ± 0.023µs 9.863µs ± 0.015µs 9.885µs 9.904µs 9.923µs 9.965µs 1.03% 0.496 0.748 0.23% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 100354815.092op/s 101351002.252op/s ± 236494.441op/s 101386810.267op/s ± 157158.203op/s 101506487.057op/s 101739506.657op/s 101780131.418op/s 101800715.844op/s 0.41% -0.479 0.697 0.23% 16722.682op/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.040µs; 186.136µs] or [-0.026%; +0.026%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5372447.696op/s; 5375210.836op/s] or [-0.026%; +0.026%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [17.901µs; 17.915µs] or [-0.039%; +0.039%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [55820687.610op/s; 55863941.076op/s] or [-0.039%; +0.039%] None None None
normalization/normalize_name/normalize_name/good execution_time [9.864µs; 9.870µs] or [-0.032%; +0.032%] None None None
normalization/normalize_name/normalize_name/good throughput [101318226.398op/s; 101383778.107op/s] or [-0.032%; +0.032%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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 32.964µs 33.885µs ± 1.295µs 33.077µs ± 0.078µs 35.469µs 36.134µs 36.247µs 36.508µs 10.37% 0.942 -1.039 3.81% 0.092µ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.706µs; 34.064µs] or [-0.530%; +0.530%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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.709ms 10.740ms ± 0.014ms 10.737ms ± 0.008ms 10.748ms 10.766ms 10.784ms 10.810ms 0.68% 1.182 3.035 0.13% 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.738ms; 10.742ms] or [-0.018%; +0.018%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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 186.103ns 188.671ns ± 1.928ns 188.170ns ± 1.281ns 189.763ns 192.236ns 194.110ns 198.115ns 5.28% 1.297 2.529 1.02% 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 [188.404ns; 188.938ns] or [-0.142%; +0.142%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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 85.591µs 85.907µs ± 0.137µs 85.894µs ± 0.062µs 85.956µs 86.115µs 86.230µs 86.969µs 1.25% 3.106 19.462 0.16% 0.010µ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 [85.888µs; 85.926µs] or [-0.022%; +0.022%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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 494.018µs 494.927µs ± 0.469µs 494.859µs ± 0.294µs 495.233µs 495.939µs 496.234µs 496.837µs 0.40% 0.896 1.210 0.09% 0.033µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 2012730.746op/s 2020501.153op/s ± 1913.083op/s 2020776.955op/s ± 1201.842op/s 2021856.607op/s 2023104.758op/s 2023744.780op/s 2024216.148op/s 0.17% -0.889 1.190 0.09% 135.275op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 370.680µs 371.417µs ± 0.318µs 371.374µs ± 0.223µs 371.608µs 372.072µs 372.269µs 372.348µs 0.26% 0.643 0.161 0.09% 0.023µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2685659.652op/s 2692395.030op/s ± 2306.255op/s 2692701.263op/s ± 1615.450op/s 2694130.082op/s 2695448.020op/s 2696416.649op/s 2697741.205op/s 0.19% -0.638 0.154 0.09% 163.077op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 167.640µs 167.959µs ± 0.134µs 167.954µs ± 0.085µs 168.045µs 168.191µs 168.233µs 168.321µs 0.22% 0.158 -0.448 0.08% 0.009µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5941036.730op/s 5953834.113op/s ± 4745.878op/s 5954016.164op/s ± 3028.120op/s 5956875.821op/s 5961301.905op/s 5962728.937op/s 5965155.170op/s 0.19% -0.155 -0.450 0.08% 335.584op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.564µs 36.761µs ± 0.085µs 36.757µs ± 0.063µs 36.818µs 36.896µs 36.942µs 37.049µs 0.79% 0.206 -0.277 0.23% 0.006µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26991633.378op/s 27203079.572op/s ± 63145.567op/s 27205405.425op/s ± 46663.079op/s 27253494.619op/s 27293631.858op/s 27326829.405op/s 27349279.235op/s 0.53% -0.195 -0.291 0.23% 4465.066op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.293µs 45.493µs ± 0.136µs 45.494µs ± 0.079µs 45.569µs 45.625µs 45.671µs 46.856µs 2.99% 4.954 48.369 0.30% 0.010µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21341827.064op/s 21981542.625op/s ± 64813.635op/s 21980813.197op/s ± 38220.867op/s 22024828.099op/s 22056652.747op/s 22070600.851op/s 22078683.522op/s 0.45% -4.728 45.457 0.29% 4583.016op/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 [494.862µs; 494.992µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [2020236.018op/s; 2020766.288op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [371.373µs; 371.461µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2692075.405op/s; 2692714.655op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [167.941µs; 167.978µs] or [-0.011%; +0.011%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5953176.380op/s; 5954491.846op/s] or [-0.011%; +0.011%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.749µs; 36.773µs] or [-0.032%; +0.032%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27194328.204op/s; 27211830.941op/s] or [-0.032%; +0.032%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.474µs; 45.512µs] or [-0.041%; +0.041%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21972560.079op/s; 21990525.172op/s] or [-0.041%; +0.041%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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 143.807µs 146.229µs ± 1.900µs 145.983µs ± 0.569µs 146.539µs 147.992µs 152.613µs 164.959µs 13.00% 6.031 50.260 1.30% 0.134µ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 [145.966µs; 146.493µs] or [-0.180%; +0.180%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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.227µs 3.150µs ± 1.418µs 2.983µs ± 0.025µs 3.002µs 3.265µs 13.720µs 15.053µs 404.57% 7.501 56.895 44.90% 0.100µ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.954µs; 3.347µs] or [-6.239%; +6.239%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz f8ed78c 1771618983 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 161.420µs 162.174µs ± 0.421µs 162.113µs ± 0.147µs 162.252µs 162.774µs 163.345µs 166.385µs 2.64% 5.470 49.124 0.26% 0.030µ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 [162.116µs; 162.233µs] or [-0.036%; +0.036%] None None None

Baseline

Omitted due to size.

@dd-octo-sts
Copy link

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% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 97.06 MB 97.06 MB 0% (0 B) 👌
aarch64-apple-darwin
Artifact Baseline Commit Change
/aarch64-apple-darwin/lib/libdatadog_profiling.a 67.76 MB 67.76 MB 0% (0 B) 👌
/aarch64-apple-darwin/lib/libdatadog_profiling.dylib 9.84 MB 9.84 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.05 MB 11.05 MB 0% (0 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 112.70 MB 112.70 MB 0% (0 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 27.13 MB 27.13 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.73 MB 185.73 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 912.24 MB 912.24 MB 0% (0 B) 👌
/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.75 MB 24.75 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.95 MB 22.95 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 190.08 MB 190.08 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 896.28 MB 896.28 MB 0% (0 B) 👌
/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.50 MB 26.50 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 47.03 MB 47.03 MB 0% (0 B) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 85.12 MB 85.12 MB 0% (0 B) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 10.02 MB 10.02 MB 0% (0 B) 👌
x86_64-apple-darwin
Artifact Baseline Commit Change
/x86_64-apple-darwin/lib/libdatadog_profiling.a 69.39 MB 69.39 MB 0% (0 B) 👌
/x86_64-apple-darwin/lib/libdatadog_profiling.dylib 10.87 MB 10.87 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 105.73 MB 105.73 MB 0% (0 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.77 MB 11.77 MB 0% (0 B) 👌

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

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

⚠️ Tests

Fix all issues with BitsAI or with Cursor

⚠️ Warnings

🧪 2 Tests failed

test_export_agentless_named_pipe from libdd-profiling::exporter_e2e (Datadog) (Fix with Cursor)
Test has failed
test_export_agent_named_pipe from libdd-profiling::exporter_e2e (Datadog) (Fix with Cursor)
Test has failed

ℹ️ Info

❄️ No new flaky tests detected

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

@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 41.66667% with 35 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.21%. Comparing base (7f3f0e1) to head (f8ed78c).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1619      +/-   ##
==========================================
- Coverage   71.24%   71.21%   -0.04%     
==========================================
  Files         423      424       +1     
  Lines       62198    62261      +63     
==========================================
+ Hits        44315    44338      +23     
- Misses      17883    17923      +40     
Components Coverage Δ
libdd-crashtracker 62.54% <ø> (+0.01%) ⬆️
libdd-crashtracker-ffi 15.80% <ø> (ø)
libdd-alloc 98.77% <ø> (ø)
libdd-data-pipeline 87.27% <ø> (ø)
libdd-data-pipeline-ffi 71.51% <ø> (ø)
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.29% <41.66%> (-0.27%) ⬇️
libdd-profiling-ffi 62.38% <2.77%> (-1.28%) ⬇️
datadog-sidecar 34.18% <ø> (ø)
datdog-sidecar-ffi 15.63% <ø> (ø)
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 88.97% <ø> (ø)
datadog-tracer-flare 86.86% <ø> (ø)
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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants