Skip to content

revert(profiling): backend does not use MIME#1511

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits intomainfrom
dsn/revert-mime
Feb 6, 2026
Merged

revert(profiling): backend does not use MIME#1511
gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits intomainfrom
dsn/revert-mime

Conversation

@danielsn
Copy link
Contributor

@danielsn danielsn commented Feb 4, 2026

What does this PR do?

Reverts #1478

Motivation

As per the event-platform-intake team:
// Note: We don't set Content-Type for file attachments in the multipart form.
// The intake backend treats all attachments as raw bytes (application/octet-stream)
// and detects compression by reading magic bytes (gzip/zstd/etc headers).
// Content-Type is only meaningful for the main "event" part (set to application/json).
// Attachments are not forwarded beyond intake, so their MIME types are not needed.

Additional Notes

Anything else we should know when reviewing?

How to test the change?

Describe here in detail how the change can be validated.

@danielsn danielsn requested review from a team as code owners February 4, 2026 22:37
@github-actions
Copy link

github-actions bot commented Feb 4, 2026

📚 Documentation Check Results

⚠️ 584 documentation warning(s) found

📦 libdd-profiling - 584 warning(s)


Updated: 2026-02-06 19:06:07 UTC | Commit: a2d1ff4 | missing-docs job results

@github-actions
Copy link

github-actions bot commented Feb 4, 2026

🔒 Cargo Deny Results

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

📦 libdd-profiling - 6 error(s)

Show output
error[vulnerability]: Integer overflow in `BytesMut::reserve`
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:35:1
   │
35 │ 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
     │               │   └── (dev) 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 (*)
     │   ├── 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-profiling v1.0.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
     │   ├── 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 (*)

error[vulnerability]: Lenient `hyper` header parsing of `Content-Length` could allow request smuggling
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:99:1
   │
99 │ hyper 0.10.16 registry+https://github.com/rust-lang/crates.io-index
   │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
   │
   ├ ID: RUSTSEC-2021-0078
   ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2021-0078
   ├ `hyper`'s HTTP header parser accepted, according to RFC 7230, illegal contents inside `Content-Length` headers.
     Due to this, upstream HTTP proxies that ignore the header may still forward them along if it chooses to ignore the error.
     
     To be vulnerable, `hyper` must be used as an HTTP/1 server and using an HTTP proxy upstream that ignores the header's contents
     but still forwards it. Due to all the factors that must line up, an attack exploiting this vulnerability is unlikely.
   ├ Announcement: https://github.com/hyperium/hyper/security/advisories/GHSA-f3pg-qwvg-p99c
   ├ Solution: Upgrade to >=0.14.10 (try `cargo update -p hyper`)
   ├ hyper v0.10.16
     ├── iron v0.6.1
     │   └── multipart v0.18.0
     │       ├── libdd-common v1.1.0
     │       │   └── (dev) libdd-profiling v1.0.0
     │       │       └── (dev) libdd-profiling v1.0.0 (*)
     │       └── libdd-profiling v1.0.0 (*)
     ├── multipart v0.18.0 (*)
     └── nickel v0.11.0
         └── multipart v0.18.0 (*)

error[vulnerability]: Integer overflow in `hyper`'s parsing of the `Transfer-Encoding` header leads to data loss
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:99:1
   │
99 │ hyper 0.10.16 registry+https://github.com/rust-lang/crates.io-index
   │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
   │
   ├ ID: RUSTSEC-2021-0079
   ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2021-0079
   ├ When decoding chunk sizes that are too large, `hyper`'s code would encounter an integer overflow. Depending on the situation,
     this could lead to data loss from an incorrect total size, or in rarer cases, a request smuggling attack.
     
     To be vulnerable, you must be using `hyper` for any HTTP/1 purpose, including as a client or server, and consumers must send
     requests or responses that specify a chunk size greater than 18 exabytes. For a possible request smuggling attack to be possible,
     any upstream proxies must accept a chunk size greater than 64 bits.
   ├ Announcement: https://github.com/hyperium/hyper/security/advisories/GHSA-5h46-h7hh-c6x9
   ├ Solution: Upgrade to >=0.14.10 (try `cargo update -p hyper`)
   ├ hyper v0.10.16
     ├── iron v0.6.1
     │   └── multipart v0.18.0
     │       ├── libdd-common v1.1.0
     │       │   └── (dev) libdd-profiling v1.0.0
     │       │       └── (dev) libdd-profiling v1.0.0 (*)
     │       └── libdd-profiling v1.0.0 (*)
     ├── multipart v0.18.0 (*)
     └── nickel v0.11.0
         └── multipart v0.18.0 (*)

error[vulnerability]: `idna` accepts Punycode labels that do not produce any non-ASCII when decoded
    ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:115:1
    │
115 │ idna 0.1.5 registry+https://github.com/rust-lang/crates.io-index
    │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
    │
    ├ ID: RUSTSEC-2024-0421
    ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2024-0421
    ├ `idna` 0.5.0 and earlier accepts Punycode labels that do not produce any non-ASCII output, which means that either ASCII labels or the empty root label can be masked such that they appear unequal without IDNA processing or when processed with a different implementation and equal when processed with `idna` 0.5.0 or earlier.
      
      Concretely, `example.org` and `xn--example-.org` become equal after processing by `idna` 0.5.0 or earlier. Also, `example.org.xn--` and `example.org.` become equal after processing by `idna` 0.5.0 or earlier.
      
      In applications using `idna` (but not in `idna` itself) this may be able to lead to privilege escalation when host name comparison is part of a privilege check and the behavior is combined with a client that resolves domains with such labels instead of treating them as errors that preclude DNS resolution / URL fetching and with the attacker managing to introduce a DNS entry (and TLS certificate) for an `xn--`-masked name that turns into the name of the target when processed by `idna` 0.5.0 or earlier.
      
      ## Remedy
      
      Upgrade to `idna` 1.0.3 or later, if depending on `idna` directly, or to `url` 2.5.4 or later, if depending on `idna` via `url`. (This issue was fixed in `idna` 1.0.0, but versions earlier than 1.0.3 are not recommended for other reasons.)
      
      When upgrading, please take a moment to read about [alternative Unicode back ends for `idna`](https://docs.rs/crate/idna_adapter/latest).
      
      If you are using Rust earlier than 1.81 in combination with SQLx 0.8.2 or earlier, please also read an [issue](https://github.com/servo/rust-url/issues/992) about combining them with `url` 2.5.4 and `idna` 1.0.3.
      
      ## Additional information
      
      This issue resulted from `idna` 0.5.0 and earlier implementing the UTS 46 specification literally on this point and the specification having this bug. The specification bug has been fixed in [revision 33 of UTS 46](https://www.unicode.org/reports/tr46/tr46-33.html#Modifications).
      
      ## Acknowledgements
      
      Thanks to kageshiron for recognizing the security implications of this behavior.
    ├ Announcement: https://bugzilla.mozilla.org/show_bug.cgi?id=1887898
    ├ Solution: Upgrade to >=1.0.0 (try `cargo update -p idna`)
    ├ idna v0.1.5
      └── url v1.7.2
          ├── hyper v0.10.16
          │   ├── iron v0.6.1
          │   │   └── multipart v0.18.0
          │   │       ├── libdd-common v1.1.0
          │   │       │   └── (dev) libdd-profiling v1.0.0
          │   │       │       └── (dev) libdd-profiling v1.0.0 (*)
          │   │       └── libdd-profiling v1.0.0 (*)
          │   ├── multipart v0.18.0 (*)
          │   └── nickel v0.11.0
          │       └── multipart v0.18.0 (*)
          ├── iron v0.6.1 (*)
          ├── nickel v0.11.0 (*)
          └── tiny_http v0.6.4
              └── multipart v0.18.0 (*)

error[unmaintained]: multipart is Unmaintained
    ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:156:1
    │
156 │ multipart 0.18.0 registry+https://github.com/rust-lang/crates.io-index
    │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ unmaintained advisory detected
    │
    ├ ID: RUSTSEC-2023-0050
    ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2023-0050
    ├ The `multipart` crate is unmaintained. The author has archived the github
      repository.
      
      Alternatives:
      
      - [multer](https://crates.io/crates/multer)
      - [multiparty](https://crates.io/crates/multiparty)
    ├ Solution: No safe upgrade is available!
    ├ multipart v0.18.0
      ├── libdd-common v1.1.0
      │   └── (dev) libdd-profiling v1.0.0
      │       └── (dev) libdd-profiling v1.0.0 (*)
      └── libdd-profiling v1.0.0 (*)

error[vulnerability]: Potential segfault in the time crate
    ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:263:1
    │
263 │ time 0.1.45 registry+https://github.com/rust-lang/crates.io-index
    │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
    │
    ├ ID: RUSTSEC-2020-0071
    ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2020-0071
    ├ ### Impact
      
      The affected functions set environment variables without synchronization. On Unix-like operating systems, this can crash in multithreaded programs. Programs may segfault due to dereferencing a dangling pointer if an environment variable is read in a different thread than the affected functions. This may occur without the user's knowledge, notably in the Rust standard library or third-party libraries.
      
      The affected functions from time 0.2.7 through 0.2.22 are:
      
      - `time::UtcOffset::local_offset_at`
      - `time::UtcOffset::try_local_offset_at`
      - `time::UtcOffset::current_local_offset`
      - `time::UtcOffset::try_current_local_offset`
      - `time::OffsetDateTime::now_local`
      - `time::OffsetDateTime::try_now_local`
      
      The affected functions in time 0.1 (all versions) are:
      
      - `time::at_utc`
      - `time::at`
      - `time::now`
      - `time::tzset`
      
      Non-Unix targets (including Windows and wasm) are unaffected.
      
      ### Patches
      
      Pending a proper fix, the internal method that determines the local offset has been modified to always return `None` on the affected operating systems. This has the effect of returning an `Err` on the `try_*` methods and `UTC` on the non-`try_*` methods.
      
      Users and library authors with time in their dependency tree should perform `cargo update`, which will pull in the updated, unaffected code.
      
      Users of time 0.1 do not have a patch and should upgrade to an unaffected version: time 0.2.23 or greater or the 0.3 series.
      
      ### Workarounds
      
      A possible workaround for crates affected through the transitive dependency in `chrono`, is to avoid using the default `oldtime` feature dependency of the `chrono` crate by disabling its `default-features` and manually specifying the required features instead.
      
      #### Examples:
      
      `Cargo.toml`:  
      
      ```toml
      chrono = { version = "0.4", default-features = false, features = ["serde"] }
      ```
      
      ```toml
      chrono = { version = "0.4.22", default-features = false, features = ["clock"] }
      ```
      
      Commandline:  
      
      ```bash
      cargo add chrono --no-default-features -F clock
      ```
      
      Sources:  
       - [chronotope/chrono#602 (comment)](https://github.com/chronotope/chrono/issues/602#issuecomment-1242149249)  
       - [vityafx/serde-aux#21](https://github.com/vityafx/serde-aux/issues/21)
    ├ Announcement: https://github.com/time-rs/time/issues/293
    ├ Solution: Upgrade to >=0.2.23 (try `cargo update -p time`)
    ├ time v0.1.45
      ├── hyper v0.10.16
      │   ├── iron v0.6.1
      │   │   └── multipart v0.18.0
      │   │       ├── libdd-common v1.1.0
      │   │       │   └── (dev) libdd-profiling v1.0.0
      │   │       │       └── (dev) libdd-profiling v1.0.0 (*)
      │   │       └── libdd-profiling v1.0.0 (*)
      │   ├── multipart v0.18.0 (*)
      │   └── nickel v0.11.0
      │       └── multipart v0.18.0 (*)
      └── nickel v0.11.0 (*)

advisories FAILED, bans ok, sources ok

Updated: 2026-02-06 19:08:59 UTC | Commit: a2d1ff4 | dependency-check job results

@pr-commenter
Copy link

pr-commenter bot commented Feb 4, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-02-05 19:54:37

Comparing candidate commit 26cf397 in PR branch dsn/revert-mime with baseline commit f483c69 in branch main.

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

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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.630ms 10.662ms ± 0.016ms 10.660ms ± 0.010ms 10.670ms 10.690ms 10.705ms 10.749ms 0.83% 1.334 4.160 0.15% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
concentrator/add_spans_to_concentrator execution_time [10.659ms; 10.664ms] or [-0.021%; +0.021%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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 204.765µs 205.787µs ± 0.593µs 205.747µs ± 0.369µs 206.094µs 206.827µs 207.361µs 208.789µs 1.48% 1.022 2.679 0.29% 0.042µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4789516.293op/s 4859432.664op/s ± 13959.410op/s 4860340.738op/s ± 8718.427op/s 4870131.046op/s 4879367.400op/s 4882075.306op/s 4883641.306op/s 0.48% -0.991 2.530 0.29% 987.079op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.586µs 18.744µs ± 0.167µs 18.718µs ± 0.070µs 18.791µs 18.949µs 19.101µs 20.553µs 9.81% 6.698 67.623 0.89% 0.012µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 48654496.995op/s 53355237.765op/s ± 449504.933op/s 53425358.653op/s ± 200680.087op/s 53622421.810op/s 53722445.308op/s 53749206.083op/s 53804183.777op/s 0.71% -6.073 58.334 0.84% 31784.799op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.811µs 10.875µs ± 0.030µs 10.872µs ± 0.020µs 10.893µs 10.922µs 10.973µs 10.989µs 1.08% 0.621 0.871 0.28% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 90999772.501op/s 91953575.227op/s ± 255114.192op/s 91980340.270op/s ± 167611.388op/s 92130104.748op/s 92321365.719op/s 92448440.953op/s 92497788.947op/s 0.56% -0.600 0.819 0.28% 18039.298op/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.705µs; 205.869µs] or [-0.040%; +0.040%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4857498.024op/s; 4861367.304op/s] or [-0.040%; +0.040%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.721µs; 18.767µs] or [-0.123%; +0.123%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53292940.705op/s; 53417534.826op/s] or [-0.117%; +0.117%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.871µs; 10.879µs] or [-0.039%; +0.039%] None None None
normalization/normalize_name/normalize_name/good throughput [91918218.854op/s; 91988931.601op/s] or [-0.038%; +0.038%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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 541.812µs 542.479µs ± 0.480µs 542.410µs ± 0.197µs 542.640µs 543.058µs 543.308µs 547.832µs 1.00% 7.061 75.441 0.09% 0.034µ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 [542.412µs; 542.545µs] or [-0.012%; +0.012%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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.879ns 191.617ns ± 2.294ns 191.414ns ± 1.681ns 192.728ns 195.461ns 199.177ns 204.503ns 6.84% 1.580 5.138 1.19% 0.162ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
single_flag_killswitch/rules-based execution_time [191.299ns; 191.935ns] or [-0.166%; +0.166%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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.448µs 2.480µs ± 0.023µs 2.472µs ± 0.014µs 2.493µs 2.531µs 2.539µs 2.540µs 2.74% 0.957 0.067 0.93% 0.002µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
tags/replace_trace_tags execution_time [2.477µs; 2.483µs] or [-0.129%; +0.129%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
credit_card/is_card_number/ execution_time 3.896µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.914µs 3.917µs 3.923µs 3.932µs 0.49% 0.937 8.764 0.09% 0.000µs 1 200
credit_card/is_card_number/ throughput 254341131.636op/s 255575185.970op/s ± 219039.656op/s 255585995.870op/s ± 120972.145op/s 255724127.572op/s 255840302.824op/s 255866387.658op/s 256693274.626op/s 0.43% -0.912 8.729 0.09% 15488.443op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 77.038µs 77.538µs ± 0.512µs 77.368µs ± 0.243µs 77.762µs 78.603µs 78.987µs 79.731µs 3.05% 1.487 2.135 0.66% 0.036µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12542171.837op/s 12897459.674op/s ± 84424.823op/s 12925252.067op/s ± 40621.124op/s 12961799.919op/s 12973477.300op/s 12977957.685op/s 12980647.465op/s 0.43% -1.450 1.956 0.65% 5969.736op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 70.629µs 70.989µs ± 0.375µs 70.904µs ± 0.201µs 71.170µs 71.776µs 72.115µs 72.499µs 2.25% 1.540 2.148 0.53% 0.026µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13793270.762op/s 14087042.353op/s ± 73755.076op/s 14103535.957op/s ± 40003.872op/s 14142812.416op/s 14153001.931op/s 14157083.115op/s 14158507.199op/s 0.39% -1.512 2.030 0.52% 5215.271op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.899µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.914µs 3.917µs 3.920µs 3.921µs 0.20% -0.132 2.301 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255066644.016op/s 255589863.737op/s ± 180765.329op/s 255584488.591op/s ± 114693.172op/s 255707479.445op/s 255854746.068op/s 255950002.236op/s 256461073.883op/s 0.34% 0.141 2.326 0.07% 12782.039op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 67.398µs 67.833µs ± 0.293µs 67.766µs ± 0.183µs 67.953µs 68.464µs 68.773µs 69.048µs 1.89% 1.421 2.455 0.43% 0.021µs 1 200
credit_card/is_card_number/378282246310005 throughput 14482695.723op/s 14742362.999op/s ± 63313.946op/s 14756578.767op/s ± 39729.700op/s 14791675.672op/s 14810230.834op/s 14827283.078op/s 14837256.351op/s 0.55% -1.390 2.330 0.43% 4476.972op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 44.753µs 45.212µs ± 0.152µs 45.206µs ± 0.099µs 45.319µs 45.459µs 45.512µs 45.563µs 0.79% -0.139 -0.306 0.34% 0.011µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21947411.629op/s 22118444.541op/s ± 74615.978op/s 22120719.399op/s ± 48205.823op/s 22162794.213op/s 22241148.194op/s 22275796.052op/s 22344926.962op/s 1.01% 0.156 -0.292 0.34% 5276.146op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.028µs 6.041µs ± 0.025µs 6.034µs ± 0.002µs 6.037µs 6.103µs 6.158µs 6.173µs 2.30% 3.514 12.309 0.41% 0.002µs 1 200
credit_card/is_card_number/x371413321323331 throughput 161999700.051op/s 165541164.193op/s ± 662866.887op/s 165724668.117op/s ± 57138.948op/s 165775100.265op/s 165860114.722op/s 165895004.435op/s 165900590.404op/s 0.11% -3.491 12.090 0.40% 46871.767op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.891µs 3.911µs ± 0.003µs 3.912µs ± 0.002µs 3.913µs 3.915µs 3.916µs 3.919µs 0.19% -2.355 18.750 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255169579.953op/s 255657865.268op/s ± 167667.368op/s 255656052.595op/s ± 98960.317op/s 255757431.500op/s 255887308.991op/s 255963424.046op/s 256998560.466op/s 0.53% 2.385 19.034 0.07% 11855.873op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 65.174µs 65.752µs ± 0.091µs 65.754µs ± 0.058µs 65.821µs 65.876µs 65.903µs 65.930µs 0.27% -1.452 7.017 0.14% 0.006µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15167507.274op/s 15208757.240op/s ± 21042.511op/s 15208172.297op/s ± 13437.176op/s 15220873.907op/s 15242023.163op/s 15254990.336op/s 15343537.287op/s 0.89% 1.481 7.231 0.14% 1487.930op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 52.950µs 53.023µs ± 0.035µs 53.024µs ± 0.024µs 53.047µs 53.084µs 53.099µs 53.140µs 0.22% 0.189 -0.217 0.07% 0.002µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18818144.834op/s 18859700.560op/s ± 12367.358op/s 18859446.532op/s ± 8685.898op/s 18868221.670op/s 18879576.546op/s 18884544.417op/s 18885612.940op/s 0.14% -0.186 -0.222 0.07% 874.504op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.893µs 3.911µs ± 0.002µs 3.911µs ± 0.001µs 3.912µs 3.914µs 3.917µs 3.919µs 0.21% -1.304 12.510 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255181776.848op/s 255709411.192op/s ± 158455.777op/s 255712389.272op/s ± 87027.173op/s 255796576.004op/s 255913042.496op/s 255951398.687op/s 256843518.714op/s 0.44% 1.327 12.677 0.06% 11204.515op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 49.737µs 49.800µs ± 0.034µs 49.796µs ± 0.020µs 49.818µs 49.868µs 49.900µs 49.905µs 0.22% 0.870 0.560 0.07% 0.002µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 20037908.533op/s 20080381.000op/s ± 13660.831op/s 20082057.686op/s ± 8078.835op/s 20089549.416op/s 20098251.251op/s 20102629.002op/s 20105623.543op/s 0.12% -0.866 0.552 0.07% 965.967op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 44.714µs 45.120µs ± 0.147µs 45.130µs ± 0.095µs 45.215µs 45.352µs 45.427µs 45.500µs 0.82% -0.208 -0.200 0.32% 0.010µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21978163.408op/s 22163510.956op/s ± 72252.750op/s 22158168.702op/s ± 46464.728op/s 22213016.892op/s 22282524.844op/s 22322078.646op/s 22364479.565op/s 0.93% 0.225 -0.194 0.33% 5109.041op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.027µs 6.037µs ± 0.007µs 6.036µs ± 0.003µs 6.039µs 6.044µs 6.048µs 6.109µs 1.21% 6.716 70.992 0.11% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 163684433.808op/s 165653246.043op/s ± 180095.378op/s 165669473.496op/s ± 68673.627op/s 165735484.616op/s 165852522.907op/s 165880863.675op/s 165931797.222op/s 0.16% -6.625 69.668 0.11% 12734.666op/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.012%; +0.012%] None None None
credit_card/is_card_number/ throughput [255544829.180op/s; 255605542.760op/s] or [-0.012%; +0.012%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [77.467µs; 77.609µs] or [-0.092%; +0.092%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12885759.206op/s; 12909160.143op/s] or [-0.091%; +0.091%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [70.937µs; 71.041µs] or [-0.073%; +0.073%] None None None
credit_card/is_card_number/ 378282246310005 throughput [14076820.609op/s; 14097264.098op/s] or [-0.073%; +0.073%] None None None
credit_card/is_card_number/37828224631 execution_time [3.912µs; 3.913µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/37828224631 throughput [255564811.401op/s; 255614916.073op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/378282246310005 execution_time [67.792µs; 67.874µs] or [-0.060%; +0.060%] None None None
credit_card/is_card_number/378282246310005 throughput [14733588.295op/s; 14751137.703op/s] or [-0.060%; +0.060%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.191µs; 45.233µs] or [-0.047%; +0.047%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [22108103.484op/s; 22128785.598op/s] or [-0.047%; +0.047%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.037µs; 6.044µs] or [-0.056%; +0.056%] None None None
credit_card/is_card_number/x371413321323331 throughput [165449297.218op/s; 165633031.169op/s] or [-0.055%; +0.055%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.911µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ throughput [255634628.184op/s; 255681102.353op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.739µs; 65.764µs] or [-0.019%; +0.019%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15205840.950op/s; 15211673.529op/s] or [-0.019%; +0.019%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.018µs; 53.028µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18857986.564op/s; 18861414.557op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.910µs; 3.911µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255687450.746op/s; 255731371.639op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [49.795µs; 49.805µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [20078487.741op/s; 20082274.260op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.099µs; 45.140µs] or [-0.045%; +0.045%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [22153497.420op/s; 22173524.492op/s] or [-0.045%; +0.045%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.036µs; 6.038µs] or [-0.015%; +0.015%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [165628286.556op/s; 165678205.531op/s] or [-0.015%; +0.015%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching deserializing traces from msgpack to their internal representation execution_time 48.074ms 48.398ms ± 0.954ms 48.252ms ± 0.085ms 48.346ms 48.575ms 51.131ms 58.494ms 21.23% 8.712 81.235 1.97% 0.067ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching deserializing traces from msgpack to their internal representation execution_time [48.266ms; 48.531ms] or [-0.273%; +0.273%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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.011µs 536.469µs ± 1.283µs 536.142µs ± 0.531µs 536.892µs 538.826µs 541.105µs 545.443µs 1.73% 2.760 12.526 0.24% 0.091µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1833372.733op/s 1864052.240op/s ± 4427.843op/s 1865176.486op/s ± 1846.140op/s 1866857.328op/s 1868123.256op/s 1868685.414op/s 1869120.037op/s 0.21% -2.711 12.068 0.24% 313.096op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 381.441µs 382.099µs ± 0.262µs 382.111µs ± 0.181µs 382.241µs 382.545µs 382.613µs 383.034µs 0.24% 0.230 0.050 0.07% 0.019µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2610735.777op/s 2617127.223op/s ± 1796.136op/s 2617037.621op/s ± 1241.131op/s 2618500.153op/s 2619842.174op/s 2620792.291op/s 2621634.135op/s 0.18% -0.226 0.045 0.07% 127.006op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 189.538µs 189.988µs ± 0.174µs 189.973µs ± 0.123µs 190.103µs 190.323µs 190.399µs 190.456µs 0.25% 0.294 -0.244 0.09% 0.012µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5250550.197op/s 5263482.350op/s ± 4813.402op/s 5263908.055op/s ± 3406.382op/s 5267264.015op/s 5270327.354op/s 5272772.773op/s 5275994.725op/s 0.23% -0.289 -0.247 0.09% 340.359op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.520µs 36.621µs ± 0.068µs 36.604µs ± 0.035µs 36.647µs 36.754µs 36.816µs 36.900µs 0.81% 1.450 2.319 0.18% 0.005µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 27100152.971op/s 27306999.711op/s ± 50239.810op/s 27319205.401op/s ± 25823.653op/s 27340311.326op/s 27364657.864op/s 27371052.754op/s 27382394.652op/s 0.23% -1.438 2.272 0.18% 3552.491op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.944µs 46.068µs ± 0.069µs 46.054µs ± 0.042µs 46.099µs 46.190µs 46.293µs 46.306µs 0.55% 0.933 1.024 0.15% 0.005µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21595660.136op/s 21707110.266op/s ± 32672.370op/s 21713630.033op/s ± 19768.441op/s 21728860.399op/s 21749843.546op/s 21761410.808op/s 21765559.291op/s 0.24% -0.923 0.998 0.15% 2310.285op/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.291µs; 536.646µs] or [-0.033%; +0.033%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1863438.584op/s; 1864665.897op/s] or [-0.033%; +0.033%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [382.062µs; 382.135µs] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2616878.296op/s; 2617376.150op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [189.964µs; 190.013µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5262815.259op/s; 5264149.441op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.611µs; 36.630µs] or [-0.026%; +0.026%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27300036.957op/s; 27313962.465op/s] or [-0.025%; +0.025%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.058µs; 46.078µs] or [-0.021%; +0.021%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21702582.189op/s; 21711638.342op/s] or [-0.021%; +0.021%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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.065ns 254.284ns ± 14.421ns 248.257ns ± 3.947ns 259.245ns 286.976ns 302.306ns 308.134ns 24.12% 1.867 3.038 5.66% 1.020ns 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 [252.285ns; 256.282ns] or [-0.786%; +0.786%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching serializing traces from their internal representation to msgpack execution_time 13.991ms 14.092ms ± 0.057ms 14.070ms ± 0.028ms 14.142ms 14.183ms 14.263ms 14.304ms 1.66% 0.988 0.506 0.41% 0.004ms 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.084ms; 14.099ms] or [-0.056%; +0.056%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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.376µs 24.490µs ± 9.286µs 17.753µs ± 0.217µs 33.564µs 42.911µs 43.880µs 67.139µs 278.19% 1.140 1.012 37.82% 0.657µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [23.203µs; 25.777µs] or [-5.255%; +5.255%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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.722µs 145.813µs ± 1.847µs 145.535µs ± 0.466µs 146.084µs 147.103µs 152.421µs 164.487µs 13.02% 6.423 55.720 1.26% 0.131µ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.557µs; 146.069µs] or [-0.176%; +0.176%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching string interning on wordpress profile execution_time 160.392µs 161.365µs ± 0.371µs 161.335µs ± 0.123µs 161.462µs 161.773µs 162.171µs 164.871µs 2.19% 4.479 40.265 0.23% 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 [161.314µs; 161.417µs] or [-0.032%; +0.032%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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.972µs 85.340µs ± 0.194µs 85.323µs ± 0.042µs 85.367µs 85.449µs 85.778µs 87.771µs 2.87% 10.116 123.186 0.23% 0.014µ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.313µs; 85.367µs] or [-0.031%; +0.031%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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.194µs 3.174µs ± 1.432µs 2.966µs ± 0.025µs 2.991µs 3.620µs 13.828µs 14.825µs 399.77% 7.382 55.527 44.99% 0.101µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [2.976µs; 3.372µs] or [-6.251%; +6.251%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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.090µs 34.016µs ± 1.190µs 33.301µs ± 0.129µs 35.702µs 36.071µs 36.191µs 36.776µs 10.43% 0.926 -1.043 3.49% 0.084µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
redis/obfuscate_redis_string execution_time [33.851µs; 34.181µs] or [-0.485%; +0.485%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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.954ms 3.959ms ± 0.006ms 3.959ms ± 0.002ms 3.961ms 3.964ms 3.968ms 4.043ms 2.12% 10.839 136.866 0.16% 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.959ms; 3.960ms] or [-0.023%; +0.023%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
ip_address/quantize_peer_ip_address_benchmark execution_time 4.978µs 5.068µs ± 0.047µs 5.068µs ± 0.041µs 5.102µs 5.136µs 5.138µs 5.141µs 1.45% -0.012 -1.288 0.93% 0.003µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
ip_address/quantize_peer_ip_address_benchmark execution_time [5.062µs; 5.075µs] or [-0.129%; +0.129%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 26cf397 1770320305 dsn/revert-mime
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.526ms 9.867ms ± 0.104ms 9.871ms ± 0.048ms 9.920ms 10.024ms 10.102ms 10.219ms 3.53% -0.325 1.333 1.05% 0.007ms 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.853ms; 9.882ms] or [-0.146%; +0.146%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Feb 4, 2026

Codecov Report

❌ Patch coverage is 85.71429% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 71.22%. Comparing base (f483c69) to head (26cf397).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1511      +/-   ##
==========================================
+ Coverage   71.20%   71.22%   +0.02%     
==========================================
  Files         424      424              
  Lines       69802    69776      -26     
==========================================
- Hits        49700    49698       -2     
+ Misses      20102    20078      -24     
Components Coverage Δ
libdd-crashtracker 62.34% <ø> (-0.02%) ⬇️
libdd-crashtracker-ffi 16.80% <ø> (ø)
libdd-alloc 98.73% <ø> (ø)
libdd-data-pipeline 86.86% <ø> (ø)
libdd-data-pipeline-ffi 78.68% <ø> (ø)
libdd-common 80.58% <ø> (ø)
libdd-common-ffi 74.54% <ø> (ø)
libdd-telemetry 65.09% <ø> (ø)
libdd-telemetry-ffi 21.17% <ø> (ø)
libdd-dogstatsd-client 83.75% <ø> (ø)
datadog-ipc 82.70% <ø> (+0.10%) ⬆️
libdd-profiling 81.80% <85.71%> (+0.07%) ⬆️
libdd-profiling-ffi 64.74% <0.00%> (+0.03%) ⬆️
datadog-sidecar 34.39% <ø> (ø)
datdog-sidecar-ffi 7.67% <ø> (ø)
spawn-worker 55.18% <ø> (ø)
libdd-tinybytes 93.43% <ø> (ø)
libdd-trace-normalization 82.33% <ø> (ø)
libdd-trace-obfuscation 94.17% <ø> (ø)
libdd-trace-protobuf 61.18% <ø> (ø)
libdd-trace-utils 89.37% <ø> (ø)
datadog-tracer-flare 62.06% <ø> (ø)
libdd-log 75.57% <ø> (ø)
🚀 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.

Copy link
Contributor

@morrisonlevi morrisonlevi left a comment

Choose a reason for hiding this comment

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

Looks good to me but the original PR said that there was some failing test that we set the mime type to fix. What test? Do we need to ship a different fix in another PR?

@danielsn
Copy link
Contributor Author

danielsn commented Feb 5, 2026

Looks good to me but the original PR said that there was some failing test that we set the mime type to fix. What test? Do we need to ship a different fix in another PR?

There was an integration test for python that was failing. I talked with the owner of that test, and he agreed that given the response from the intake backend folks the test not the code should change.

@dd-octo-sts
Copy link

dd-octo-sts bot commented Feb 5, 2026

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 91.69 MB 91.69 MB +0% (+200 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.38 MB 8.38 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 10.76 MB 10.76 MB 0% (0 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 106.40 MB 106.40 MB +0% (+1.89 KB) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 25.08 MB 25.08 MB 0% (0 B) 👌
/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 172.52 MB 172.53 MB +0% (+8.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 882.84 MB 882.83 MB -0% (-9.93 KB) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.57 MB 9.57 MB 0% (0 B) 👌
/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.04 MB 23.04 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 48.45 MB 48.45 MB -0% (-46 B) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 21.22 MB 21.22 MB +0% (+512 B) 👌
/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 176.62 MB 176.62 MB +0% (+8.00 KB) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 866.93 MB 866.92 MB -0% (-11.00 KB) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 7.24 MB 7.24 MB 0% (0 B) 👌
/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 24.62 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 44.15 MB 44.15 MB +0% (+24 B) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 80.18 MB 80.18 MB +0% (+184 B) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 9.88 MB 9.88 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 100.31 MB 100.31 MB +0% (+2.57 KB) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.44 MB 11.44 MB 0% (0 B) 👌

@ivoanjo
Copy link
Member

ivoanjo commented Feb 5, 2026

I've gone ahead and re-ran the Ruby profiler on this branch, comparing it to libdatadog v25. Here's a diff of how it's looking:

--- v25-clean.txt	2026-02-05 09:05:28.917698767 +0000
+++ revert-mime-branch.txt	2026-02-05 09:05:23.406719836 +0000
@@ -1,36 +1,38 @@
 Headers:
 
 {
+  "accept"=>["*/*"],
   "connection"=>["close"],
-  "content-type"=>["multipart/form-data; boundary=m4W51A"],
+  "content-length"=>["12423"],
+  "content-type"=>
+   ["multipart/form-data; boundary=cd3a6ef9d14be1c3-5c59c95ac480b3e6-e66dc94ec70c8cce-492102b9194788d7"],
   "datadog-container-id"=>["20743e83-1420-4204-97dc-ce2dbaa454f5"],
   "datadog-entity-id"=>["ci-20743e83-1420-4204-97dc-ce2dbaa454f5"],
   "dd-evp-origin"=>["dd-trace-rb"],
   "dd-evp-origin-version"=>["2.29.0"],
   "host"=>["127.0.0.1:8126"],
-  "transfer-encoding"=>["chunked"],
   "user-agent"=>["DDProf/1.0.0"]}
 
 Multi-part:
 
 {"code-provenance.json"=>
   {:filename=>"code-provenance.json",
-   :type=>"application/octet-stream",
+   :type=>nil,
    :name=>"code-provenance.json",
    :tempfile=>"...",
    :head=>
-    "content-type: application/octet-stream\r\ncontent-disposition: form-data; name=\"code-provenance.json\"; filename=\"code-provenance.json\"\r\n"},
+    "Content-Disposition: form-data; name=\"code-provenance.json\"; filename=\"code-provenance.json\"\r\n"},
  "event"=>
   {:filename=>"event.json",
    :type=>"application/json",
    :name=>"event",
    :tempfile=>"...",
    :head=>
-    "content-type: application/json\r\ncontent-disposition: form-data; name=\"event\"; filename=\"event.json\"\r\n"},
+    "Content-Disposition: form-data; name=\"event\"; filename=\"event.json\"\r\nContent-Type: application/json\r\n"},
  "profile.pprof"=>
   {:filename=>"profile.pprof",
-   :type=>"application/octet-stream",
+   :type=>nil,
    :name=>"profile.pprof",
    :tempfile=>"...",
    :head=>
-    "content-type: application/octet-stream\r\ncontent-disposition: form-data; name=\"profile.pprof\"; filename=\"profile.pprof\"\r\n"}}
+    "Content-Disposition: form-data; name=\"profile.pprof\"; filename=\"profile.pprof\"\r\n"}}

TL;DR:

  • "accept" and "content-length" headers added
  • "transfer-encoding" header removed
  • Each multipart entry, aside from event.json loses the Content-Type header

Is this correct/expected?

@danielsn
Copy link
Contributor Author

danielsn commented Feb 5, 2026

/merge

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

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

View all feedbacks in Devflow UI.

2026-02-05 14:57:53 UTC ℹ️ Start processing command /merge


2026-02-05 14:57:59 UTC ℹ️ MergeQueue: pull request added to the queue

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


2026-02-05 14:58:38 UTC ℹ️ MergeQueue: Retrying because an high priority merge request needed to be processed first. No action is needed from your side.


2026-02-05 14:58:43 UTC ⚠️ MergeQueue: This merge request build was cancelled

daniel.schwartznarbonne@datadoghq.com cancelled this merge request build

@danielsn
Copy link
Contributor Author

danielsn commented Feb 5, 2026

/merge -c

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

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

View all feedbacks in Devflow UI.

2026-02-05 14:58:29 UTC ℹ️ Start processing command /merge -c

@danielsn
Copy link
Contributor Author

danielsn commented Feb 5, 2026

I've gone ahead and re-ran the Ruby profiler on this branch, comparing it to libdatadog v25. Here's a diff of how it's looking:

--- v25-clean.txt	2026-02-05 09:05:28.917698767 +0000
+++ revert-mime-branch.txt	2026-02-05 09:05:23.406719836 +0000
@@ -1,36 +1,38 @@
 Headers:
 
 {
+  "accept"=>["*/*"],
   "connection"=>["close"],
-  "content-type"=>["multipart/form-data; boundary=m4W51A"],
+  "content-length"=>["12423"],
+  "content-type"=>
+   ["multipart/form-data; boundary=cd3a6ef9d14be1c3-5c59c95ac480b3e6-e66dc94ec70c8cce-492102b9194788d7"],
   "datadog-container-id"=>["20743e83-1420-4204-97dc-ce2dbaa454f5"],
   "datadog-entity-id"=>["ci-20743e83-1420-4204-97dc-ce2dbaa454f5"],
   "dd-evp-origin"=>["dd-trace-rb"],
   "dd-evp-origin-version"=>["2.29.0"],
   "host"=>["127.0.0.1:8126"],
-  "transfer-encoding"=>["chunked"],
   "user-agent"=>["DDProf/1.0.0"]}
 
 Multi-part:
 
 {"code-provenance.json"=>
   {:filename=>"code-provenance.json",
-   :type=>"application/octet-stream",
+   :type=>nil,
    :name=>"code-provenance.json",
    :tempfile=>"...",
    :head=>
-    "content-type: application/octet-stream\r\ncontent-disposition: form-data; name=\"code-provenance.json\"; filename=\"code-provenance.json\"\r\n"},
+    "Content-Disposition: form-data; name=\"code-provenance.json\"; filename=\"code-provenance.json\"\r\n"},
  "event"=>
   {:filename=>"event.json",
    :type=>"application/json",
    :name=>"event",
    :tempfile=>"...",
    :head=>
-    "content-type: application/json\r\ncontent-disposition: form-data; name=\"event\"; filename=\"event.json\"\r\n"},
+    "Content-Disposition: form-data; name=\"event\"; filename=\"event.json\"\r\nContent-Type: application/json\r\n"},
  "profile.pprof"=>
   {:filename=>"profile.pprof",
-   :type=>"application/octet-stream",
+   :type=>nil,
    :name=>"profile.pprof",
    :tempfile=>"...",
    :head=>
-    "content-type: application/octet-stream\r\ncontent-disposition: form-data; name=\"profile.pprof\"; filename=\"profile.pprof\"\r\n"}}
+    "Content-Disposition: form-data; name=\"profile.pprof\"; filename=\"profile.pprof\"\r\n"}}

TL;DR:

  • "accept" and "content-length" headers added
  • "transfer-encoding" header removed
  • Each multipart entry, aside from event.json loses the Content-Type header

Is this correct/expected?

This makes sense to me, and to 🤖 . Adding the 🤖 answer for posterity:

MIME type changes: expected and correct
The multipart Content-Type header changes are expected from the revert:
Attachments (code-provenance.json, profile.pprof) no longer have Content-Type headers — correct, as the backend treats them as raw bytes and detects compression via magic bytes.
The event part still has Content-Type: application/json — correct, as this is required for the main event part.
HTTP header changes: unrelated to MIME revert
The accept, content-length, and transfer-encoding header differences are unrelated to the MIME type revert. They likely come from:
Other changes in this branch (e.g., PR #1493 "single source of truth for headers")
Reqwest behavior when the body size is known vs. streaming
Both Content-Length and Transfer-Encoding: chunked are valid HTTP/1.1. Using Content-Length when the size is known is preferred and more efficient. The backend handles both formats, so this is fine.
Summary: The MIME type revert is working as intended. The header changes are acceptable and unrelated to the revert.

@danielsn
Copy link
Contributor Author

danielsn commented Feb 5, 2026

/merge

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

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

View all feedbacks in Devflow UI.

2026-02-05 18:21:50 UTC ℹ️ Start processing command /merge


2026-02-05 18:21:55 UTC ℹ️ MergeQueue: pull request added to the queue

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


2026-02-05 19:14:56 UTCMergeQueue: The checks failed on this merge request

Tests failed on this commit 8e9ba7f:

What to do next?

  • Investigate the failures and when ready, re-add your pull request to the queue!
  • If your PR checks are green, try to rebase/merge. It might be because the CI run is a bit old.
  • Any question, go check the FAQ.

@danielsn
Copy link
Contributor Author

danielsn commented Feb 5, 2026

/merge

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

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

View all feedbacks in Devflow UI.

2026-02-05 19:38:37 UTC ℹ️ Start processing command /merge


2026-02-05 19:38:44 UTC ℹ️ MergeQueue: waiting for PR to be ready

This pull request is not mergeable according to GitHub. Common reasons include pending required checks, missing approvals, or merge conflicts — but it could also be blocked by other repository rules or settings.
It will be added to the queue as soon as checks pass and/or get approvals. View in MergeQueue UI.
Note: if you pushed new commits since the last approval, you may need additional approval.
You can remove it from the waiting list with /remove command.


2026-02-05 23:39:11 UTC ⚠️ MergeQueue: This merge request was unqueued

devflow unqueued this merge request: It did not become mergeable within the expected time

@danielsn
Copy link
Contributor Author

danielsn commented Feb 6, 2026

/merge

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

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

View all feedbacks in Devflow UI.

2026-02-06 16:41:46 UTC ℹ️ Start processing command /merge


2026-02-06 16:41:53 UTC ℹ️ MergeQueue: waiting for PR to be ready

This pull request is not mergeable according to GitHub. Common reasons include pending required checks, missing approvals, or merge conflicts — but it could also be blocked by other repository rules or settings.
It will be added to the queue as soon as checks pass and/or get approvals. View in MergeQueue UI.
Note: if you pushed new commits since the last approval, you may need additional approval.
You can remove it from the waiting list with /remove command.


2026-02-06 18:13:11 UTC ℹ️ MergeQueue: merge request added to the queue

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


2026-02-06 19:44:51 UTC ℹ️ MergeQueue: This merge request was merged

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.

6 participants