Skip to content

feat: enable non-blocking DNS for reqwest#1558

Open
danielsn wants to merge 4 commits intomainfrom
dsn/hickory-dns
Open

feat: enable non-blocking DNS for reqwest#1558
danielsn wants to merge 4 commits intomainfrom
dsn/hickory-dns

Conversation

@danielsn
Copy link
Contributor

@danielsn danielsn commented Feb 11, 2026

What does this PR do?

  1. Uses hickory dns for reqwest based networking.
  2. Temporarily gates it behind an environment variable to allow runtimes to test and opt-in.

Motivation

https://github.com/DataDog/dd-source/pull/355564

The default DNS resolver used when reqwest does not have the hickory-dns feature has a few issues:

It uses tokio::spawn_blocking for each DNS resolution, because it uses the system getaddrinfo that is sync. This can contribute to saturating the tokio blocking pool in case of slowness
It seems it does this for all DNS requests and has no applicative cache. For df-executor, it results in about 6000 DNS requests per second, the vast majority of them being DNS resolution to S3 and GCP Blob Store.
Hickory DNS is async and has applicative DNS record caching, compliant with DNS TTLs, allowing to:

Avoid saturating the blocking pool (no more blocking tasks for df-executor's IO pool with this PR deployed in staging)
Avoid DNS flooding (signal is noisy for now, I'll take a second look at a larger scale after a full night running)

The non-use of the blocking pool is particularly nice, since it lets us avoid the uncontrolled thread that can break things on forks.

Additional Notes

Anything else we should know when reviewing?

How to test the change?

Describe here in detail how the change can be validated.

@github-actions
Copy link

github-actions bot commented Feb 11, 2026

📚 Documentation Check Results

⚠️ 1283 documentation warning(s) found

📦 libdd-common - 156 warning(s)

📦 libdd-profiling - 633 warning(s)

📦 libdd-trace-obfuscation - 494 warning(s)


Updated: 2026-02-17 22:06:07 UTC | Commit: 4d4c00d | missing-docs job results

@github-actions
Copy link

github-actions bot commented Feb 11, 2026

🔒 Cargo Deny Results

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

📦 libdd-common - 1 error(s)

Show output
error[vulnerability]: Integer overflow in `BytesMut::reserve`
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:12:1
   │
12 │ 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
     │           └── reqwest v0.13.1
     │               └── libdd-common v1.1.0
     ├── http v1.1.0
     │   ├── http-body v1.0.1
     │   │   ├── http-body-util v0.1.2
     │   │   │   ├── libdd-common v1.1.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 (*)
     │   ├── 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 (*)
     ├── libdd-common v1.1.0 (*)
     ├── multer v3.1.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 (*)
     │   ├── reqwest v0.13.1 (*)
     │   ├── tokio-rustls v0.26.0
     │   │   ├── hyper-rustls v0.27.3 (*)
     │   │   ├── libdd-common v1.1.0 (*)
     │   │   └── reqwest v0.13.1 (*)
     │   └── tower v0.5.2
     │       ├── reqwest v0.13.1 (*)
     │       └── tower-http v0.6.8 (*)
     └── tower-http v0.6.8 (*)

advisories FAILED, bans ok, sources ok

📦 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
     │           └── reqwest v0.13.1
     │               ├── libdd-common v1.1.0
     │               │   └── libdd-profiling v1.0.0
     │               │       └── (dev) 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 (*)
     ├── 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

📦 libdd-trace-obfuscation - 1 error(s)

Show output
error[vulnerability]: Integer overflow in `BytesMut::reserve`
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:42:1
   │
42 │ 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
     ├── h2 v0.4.6
     │   └── hyper v1.6.0
     │       ├── httpmock v0.8.0-alpha.1
     │       │   └── libdd-trace-utils v1.0.0
     │       │       ├── (dev) libdd-trace-obfuscation v1.0.0
     │       │       └── (dev) libdd-trace-utils v1.0.0 (*)
     │       ├── hyper-rustls v0.27.3
     │       │   └── libdd-common v1.1.0
     │       │       ├── libdd-trace-obfuscation v1.0.0 (*)
     │       │       └── libdd-trace-utils v1.0.0 (*)
     │       ├── hyper-util v0.1.17
     │       │   ├── httpmock v0.8.0-alpha.1 (*)
     │       │   ├── hyper-rustls v0.27.3 (*)
     │       │   └── libdd-common v1.1.0 (*)
     │       ├── libdd-common v1.1.0 (*)
     │       └── libdd-trace-utils v1.0.0 (*)
     ├── headers v0.4.0
     │   └── httpmock v0.8.0-alpha.1 (*)
     ├── http v1.1.0
     │   ├── h2 v0.4.6 (*)
     │   ├── headers v0.4.0 (*)
     │   ├── headers-core v0.3.0
     │   │   └── headers v0.4.0 (*)
     │   ├── http-body v1.0.1
     │   │   ├── http-body-util v0.1.2
     │   │   │   ├── httpmock v0.8.0-alpha.1 (*)
     │   │   │   ├── libdd-common v1.1.0 (*)
     │   │   │   └── libdd-trace-utils v1.0.0 (*)
     │   │   ├── hyper v1.6.0 (*)
     │   │   ├── hyper-util v0.1.17 (*)
     │   │   └── libdd-common v1.1.0 (*)
     │   ├── http-body-util v0.1.2 (*)
     │   ├── httpmock v0.8.0-alpha.1 (*)
     │   ├── hyper v1.6.0 (*)
     │   ├── hyper-rustls v0.27.3 (*)
     │   ├── hyper-util v0.1.17 (*)
     │   ├── libdd-common v1.1.0 (*)
     │   ├── libdd-trace-utils v1.0.0 (*)
     │   └── multer v3.1.0
     │       └── (dev) libdd-common v1.1.0 (*)
     ├── http-body v1.0.1 (*)
     ├── http-body-util v0.1.2 (*)
     ├── httpmock v0.8.0-alpha.1 (*)
     ├── hyper v1.6.0 (*)
     ├── hyper-util v0.1.17 (*)
     ├── (dev) libdd-common v1.1.0 (*)
     ├── libdd-trace-utils v1.0.0 (*)
     ├── multer v3.1.0 (*)
     ├── prost v0.14.3
     │   ├── libdd-trace-protobuf v1.0.0
     │   │   ├── libdd-trace-normalization v1.0.0
     │   │   │   └── libdd-trace-utils v1.0.0 (*)
     │   │   ├── libdd-trace-obfuscation v1.0.0 (*)
     │   │   └── libdd-trace-utils v1.0.0 (*)
     │   └── libdd-trace-utils v1.0.0 (*)
     ├── tokio v1.49.0
     │   ├── h2 v0.4.6 (*)
     │   ├── httpmock v0.8.0-alpha.1 (*)
     │   ├── hyper v1.6.0 (*)
     │   ├── hyper-rustls v0.27.3 (*)
     │   ├── hyper-util v0.1.17 (*)
     │   ├── (dev) libdd-common v1.1.0 (*)
     │   ├── (dev) libdd-trace-protobuf v1.0.0 (*)
     │   ├── (dev) libdd-trace-utils v1.0.0 (*)
     │   ├── tokio-rustls v0.26.0
     │   │   ├── hyper-rustls v0.27.3 (*)
     │   │   └── libdd-common v1.1.0 (*)
     │   └── tokio-util v0.7.12
     │       └── h2 v0.4.6 (*)
     └── tokio-util v0.7.12 (*)

advisories FAILED, bans ok, sources ok

Updated: 2026-02-17 22:08:52 UTC | Commit: 4d4c00d | dependency-check job results

@gyuheon0h gyuheon0h changed the title deps: switch DNS resolver for reqwest to hickory-dns chore(deps): switch DNS resolver for reqwest to hickory-dns Feb 11, 2026
@codecov-commenter
Copy link

codecov-commenter commented Feb 11, 2026

Codecov Report

❌ Patch coverage is 83.58209% with 11 lines in your changes missing coverage. Please review.
✅ Project coverage is 70.95%. Comparing base (367c8b2) to head (468316b).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1558      +/-   ##
==========================================
+ Coverage   70.85%   70.95%   +0.10%     
==========================================
  Files         424      424              
  Lines       61963    62010      +47     
==========================================
+ Hits        43903    43999      +96     
+ Misses      18060    18011      -49     
Components Coverage Δ
libdd-crashtracker 62.59% <ø> (+0.15%) ⬆️
libdd-crashtracker-ffi 17.37% <ø> (+1.56%) ⬆️
libdd-alloc 98.77% <ø> (ø)
libdd-data-pipeline 85.94% <ø> (-0.02%) ⬇️
libdd-data-pipeline-ffi 74.78% <ø> (-0.85%) ⬇️
libdd-common 79.86% <83.58%> (+0.06%) ⬆️
libdd-common-ffi 73.75% <ø> (ø)
libdd-telemetry 62.52% <ø> (ø)
libdd-telemetry-ffi 16.75% <ø> (ø)
libdd-dogstatsd-client 82.64% <ø> (ø)
datadog-ipc 80.71% <ø> (-0.12%) ⬇️
libdd-profiling 81.23% <ø> (ø)
libdd-profiling-ffi 63.66% <ø> (ø)
datadog-sidecar 33.62% <ø> (+0.86%) ⬆️
datdog-sidecar-ffi 13.25% <ø> (+3.75%) ⬆️
spawn-worker 54.69% <ø> (ø)
libdd-tinybytes 93.16% <ø> (ø)
libdd-trace-normalization 81.71% <ø> (ø)
libdd-trace-obfuscation 94.18% <ø> (ø)
libdd-trace-protobuf 68.00% <ø> (ø)
libdd-trace-utils 88.72% <ø> (ø)
datadog-tracer-flare 90.45% <ø> (+1.49%) ⬆️
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.

@pr-commenter
Copy link

pr-commenter bot commented Feb 11, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-02-17 22:20:08

Comparing candidate commit 468316b in PR branch dsn/hickory-dns with baseline commit 367c8b2 in branch main.

Found 7 performance improvements and 9 performance regressions! Performance is the same for 41 metrics, 2 unstable metrics.

scenario:benching deserializing traces from msgpack to their internal representation

  • 🟥 execution_time [+2.122ms; +2.538ms] or [+4.340%; +5.192%]

scenario:credit_card/is_card_number/37828224631000521389798

  • 🟥 execution_time [+6.298µs; +6.328µs] or [+13.777%; +13.842%]
  • 🟥 throughput [-2660853.604op/s; -2647784.584op/s] or [-12.164%; -12.104%]

scenario:credit_card/is_card_number/x371413321323331

  • 🟩 execution_time [-401.782ns; -399.105ns] or [-6.243%; -6.201%]
  • 🟩 throughput [+10273297.335op/s; +10344519.264op/s] or [+6.612%; +6.658%]

scenario:credit_card/is_card_number_no_luhn/ 378282246310005

  • 🟥 execution_time [+4.344µs; +4.388µs] or [+8.041%; +8.123%]
  • 🟥 throughput [-1390931.257op/s; -1377465.974op/s] or [-7.514%; -7.441%]

scenario:credit_card/is_card_number_no_luhn/378282246310005

  • 🟥 execution_time [+4.356µs; +4.421µs] or [+8.650%; +8.779%]
  • 🟥 throughput [-1603111.914op/s; -1580448.755op/s] or [-8.072%; -7.958%]

scenario:credit_card/is_card_number_no_luhn/37828224631000521389798

  • 🟥 execution_time [+6.322µs; +6.351µs] or [+13.835%; +13.898%]
  • 🟥 throughput [-2671322.709op/s; -2658431.913op/s] or [-12.207%; -12.149%]

scenario:credit_card/is_card_number_no_luhn/x371413321323331

  • 🟩 execution_time [-400.131ns; -397.165ns] or [-6.217%; -6.171%]
  • 🟩 throughput [+10219456.001op/s; +10299028.104op/s] or [+6.577%; +6.629%]

scenario:normalization/normalize_service/normalize_service/[empty string]

  • 🟩 execution_time [-2.053µs; -2.031µs] or [-5.289%; -5.233%]
  • 🟩 throughput [+1422626.091op/s; +1438343.404op/s] or [+5.523%; +5.584%]

scenario:sql/obfuscate_sql_string

  • 🟩 execution_time [-7.016µs; -6.939µs] or [-7.613%; -7.530%]

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 468316b 1771365858 dsn/hickory-dns
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.603ms 14.656ms ± 0.031ms 14.651ms ± 0.012ms 14.662ms 14.715ms 14.756ms 14.852ms 1.37% 2.557 9.857 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.652ms; 14.661ms] or [-0.029%; +0.029%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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.892µs 3.912µs ± 0.003µs 3.912µs ± 0.001µs 3.914µs 3.916µs 3.918µs 3.920µs 0.21% -1.863 16.761 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 255096823.561op/s 255610991.331op/s ± 168744.163op/s 255625357.401op/s ± 92637.062op/s 255706948.837op/s 255814336.218op/s 255863863.491op/s 256919648.958op/s 0.51% 1.893 17.021 0.07% 11932.014op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 76.485µs 77.937µs ± 0.622µs 77.957µs ± 0.437µs 78.347µs 78.955µs 79.466µs 79.659µs 2.18% 0.230 -0.280 0.80% 0.044µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12553569.194op/s 12831611.052op/s ± 102263.895op/s 12827613.782op/s ± 72372.031op/s 12908561.613op/s 12987743.129op/s 13041610.891op/s 13074489.522op/s 1.92% -0.191 -0.307 0.79% 7231.149op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 69.884µs 70.836µs ± 0.566µs 70.733µs ± 0.363µs 71.231µs 71.904µs 72.346µs 72.758µs 2.86% 0.656 0.222 0.80% 0.040µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13744226.336op/s 14118053.839op/s ± 112280.087op/s 14137665.646op/s ± 72537.593op/s 14199664.926op/s 14282065.604op/s 14302743.863op/s 14309360.720op/s 1.21% -0.613 0.130 0.79% 7939.401op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.896µs 3.913µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.919µs 3.921µs 3.922µs 0.24% -0.137 3.303 0.08% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254987748.916op/s 255568431.191op/s ± 207054.463op/s 255599437.692op/s ± 122194.507op/s 255702204.224op/s 255839315.934op/s 255872176.634op/s 256669387.335op/s 0.42% 0.150 3.357 0.08% 14640.961op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 66.866µs 68.194µs ± 0.677µs 68.165µs ± 0.446µs 68.596µs 69.217µs 69.999µs 70.422µs 3.31% 0.439 0.047 0.99% 0.048µs 1 200
credit_card/is_card_number/378282246310005 throughput 14200136.532op/s 14665496.152op/s ± 144920.915op/s 14670295.524op/s ± 96625.133op/s 14768839.885op/s 14890375.422op/s 14921993.024op/s 14955286.724op/s 1.94% -0.385 -0.047 0.99% 10247.456op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 51.860µs 52.027µs ± 0.062µs 52.027µs ± 0.047µs 52.074µs 52.119µs 52.147µs 52.179µs 0.29% -0.092 -0.626 0.12% 0.004µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19164855.191op/s 19220797.572op/s ± 22738.208op/s 19220762.412op/s ± 17243.927op/s 19237417.316op/s 19257956.033op/s 19265711.044op/s 19282589.750op/s 0.32% 0.097 -0.625 0.12% 1607.834op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.027µs 6.036µs ± 0.009µs 6.034µs ± 0.002µs 6.037µs 6.042µs 6.079µs 6.108µs 1.22% 5.381 35.595 0.14% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 163717122.122op/s 165683967.830op/s ± 232910.630op/s 165722012.833op/s ± 63949.281op/s 165782273.467op/s 165842153.592op/s 165900170.820op/s 165931082.288op/s 0.13% -5.345 35.171 0.14% 16469.269op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.893µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.916µs 3.918µs 3.921µs 3.926µs 0.33% -0.354 5.290 0.09% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254705220.560op/s 255529613.580op/s ± 226961.514op/s 255534187.216op/s ± 160432.465op/s 255694632.603op/s 255796769.112op/s 255873625.667op/s 256839636.506op/s 0.51% 0.373 5.368 0.09% 16048.603op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 63.834µs 64.243µs ± 0.189µs 64.227µs ± 0.114µs 64.343µs 64.566µs 64.798µs 65.053µs 1.29% 0.867 1.585 0.29% 0.013µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15371985.797op/s 15566108.243op/s ± 45710.159op/s 15569861.419op/s ± 27744.949op/s 15597199.523op/s 15632484.708op/s 15647461.362op/s 15665607.564op/s 0.61% -0.842 1.508 0.29% 3232.196op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 58.122µs 58.388µs ± 0.141µs 58.350µs ± 0.072µs 58.451µs 58.662µs 58.795µs 58.948µs 1.03% 1.086 1.149 0.24% 0.010µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 16964142.438op/s 17126941.506op/s ± 41360.498op/s 17138104.026op/s ± 21055.447op/s 17153522.532op/s 17178068.604op/s 17193653.256op/s 17205183.922op/s 0.39% -1.072 1.106 0.24% 2924.629op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.892µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.915µs 3.917µs 3.918µs 3.919µs 0.16% -1.665 12.436 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255182438.977op/s 255579499.944op/s ± 186552.022op/s 255584092.638op/s ± 126572.060op/s 255707549.781op/s 255787144.124op/s 255911808.684op/s 256939760.036op/s 0.53% 1.691 12.653 0.07% 13191.220op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.377µs 54.743µs ± 0.203µs 54.701µs ± 0.141µs 54.884µs 55.095µs 55.337µs 55.493µs 1.45% 0.870 0.723 0.37% 0.014µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 18020414.387op/s 18267570.793op/s ± 67486.375op/s 18281216.885op/s ± 47269.641op/s 18317648.031op/s 18352656.478op/s 18370409.066op/s 18390052.820op/s 0.60% -0.848 0.657 0.37% 4772.007op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 51.884µs 52.035µs ± 0.061µs 52.035µs ± 0.042µs 52.076µs 52.135µs 52.181µs 52.229µs 0.37% 0.099 0.078 0.12% 0.004µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19146399.921op/s 19217895.754op/s ± 22375.498op/s 19217726.033op/s ± 15493.146op/s 19234229.515op/s 19256766.922op/s 19265788.853op/s 19273856.940op/s 0.29% -0.091 0.072 0.12% 1582.187op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.027µs 6.038µs ± 0.010µs 6.035µs ± 0.003µs 6.039µs 6.050µs 6.081µs 6.102µs 1.11% 3.661 16.665 0.16% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 163869317.532op/s 165630472.394op/s ± 269144.465op/s 165692229.036op/s ± 73207.685op/s 165757978.001op/s 165845982.610op/s 165898644.552op/s 165907002.167op/s 0.13% -3.635 16.442 0.16% 19031.388op/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.912µs; 3.913µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ throughput [255587605.013op/s; 255634377.649op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [77.851µs; 78.024µs] or [-0.111%; +0.111%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12817438.260op/s; 12845783.845op/s] or [-0.110%; +0.110%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [70.757µs; 70.914µs] or [-0.111%; +0.111%] None None None
credit_card/is_card_number/ 378282246310005 throughput [14102492.898op/s; 14133614.779op/s] or [-0.110%; +0.110%] 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 [255539735.434op/s; 255597126.948op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/378282246310005 execution_time [68.100µs; 68.288µs] or [-0.138%; +0.138%] None None None
credit_card/is_card_number/378282246310005 throughput [14645411.507op/s; 14685580.798op/s] or [-0.137%; +0.137%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.019µs; 52.036µs] or [-0.016%; +0.016%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19217646.275op/s; 19223948.869op/s] or [-0.016%; +0.016%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.034µs; 6.037µs] or [-0.020%; +0.020%] None None None
credit_card/is_card_number/x371413321323331 throughput [165651688.656op/s; 165716247.003op/s] or [-0.019%; +0.019%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.913µs; 3.914µs] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/ throughput [255498158.897op/s; 255561068.263op/s] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [64.216µs; 64.269µs] or [-0.041%; +0.041%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15559773.255op/s; 15572443.232op/s] or [-0.041%; +0.041%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [58.368µs; 58.407µs] or [-0.034%; +0.034%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17121209.339op/s; 17132673.674op/s] or [-0.033%; +0.033%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.912µs; 3.913µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255553645.628op/s; 255605354.260op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.714µs; 54.771µs] or [-0.051%; +0.051%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18258217.830op/s; 18276923.755op/s] or [-0.051%; +0.051%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.027µs; 52.043µs] or [-0.016%; +0.016%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19214794.725op/s; 19220996.783op/s] or [-0.016%; +0.016%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.036µs; 6.039µs] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [165593171.559op/s; 165667773.228op/s] or [-0.023%; +0.023%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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.431µs 2.449µs ± 0.008µs 2.448µs ± 0.005µs 2.453µs 2.468µs 2.475µs 2.484µs 1.45% 1.043 2.144 0.34% 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.448µs; 2.450µs] or [-0.048%; +0.048%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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.512µs 25.353µs ± 9.764µs 17.915µs ± 0.214µs 34.066µs 43.798µs 44.835µs 67.982µs 279.47% 0.970 0.390 38.41% 0.690µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [24.000µs; 26.706µs] or [-5.337%; +5.337%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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.620ms 10.644ms ± 0.013ms 10.642ms ± 0.006ms 10.648ms 10.671ms 10.692ms 10.706ms 0.60% 1.632 3.995 0.12% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
concentrator/add_spans_to_concentrator execution_time [10.642ms; 10.646ms] or [-0.017%; +0.017%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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 50.764ms 51.223ms ± 0.997ms 51.118ms ± 0.123ms 51.222ms 51.391ms 54.512ms 60.962ms 19.26% 8.255 72.646 1.94% 0.071ms 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 [51.085ms; 51.361ms] or [-0.270%; +0.270%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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.395µs 162.990µs ± 0.364µs 162.940µs ± 0.136µs 163.119µs 163.413µs 163.991µs 166.178µs 1.99% 3.294 30.126 0.22% 0.026µ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.939µs; 163.040µs] or [-0.031%; +0.031%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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 187.050ns 189.758ns ± 2.090ns 189.259ns ± 1.548ns 190.981ns 193.785ns 195.254ns 196.087ns 3.61% 0.796 -0.156 1.10% 0.148ns 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 [189.468ns; 190.047ns] or [-0.153%; +0.153%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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.491µs 34.124µs ± 0.828µs 33.620µs ± 0.061µs 35.137µs 35.640µs 35.710µs 37.745µs 12.27% 1.196 0.486 2.42% 0.059µ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.009µs; 34.238µs] or [-0.336%; +0.336%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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.204ms 4.211ms ± 0.007ms 4.210ms ± 0.002ms 4.212ms 4.215ms 4.217ms 4.304ms 2.23% 11.279 144.913 0.17% 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.210ms; 4.212ms] 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 468316b 1771365858 dsn/hickory-dns
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.017µs 5.091µs ± 0.051µs 5.064µs ± 0.040µs 5.145µs 5.160µs 5.163µs 5.164µs 1.96% 0.130 -1.683 1.00% 0.004µ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.084µs; 5.098µs] or [-0.138%; +0.138%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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.242µs 495.991µs ± 0.423µs 495.924µs ± 0.306µs 496.317µs 496.666µs 497.061µs 497.252µs 0.27% 0.446 -0.253 0.09% 0.030µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 2011053.195op/s 2016165.058op/s ± 1719.580op/s 2016438.567op/s ± 1246.103op/s 2017477.124op/s 2018774.581op/s 2019072.095op/s 2019216.434op/s 0.14% -0.442 -0.260 0.09% 121.593op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 370.836µs 371.569µs ± 0.354µs 371.545µs ± 0.191µs 371.719µs 372.111µs 372.274µs 374.515µs 0.80% 3.062 22.549 0.10% 0.025µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2670116.922op/s 2691289.568op/s ± 2556.277op/s 2691463.392op/s ± 1382.971op/s 2692931.491op/s 2694135.921op/s 2695971.253op/s 2696611.719op/s 0.19% -3.019 22.091 0.09% 180.756op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 167.553µs 168.031µs ± 0.157µs 168.014µs ± 0.098µs 168.123µs 168.289µs 168.440µs 168.651µs 0.38% 0.517 1.243 0.09% 0.011µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5929415.957op/s 5951305.398op/s ± 5564.116op/s 5951871.369op/s ± 3485.613op/s 5954964.405op/s 5959560.185op/s 5962599.103op/s 5968269.073op/s 0.28% -0.509 1.229 0.09% 393.442op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.629µs 36.778µs ± 0.064µs 36.777µs ± 0.041µs 36.816µs 36.882µs 36.933µs 37.142µs 0.99% 0.969 4.082 0.17% 0.005µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26923715.097op/s 27190063.002op/s ± 47534.228op/s 27190591.423op/s ± 30390.213op/s 27223963.359op/s 27257384.480op/s 27282689.932op/s 27300651.279op/s 0.40% -0.942 3.931 0.17% 3361.177op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.394µs 45.503µs ± 0.111µs 45.496µs ± 0.027µs 45.522µs 45.578µs 45.622µs 46.917µs 3.12% 10.551 132.503 0.24% 0.008µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21314357.902op/s 21976829.970op/s ± 52050.680op/s 21980123.115op/s ± 13026.262op/s 21993859.220op/s 22013976.583op/s 22021557.915op/s 22029139.577op/s 0.22% -10.382 129.630 0.24% 3680.539op/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 [495.933µs; 496.050µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [2015926.741op/s; 2016403.375op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [371.520µs; 371.618µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2690935.292op/s; 2691643.843op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [168.009µs; 168.052µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5950534.265op/s; 5952076.531op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.769µs; 36.787µs] or [-0.024%; +0.024%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27183475.215op/s; 27196650.789op/s] or [-0.024%; +0.024%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.487µs; 45.518µs] or [-0.034%; +0.034%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21969616.247op/s; 21984043.694op/s] or [-0.033%; +0.033%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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.089ns 255.291ns ± 13.926ns 249.035ns ± 2.623ns 260.091ns 286.319ns 299.241ns 300.663ns 20.73% 1.839 2.314 5.44% 0.985ns 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.361ns; 257.221ns] or [-0.756%; +0.756%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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 735.307µs 736.536µs ± 0.572µs 736.520µs ± 0.346µs 736.865µs 737.376µs 737.971µs 740.336µs 0.52% 1.592 8.702 0.08% 0.040µ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 [736.457µs; 736.615µs] or [-0.011%; +0.011%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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.173µs 3.172µs ± 1.450µs 2.992µs ± 0.025µs 3.017µs 3.432µs 13.889µs 15.387µs 414.32% 7.514 57.080 45.62% 0.103µ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.971µs; 3.373µs] or [-6.338%; +6.338%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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 9.650ms 9.924ms ± 0.062ms 9.926ms ± 0.034ms 9.962ms 10.013ms 10.043ms 10.085ms 1.60% -1.171 3.637 0.62% 0.004ms 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 [9.915ms; 9.933ms] or [-0.087%; +0.087%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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.257µs 185.797µs ± 0.398µs 185.716µs ± 0.210µs 185.940µs 186.818µs 187.085µs 187.339µs 0.87% 1.645 2.977 0.21% 0.028µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5337910.414op/s 5382250.307op/s ± 11494.831op/s 5384570.392op/s ± 6086.841op/s 5390106.972op/s 5395279.305op/s 5396817.413op/s 5397899.407op/s 0.25% -1.631 2.926 0.21% 812.807op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.840µs 17.939µs ± 0.061µs 17.933µs ± 0.034µs 17.968µs 18.038µs 18.068µs 18.450µs 2.88% 3.110 22.594 0.34% 0.004µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 54201381.361op/s 55745066.074op/s ± 188485.078op/s 55764032.867op/s ± 106932.974op/s 55866505.343op/s 55987227.104op/s 56033014.948op/s 56054603.779op/s 0.52% -2.962 20.998 0.34% 13327.908op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 9.826µs 9.875µs ± 0.050µs 9.867µs ± 0.014µs 9.887µs 9.912µs 9.960µs 10.469µs 6.10% 8.755 99.463 0.50% 0.004µs 1 200
normalization/normalize_name/normalize_name/good throughput 95520936.453op/s 101272056.290op/s ± 490915.067op/s 101349756.144op/s ± 145804.057op/s 101438603.073op/s 101707577.770op/s 101736674.337op/s 101769242.868op/s 0.41% -8.385 93.422 0.48% 34712.937op/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.742µs; 185.852µs] or [-0.030%; +0.030%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5380657.235op/s; 5383843.380op/s] or [-0.030%; +0.030%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [17.931µs; 17.948µs] or [-0.047%; +0.047%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [55718943.855op/s; 55771188.293op/s] or [-0.047%; +0.047%] None None None
normalization/normalize_name/normalize_name/good execution_time [9.868µs; 9.882µs] or [-0.070%; +0.070%] None None None
normalization/normalize_name/normalize_name/good throughput [101204020.183op/s; 101340092.397op/s] or [-0.067%; +0.067%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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 84.732µs 85.171µs ± 0.153µs 85.149µs ± 0.042µs 85.191µs 85.357µs 85.763µs 86.700µs 1.82% 5.656 50.139 0.18% 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 [85.150µs; 85.192µs] or [-0.025%; +0.025%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 468316b 1771365858 dsn/hickory-dns
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.020µs 145.815µs ± 1.649µs 145.604µs ± 0.486µs 146.053µs 147.434µs 152.919µs 161.434µs 10.87% 5.563 43.369 1.13% 0.117µ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.586µs; 146.043µs] or [-0.157%; +0.157%] None None None

Baseline

Omitted due to size.

@danielsn danielsn requested a review from a team as a code owner February 11, 2026 22:10
@dd-octo-sts
Copy link

dd-octo-sts bot commented Feb 11, 2026

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.38 MB 9.01 MB +7.49% (+643.71 KB) 🚨
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 91.60 MB 98.06 MB +7.04% (+6.45 MB) 🚨
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 10.76 MB 11.58 MB +7.63% (+841.55 KB) 🚨
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 106.31 MB 113.69 MB +6.93% (+7.37 MB) 🚨
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 25.01 MB 27.73 MB +10.88% (+2.72 MB) 🚨
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 75.94 KB 75.94 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 166.61 MB 186.33 MB +11.83% (+19.71 MB) 🚨
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 838.60 MB 919.87 MB +9.69% (+81.26 MB) 🚨
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.57 MB 10.33 MB +7.96% (+780.50 KB) 🚨
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 75.94 KB 75.94 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 23.02 MB 24.98 MB +8.51% (+1.96 MB) 🚨
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 48.42 MB 52.29 MB +7.98% (+3.86 MB) 🚨
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 21.09 MB 23.49 MB +11.36% (+2.39 MB) 🚨
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 77.12 KB 77.12 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 170.37 MB 190.78 MB +11.98% (+20.41 MB) 🚨
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 824.57 MB 905.27 MB +9.78% (+80.69 MB) 🚨
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 7.24 MB 7.84 MB +8.25% (+612.00 KB) 🚨
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 77.12 KB 77.12 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 24.62 MB 26.76 MB +8.69% (+2.14 MB) 🚨
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 44.15 MB 47.82 MB +8.30% (+3.66 MB) 🚨
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 80.15 MB 86.17 MB +7.52% (+6.02 MB) 🚨
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 9.87 MB 10.53 MB +6.68% (+675.71 KB) 🚨
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 100.25 MB 106.78 MB +6.51% (+6.53 MB) 🚨
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.44 MB 12.28 MB +7.30% (+856.50 KB) 🚨

@danielsn danielsn requested a review from a team as a code owner February 12, 2026 00:23
Copy link
Member

@ivoanjo ivoanjo left a comment

Choose a reason for hiding this comment

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

Nice, this was way easier than I was expecting! I've left you a question in PM, otherwise happy to approve :)

@danielsn danielsn changed the title chore(deps): switch DNS resolver for reqwest to hickory-dns feat: enable non-blocking DNS for reqwest Feb 12, 2026
@github-actions
Copy link

Clippy Allow Annotation Report

Comparing clippy allow annotations between branches:

  • Base Branch: origin/main
  • PR Branch: origin/dsn/hickory-dns

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

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