Skip to content

Comments

WIP: V1 with TraceProjection#1605

Draft
bwoebi wants to merge 26 commits intomainfrom
bob/traceproj
Draft

WIP: V1 with TraceProjection#1605
bwoebi wants to merge 26 commits intomainfrom
bob/traceproj

Conversation

@bwoebi
Copy link
Contributor

@bwoebi bwoebi commented Feb 18, 2026

Adds a TraceProjector.

Adds v1 encoding and decoding. (tests pending)

WIP.

bwoebi added 21 commits January 23, 2026 13:18
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
@github-actions
Copy link

github-actions bot commented Feb 18, 2026

📚 Documentation Check Results

⚠️ 2911 documentation warning(s) found

📦 libdd-data-pipeline - 1173 warning(s)

📦 libdd-tinybytes - 7 warning(s)

📦 libdd-trace-stats - 869 warning(s)

📦 libdd-trace-utils - 862 warning(s)


Updated: 2026-02-21 01:00:45 UTC | Commit: 04de437 | missing-docs job results

@github-actions
Copy link

github-actions bot commented Feb 18, 2026

Clippy Allow Annotation Report

Comparing clippy allow annotations between branches:

  • Base Branch: origin/main
  • PR Branch: origin/bob/traceproj

Summary by Rule

Rule Base Branch PR Branch Change
expect_used 5 7 ⚠️ +2 (+40.0%)
panic 1 1 No change (0%)
todo 2 2 No change (0%)
unimplemented 1 1 No change (0%)
unwrap_used 6 6 No change (0%)
Total 15 17 ⚠️ +2 (+13.3%)

Annotation Counts by File

File Base Branch PR Branch Change
libdd-tinybytes/src/bytes_string.rs 1 1 No change (0%)
libdd-tinybytes/src/lib.rs 3 3 No change (0%)
libdd-trace-utils/src/msgpack_decoder/decode/number.rs 1 1 No change (0%)
libdd-trace-utils/src/msgpack_encoder/v04/mod.rs 2 2 No change (0%)
libdd-trace-utils/src/msgpack_encoder/v1/mod.rs 0 2 ⚠️ +2 (N/A)
libdd-trace-utils/src/send_data/mod.rs 5 5 No change (0%)
libdd-trace-utils/src/trace_utils.rs 2 2 No change (0%)
libdd-trace-utils/src/tracer_payload.rs 1 1 No change (0%)

Annotation Stats by Crate

Crate Base Branch PR Branch Change
clippy-annotation-reporter 5 0 ✅ -5 (-100.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 60 ⚠️ +1 (+1.7%)
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 17 ⚠️ +2 (+13.3%)
Total 219 217 ✅ -2 (-0.9%)

About This Report

This report tracks Clippy allow annotations for specific rules, showing how they've changed in this PR. Decreasing the number of these annotations generally improves code quality.

@github-actions
Copy link

github-actions bot commented Feb 18, 2026

🔒 Cargo Deny Results

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

📦 libdd-data-pipeline - 2 error(s)

Show output
error[vulnerability]: Integer overflow in `BytesMut::reserve`
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:50:1
   │
50 │ 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
     │       │   ├── (dev) libdd-data-pipeline v1.0.0
     │       │   └── libdd-trace-utils v1.0.0
     │       │       ├── libdd-data-pipeline v1.0.0 (*)
     │       │       ├── libdd-trace-stats v1.0.0
     │       │       │   └── libdd-data-pipeline v1.0.0 (*)
     │       │       └── (dev) libdd-trace-utils v1.0.0 (*)
     │       ├── hyper-rustls v0.27.3
     │       │   └── libdd-common v1.1.0
     │       │       ├── libdd-data-pipeline v1.0.0 (*)
     │       │       ├── libdd-dogstatsd-client v1.0.0
     │       │       │   └── libdd-data-pipeline v1.0.0 (*)
     │       │       ├── libdd-telemetry v2.0.0
     │       │       │   └── libdd-data-pipeline 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-data-pipeline v1.0.0 (*)
     │   │   │   ├── libdd-telemetry v2.0.0 (*)
     │   │   │   └── libdd-trace-utils v1.0.0 (*)
     │   │   ├── hyper v1.6.0 (*)
     │   │   ├── hyper-util v0.1.17 (*)
     │   │   ├── libdd-common v1.1.0 (*)
     │   │   └── libdd-trace-utils v1.0.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-data-pipeline v1.0.0 (*)
     │   ├── libdd-dogstatsd-client v1.0.0 (*)
     │   ├── libdd-telemetry v2.0.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-data-pipeline v1.0.0 (*)
     ├── libdd-trace-utils v1.0.0 (*)
     ├── multer v3.1.0 (*)
     ├── prost v0.14.3
     │   ├── libdd-ddsketch v1.0.0
     │   │   ├── libdd-data-pipeline v1.0.0 (*)
     │   │   ├── libdd-telemetry v2.0.0 (*)
     │   │   └── libdd-trace-stats v1.0.0 (*)
     │   ├── libdd-trace-protobuf v1.0.0
     │   │   ├── libdd-data-pipeline v1.0.0 (*)
     │   │   ├── libdd-trace-normalization v1.0.0
     │   │   │   └── libdd-trace-utils v1.0.0 (*)
     │   │   ├── libdd-trace-stats 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-data-pipeline v1.0.0 (*)
     │   ├── (dev) libdd-dogstatsd-client v1.0.0 (*)
     │   ├── (dev) libdd-telemetry v2.0.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 (*)
     │       ├── libdd-data-pipeline v1.0.0 (*)
     │       └── libdd-telemetry v2.0.0 (*)
     └── tokio-util v0.7.12 (*)

error[vulnerability]: Denial of Service via Stack Exhaustion
    ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:293:1
    │
293 │ time 0.3.41 registry+https://github.com/rust-lang/crates.io-index
    │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
    │
    ├ ID: RUSTSEC-2026-0009
    ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2026-0009
    ├ ## Impact
      
      When user-provided input is provided to any type that parses with the RFC 2822 format, a denial of
      service attack via stack exhaustion is possible. The attack relies on formally deprecated and
      rarely-used features that are part of the RFC 2822 format used in a malicious manner. Ordinary,
      non-malicious input will never encounter this scenario.
      
      ## Patches
      
      A limit to the depth of recursion was added in v0.3.47. From this version, an error will be returned
      rather than exhausting the stack.
      
      ## Workarounds
      
      Limiting the length of user input is the simplest way to avoid stack exhaustion, as the amount of
      the stack consumed would be at most a factor of the length of the input.
    ├ Announcement: https://github.com/time-rs/time/blob/main/CHANGELOG.md#0347-2026-02-05
    ├ Solution: Upgrade to >=0.3.47 (try `cargo update -p time`)
    ├ time v0.3.41
      └── tracing-appender v0.2.3
          └── libdd-log v1.0.0
              └── (dev) libdd-data-pipeline v1.0.0

advisories FAILED, bans ok, sources ok

📦 libdd-tinybytes - ✅ No issues

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

Show output
error[vulnerability]: Integer overflow in `BytesMut::reserve`
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:43:1
   │
43 │ 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
     │       │       ├── libdd-trace-stats v1.0.0
     │       │       └── (dev) libdd-trace-utils v1.0.0 (*)
     │       ├── hyper-rustls v0.27.3
     │       │   └── libdd-common v1.1.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 (*)
     │   │   └── libdd-trace-utils v1.0.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-ddsketch v1.0.0
     │   │   └── libdd-trace-stats v1.0.0 (*)
     │   ├── libdd-trace-protobuf v1.0.0
     │   │   ├── libdd-trace-normalization v1.0.0
     │   │   │   └── libdd-trace-utils v1.0.0 (*)
     │   │   ├── libdd-trace-stats 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

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

Show output
error[vulnerability]: Integer overflow in `BytesMut::reserve`
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:43:1
   │
43 │ 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-utils v1.0.0 (*)
     │       ├── hyper-rustls v0.27.3
     │       │   └── libdd-common v1.1.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 (*)
     │   │   └── libdd-trace-utils v1.0.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-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-21 01:00:13 UTC | Commit: 04de437 | dependency-check job results

Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
@pr-commenter
Copy link

pr-commenter bot commented Feb 21, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-02-21 01:16:00

Comparing candidate commit 50b3bbb in PR branch bob/traceproj with baseline commit c8121f4 in branch main.

Found 6 performance improvements and 25 performance regressions! Performance is the same for 26 metrics, 2 unstable metrics.

scenario:benching serializing traces from their internal representation to msgpack

  • 🟥 execution_time [+870.210µs; +881.961µs] or [+6.232%; +6.316%]

scenario:credit_card/is_card_number/ 378282246310005

  • 🟥 execution_time [+3.440µs; +3.548µs] or [+4.795%; +4.946%]
  • 🟥 throughput [-657278.881op/s; -637531.214op/s] or [-4.715%; -4.573%]

scenario:credit_card/is_card_number/378282246310005

  • 🟥 execution_time [+3.856µs; +3.960µs] or [+5.615%; +5.767%]
  • 🟥 throughput [-794863.083op/s; -773668.201op/s] or [-5.458%; -5.312%]

scenario:credit_card/is_card_number/37828224631000521389798

  • 🟥 execution_time [+6.485µs; +6.517µs] or [+14.192%; +14.262%]
  • 🟥 throughput [-2733395.567op/s; -2718193.899op/s] or [-12.490%; -12.421%]

scenario:credit_card/is_card_number/x371413321323331

  • 🟩 execution_time [-867.893ns; -848.057ns] or [-13.106%; -12.807%]
  • 🟩 throughput [+22209826.749op/s; +22793603.613op/s] or [+14.707%; +15.094%]

scenario:credit_card/is_card_number_no_luhn/ 378282246310005

  • 🟥 execution_time [+4.200µs; +4.240µs] or [+7.862%; +7.938%]
  • 🟥 throughput [-1376509.732op/s; -1364243.234op/s] or [-7.354%; -7.288%]

scenario:credit_card/is_card_number_no_luhn/378282246310005

  • 🟥 execution_time [+4.626µs; +4.673µs] or [+9.212%; +9.306%]
  • 🟥 throughput [-1695384.569op/s; -1679709.408op/s] or [-8.513%; -8.434%]

scenario:credit_card/is_card_number_no_luhn/37828224631000521389798

  • 🟥 execution_time [+6.496µs; +6.525µs] or [+14.215%; +14.280%]
  • 🟥 throughput [-2736040.228op/s; -2722350.413op/s] or [-12.502%; -12.440%]

scenario:credit_card/is_card_number_no_luhn/x371413321323331

  • 🟩 execution_time [-871.812ns; -853.322ns] or [-13.166%; -12.886%]
  • 🟩 throughput [+22365186.409op/s; +22908450.204op/s] or [+14.810%; +15.170%]

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

  • 🟥 execution_time [+19.615µs; +19.776µs] or [+10.544%; +10.630%]
  • 🟥 throughput [-516673.261op/s; -512515.311op/s] or [-9.612%; -9.535%]

scenario:normalization/normalize_name/normalize_name/bad-name

  • 🟥 execution_time [+896.332ns; +922.567ns] or [+5.021%; +5.168%]
  • 🟥 throughput [-2752988.157op/s; -2676617.350op/s] or [-4.915%; -4.778%]

scenario:normalization/normalize_name/normalize_name/good

  • 🟥 execution_time [+978.859ns; +992.249ns] or [+9.905%; +10.041%]
  • 🟥 throughput [-9240170.117op/s; -9114785.865op/s] or [-9.131%; -9.007%]

scenario:normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...

  • 🟥 execution_time [+41.644µs; +42.052µs] or [+8.411%; +8.494%]
  • 🟥 throughput [-158120.214op/s; -156686.303op/s] or [-7.829%; -7.758%]

scenario:normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters

  • 🟥 execution_time [+21.984µs; +22.046µs] or [+13.086%; +13.123%]
  • 🟥 throughput [-690630.025op/s; -688689.492op/s] or [-11.602%; -11.570%]

scenario:profile_add_sample2_frames_x1000

  • 🟩 execution_time [-200.375µs; -200.137µs] or [-27.145%; -27.113%]

scenario:profile_add_sample_frames_x1000

  • 🟩 execution_time [-242.734µs; -240.057µs] or [-5.820%; -5.756%]

scenario:redis/obfuscate_redis_string

  • 🟥 execution_time [+1.438µs; +1.835µs] or [+4.278%; +5.459%]

scenario:sql/obfuscate_sql_string

  • 🟥 execution_time [+3.794µs; +3.860µs] or [+4.431%; +4.507%]

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 50b3bbb 1771635554 bob/traceproj
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sql/obfuscate_sql_string execution_time 89.288µs 89.465µs ± 0.154µs 89.454µs ± 0.040µs 89.487µs 89.570µs 89.843µs 91.340µs 2.11% 9.247 108.499 0.17% 0.011µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sql/obfuscate_sql_string execution_time [89.443µs; 89.486µs] or [-0.024%; +0.024%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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.288µs 2.359µs ± 0.019µs 2.359µs ± 0.005µs 2.366µs 2.389µs 2.394µs 2.395µs 1.52% -1.595 4.276 0.79% 0.001µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
tags/replace_trace_tags execution_time [2.357µs; 2.362µs] or [-0.110%; +0.110%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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 537.316µs 537.909µs ± 0.328µs 537.854µs ± 0.176µs 538.057µs 538.417µs 538.840µs 540.222µs 0.44% 2.402 12.207 0.06% 0.023µ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 [537.863µs; 537.954µs] or [-0.008%; +0.008%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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 242.797ns 253.310ns ± 12.803ns 246.877ns ± 2.618ns 253.917ns 279.102ns 288.861ns 291.483ns 18.07% 1.443 0.707 5.04% 0.905ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_trace/test_trace execution_time [251.536ns; 255.085ns] or [-0.700%; +0.700%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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.186µs 3.196µs ± 1.621µs 2.957µs ± 0.028µs 2.985µs 3.623µs 14.270µs 18.716µs 532.87% 7.757 62.722 50.58% 0.115µ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.972µs; 3.421µs] or [-7.027%; +7.027%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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.823ms 10.856ms ± 0.016ms 10.854ms ± 0.007ms 10.863ms 10.877ms 10.891ms 10.967ms 1.05% 2.847 16.998 0.14% 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.853ms; 10.858ms] or [-0.020%; +0.020%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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.894µs 3.912µs ± 0.002µs 3.912µs ± 0.001µs 3.913µs 3.916µs 3.917µs 3.922µs 0.27% -1.166 12.946 0.06% 0.000µs 1 200
credit_card/is_card_number/ throughput 254941167.615op/s 255629718.998op/s ± 161645.660op/s 255641394.210op/s ± 80163.297op/s 255714761.136op/s 255846452.917op/s 255916268.697op/s 256783420.608op/s 0.45% 1.192 13.109 0.06% 11430.074op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 79.080µs 81.696µs ± 0.990µs 81.694µs ± 0.750µs 82.455µs 83.175µs 83.551µs 84.344µs 3.24% -0.105 -0.402 1.21% 0.070µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 11856217.053op/s 12242323.308op/s ± 148595.364op/s 12240865.619op/s ± 111996.680op/s 12348670.572op/s 12487720.232op/s 12574568.106op/s 12645375.555op/s 3.30% 0.163 -0.374 1.21% 10507.279op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 74.429µs 75.225µs ± 0.303µs 75.181µs ± 0.217µs 75.430µs 75.789µs 76.064µs 76.229µs 1.39% 0.463 0.098 0.40% 0.021µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13118444.661op/s 13293657.363op/s ± 53456.961op/s 13301162.522op/s ± 38475.291op/s 13332708.467op/s 13367029.250op/s 13398868.186op/s 13435545.848op/s 1.01% -0.441 0.066 0.40% 3779.978op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.895µs 3.913µs ± 0.002µs 3.913µs ± 0.001µs 3.914µs 3.916µs 3.917µs 3.918µs 0.12% -3.484 27.489 0.05% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255244414.245op/s 255550251.002op/s ± 139002.279op/s 255550388.031op/s ± 54923.585op/s 255593130.126op/s 255749438.977op/s 255931323.022op/s 256761915.932op/s 0.47% 3.512 27.801 0.05% 9828.945op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 71.939µs 72.574µs ± 0.244µs 72.581µs ± 0.180µs 72.733µs 72.957µs 73.130µs 73.255µs 0.93% 0.144 -0.215 0.34% 0.017µs 1 200
credit_card/is_card_number/378282246310005 throughput 13650933.262op/s 13779231.294op/s ± 46282.494op/s 13777664.672op/s ± 34079.826op/s 13813873.263op/s 13849570.053op/s 13875298.939op/s 13900631.089op/s 0.89% -0.126 -0.219 0.34% 3272.667op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 52.161µs 52.196µs ± 0.017µs 52.192µs ± 0.010µs 52.204µs 52.234µs 52.250µs 52.251µs 0.11% 1.039 0.938 0.03% 0.001µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19138351.542op/s 19158712.494op/s ± 6388.624op/s 19160046.513op/s ± 3586.660op/s 19163268.326op/s 19166473.717op/s 19168964.526op/s 19171386.705op/s 0.06% -1.037 0.933 0.03% 451.744op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 5.692µs 5.764µs ± 0.070µs 5.740µs ± 0.041µs 5.818µs 5.899µs 5.932µs 6.033µs 5.12% 0.959 0.243 1.20% 0.005µs 1 200
credit_card/is_card_number/x371413321323331 throughput 165743317.126op/s 173513512.141op/s ± 2071004.446op/s 174225400.458op/s ± 1263014.418op/s 175384328.280op/s 175598655.608op/s 175669148.118op/s 175675009.149op/s 0.83% -0.913 0.076 1.19% 146442.129op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.890µs 3.912µs ± 0.003µs 3.911µs ± 0.001µs 3.913µs 3.916µs 3.920µs 3.923µs 0.29% -1.387 13.839 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254920275.354op/s 255651175.996op/s ± 192132.761op/s 255658429.941op/s ± 94364.468op/s 255746354.031op/s 255902055.150op/s 255965351.602op/s 257057443.241op/s 0.55% 1.419 14.060 0.07% 13585.838op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.019µs 64.373µs ± 0.108µs 64.361µs ± 0.056µs 64.421µs 64.551µs 64.814µs 64.943µs 0.91% 1.713 6.518 0.17% 0.008µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15398022.598op/s 15534540.065op/s ± 25956.221op/s 15537474.098op/s ± 13461.051op/s 15549988.129op/s 15565114.764op/s 15573971.346op/s 15620450.294op/s 0.53% -1.685 6.400 0.17% 1835.382op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 57.413µs 57.642µs ± 0.143µs 57.611µs ± 0.079µs 57.713µs 57.918µs 58.058µs 58.166µs 0.96% 1.064 1.150 0.25% 0.010µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 17192131.655op/s 17348668.533op/s ± 42790.580op/s 17357845.606op/s ± 23871.435op/s 17377757.786op/s 17403411.940op/s 17415321.321op/s 17417621.408op/s 0.34% -1.050 1.105 0.25% 3025.751op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.893µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.916µs 3.918µs 3.920µs 0.20% -1.762 13.502 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255094731.001op/s 255606211.489op/s ± 168030.264op/s 255596909.570op/s ± 99235.605op/s 255700379.603op/s 255841714.990op/s 255905481.474op/s 256845433.434op/s 0.49% 1.787 13.702 0.07% 11881.534op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.578µs 54.862µs ± 0.166µs 54.828µs ± 0.094µs 54.940µs 55.178µs 55.366µs 55.687µs 1.57% 1.342 2.943 0.30% 0.012µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17957528.385op/s 18227717.166op/s ± 54972.860op/s 18238700.643op/s ± 31408.459op/s 18267766.988op/s 18292361.936op/s 18308245.412op/s 18322384.457op/s 0.46% -1.314 2.802 0.30% 3887.168op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 52.134µs 52.206µs ± 0.038µs 52.200µs ± 0.021µs 52.224µs 52.262µs 52.317µs 52.469µs 0.51% 2.023 10.541 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19058827.453op/s 19154935.545op/s ± 14013.578op/s 19156931.388op/s ± 7881.601op/s 19164164.451op/s 19173354.506op/s 19176378.045op/s 19181489.862op/s 0.13% -2.004 10.388 0.07% 990.910op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 5.692µs 5.759µs ± 0.064µs 5.742µs ± 0.045µs 5.799µs 5.893µs 5.926µs 5.988µs 4.28% 0.890 0.140 1.11% 0.005µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 167005068.274op/s 173651021.178op/s ± 1913416.559op/s 174156834.114op/s ± 1362278.058op/s 175462335.368op/s 175596824.479op/s 175631035.034op/s 175686747.676op/s 0.88% -0.846 0.002 1.10% 135298.982op/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.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ throughput [255607316.464op/s; 255652121.532op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [81.559µs; 81.833µs] or [-0.168%; +0.168%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12221729.420op/s; 12262917.196op/s] or [-0.168%; +0.168%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [75.183µs; 75.267µs] or [-0.056%; +0.056%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13286248.742op/s; 13301065.983op/s] or [-0.056%; +0.056%] None None None
credit_card/is_card_number/37828224631 execution_time [3.913µs; 3.913µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/37828224631 throughput [255530986.623op/s; 255569515.381op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/378282246310005 execution_time [72.540µs; 72.608µs] or [-0.047%; +0.047%] None None None
credit_card/is_card_number/378282246310005 throughput [13772816.986op/s; 13785645.603op/s] or [-0.047%; +0.047%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.193µs; 52.198µs] or [-0.005%; +0.005%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19157827.092op/s; 19159597.896op/s] or [-0.005%; +0.005%] None None None
credit_card/is_card_number/x371413321323331 execution_time [5.754µs; 5.774µs] or [-0.167%; +0.167%] None None None
credit_card/is_card_number/x371413321323331 throughput [173226490.843op/s; 173800533.439op/s] or [-0.165%; +0.165%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.911µs; 3.912µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ throughput [255624548.243op/s; 255677803.749op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [64.358µs; 64.388µs] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15530942.783op/s; 15538137.348op/s] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [57.622µs; 57.661µs] or [-0.034%; +0.034%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17342738.171op/s; 17354598.896op/s] or [-0.034%; +0.034%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.912µs; 3.913µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255582924.110op/s; 255629498.867op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.839µs; 54.885µs] or [-0.042%; +0.042%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18220098.456op/s; 18235335.876op/s] or [-0.042%; +0.042%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.201µs; 52.211µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19152993.398op/s; 19156877.692op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [5.750µs; 5.768µs] or [-0.154%; +0.154%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [173385840.046op/s; 173916202.311op/s] or [-0.153%; +0.153%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
single_flag_killswitch/rules-based execution_time 188.224ns 191.264ns ± 2.603ns 190.732ns ± 1.632ns 192.370ns 195.724ns 199.362ns 207.695ns 8.89% 1.897 7.347 1.36% 0.184ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
single_flag_killswitch/rules-based execution_time [190.904ns; 191.625ns] or [-0.189%; +0.189%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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 34.830µs 35.255µs ± 0.663µs 34.942µs ± 0.071µs 35.125µs 36.560µs 36.601µs 39.071µs 11.82% 2.128 5.059 1.88% 0.047µ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 [35.163µs; 35.347µs] or [-0.261%; +0.261%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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.994µs 145.861µs ± 1.668µs 145.594µs ± 0.550µs 146.175µs 147.267µs 153.389µs 161.442µs 10.89% 5.543 42.680 1.14% 0.118µ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.630µs; 146.093µs] or [-0.158%; +0.158%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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.078µs ± 0.042µs 5.076µs ± 0.039µs 5.112µs 5.147µs 5.150µs 5.152µs 1.50% 0.138 -1.198 0.82% 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.073µs; 5.084µs] or [-0.113%; +0.113%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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 12.659ms 13.038ms ± 0.073ms 13.042ms ± 0.037ms 13.078ms 13.144ms 13.169ms 13.300ms 1.98% -0.915 4.555 0.56% 0.005ms 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 [13.028ms; 13.048ms] or [-0.078%; +0.078%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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.795ms 14.840ms ± 0.031ms 14.836ms ± 0.012ms 14.847ms 14.880ms 14.947ms 15.063ms 1.52% 3.707 20.565 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.836ms; 14.844ms] or [-0.029%; +0.029%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching deserializing traces from msgpack to their internal representation execution_time 49.324ms 50.127ms ± 1.303ms 49.988ms ± 0.079ms 50.073ms 50.229ms 55.940ms 65.196ms 30.42% 9.406 96.612 2.59% 0.092ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching deserializing traces from msgpack to their internal representation execution_time [49.946ms; 50.307ms] or [-0.360%; +0.360%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time 205.031µs 205.731µs ± 0.443µs 205.632µs ± 0.285µs 206.014µs 206.576µs 206.864µs 207.399µs 0.86% 0.835 0.456 0.21% 0.031µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4821627.161op/s 4860727.921op/s ± 10438.122op/s 4863068.161op/s ± 6721.838op/s 4868581.844op/s 4873851.935op/s 4876812.327op/s 4877311.236op/s 0.29% -0.824 0.424 0.21% 738.087op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.625µs 18.761µs ± 0.082µs 18.747µs ± 0.052µs 18.805µs 18.909µs 19.008µs 19.080µs 1.77% 0.857 0.863 0.44% 0.006µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 52412216.257op/s 53302503.841op/s ± 232085.063op/s 53341491.093op/s ± 149122.050op/s 53462105.662op/s 53619398.785op/s 53651911.427op/s 53692112.904op/s 0.66% -0.829 0.779 0.43% 16410.892op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.801µs 10.868µs ± 0.030µs 10.866µs ± 0.019µs 10.884µs 10.928µs 10.945µs 10.962µs 0.88% 0.505 0.267 0.28% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 91221942.289op/s 92016411.381op/s ± 256651.525op/s 92028440.302op/s ± 157369.706op/s 92185388.340op/s 92411952.334op/s 92496880.644op/s 92580355.862op/s 0.60% -0.488 0.243 0.28% 18148.003op/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 [205.670µs; 205.793µ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 [4859281.297op/s; 4862174.544op/s] or [-0.030%; +0.030%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.750µs; 18.773µs] or [-0.061%; +0.061%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53270339.083op/s; 53334668.598op/s] or [-0.060%; +0.060%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.864µs; 10.872µs] or [-0.039%; +0.039%] None None None
normalization/normalize_name/normalize_name/good throughput [91980841.948op/s; 92051980.814op/s] or [-0.039%; +0.039%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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 3.922ms 3.929ms ± 0.007ms 3.929ms ± 0.002ms 3.930ms 3.934ms 3.936ms 4.018ms 2.28% 10.509 131.706 0.18% 0.000ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample_frames_x1000 execution_time [3.928ms; 3.930ms] or [-0.025%; +0.025%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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 18.005µs 26.469µs ± 10.524µs 18.244µs ± 0.164µs 36.115µs 45.611µs 47.303µs 68.001µs 272.73% 0.860 -0.188 39.66% 0.744µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [25.010µs; 27.927µs] or [-5.510%; +5.510%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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 535.035µs 536.950µs ± 1.407µs 536.551µs ± 0.695µs 537.492µs 539.326µs 541.587µs 545.139µs 1.60% 2.132 6.984 0.26% 0.100µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1834395.718op/s 1862381.977op/s ± 4853.790op/s 1863756.138op/s ± 2417.786op/s 1865675.174op/s 1867240.528op/s 1868156.769op/s 1869037.222op/s 0.28% -2.097 6.747 0.26% 343.215op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 379.949µs 381.232µs ± 0.775µs 380.922µs ± 0.572µs 382.004µs 382.370µs 382.644µs 382.880µs 0.51% 0.286 -1.456 0.20% 0.055µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2611786.447op/s 2623082.926op/s ± 5331.970op/s 2625208.611op/s ± 3947.842op/s 2627883.974op/s 2629550.177op/s 2630801.278op/s 2631935.493op/s 0.26% -0.283 -1.458 0.20% 377.027op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 189.596µs 190.012µs ± 0.165µs 190.005µs ± 0.112µs 190.125µs 190.307µs 190.376µs 190.429µs 0.22% 0.126 -0.359 0.09% 0.012µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5251314.444op/s 5262819.439op/s ± 4562.337op/s 5263028.628op/s ± 3111.593op/s 5266085.867op/s 5270327.140op/s 5271870.242op/s 5274359.324op/s 0.22% -0.122 -0.360 0.09% 322.606op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.460µs 36.566µs ± 0.049µs 36.560µs ± 0.031µs 36.596µs 36.649µs 36.714µs 36.731µs 0.47% 0.628 0.483 0.13% 0.003µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 27224770.133op/s 27347897.925op/s ± 36606.958op/s 27352424.512op/s ± 23497.993op/s 27372083.270op/s 27402368.056op/s 27414982.533op/s 27427017.604op/s 0.27% -0.619 0.466 0.13% 2588.503op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.961µs 46.075µs ± 0.118µs 46.054µs ± 0.043µs 46.106µs 46.195µs 46.258µs 47.486µs 3.11% 8.595 99.168 0.26% 0.008µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21058739.845op/s 21703834.414op/s ± 54580.838op/s 21713771.477op/s ± 20454.531op/s 21731793.331op/s 21743990.269op/s 21755842.390op/s 21757782.215op/s 0.20% -8.387 95.809 0.25% 3859.448op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time [536.755µs; 537.145µs] or [-0.036%; +0.036%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1861709.288op/s; 1863054.666op/s] or [-0.036%; +0.036%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [381.125µs; 381.340µs] or [-0.028%; +0.028%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2622343.966op/s; 2623821.885op/s] or [-0.028%; +0.028%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [189.990µs; 190.035µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5262187.142op/s; 5263451.735op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.559µs; 36.573µs] or [-0.019%; +0.019%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27342824.552op/s; 27352971.297op/s] or [-0.019%; +0.019%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.059µs; 46.092µs] or [-0.036%; +0.036%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21696270.035op/s; 21711398.793op/s] or [-0.035%; +0.035%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 50b3bbb 1771635554 bob/traceproj
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 162.179µs 163.159µs ± 0.381µs 163.143µs ± 0.152µs 163.287µs 163.523µs 164.042µs 167.074µs 2.41% 5.410 54.155 0.23% 0.027µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching string interning on wordpress profile execution_time [163.106µs; 163.212µs] or [-0.032%; +0.032%] None None None

Baseline

Omitted due to size.

Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
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.

1 participant