Skip to content

Conversation

@danielsn
Copy link
Contributor

@danielsn danielsn commented Jan 28, 2026

What does this PR do?

  1. Actually uses the mime type in the exporter
  2. Uses an invalid enum value to catch when the enum was defaulted to 0.
  3. used "content-encoding: zstd" for compressed parts
  4. Adds container headers when needed
  5. Adds tests for all this

Motivation

  1. Oops
  2. Code review request on the previous PR.
  3. Request to make it easier to process
  4. They had been transparently added by libdd-common, now we need to add them explicitly since we don't use the common functionality anymore
  5. These issues should have been caught by tests.

Additional Notes

Anything else we should know when reviewing?

How to test the change?

New tests.

@github-actions
Copy link

github-actions bot commented Jan 28, 2026

📚 Documentation Check Results

⚠️ 583 documentation warning(s) found

📦 libdd-profiling - 583 warning(s)


Updated: 2026-01-29 15:37:10 UTC | Commit: 63eaded | missing-docs job results

@github-actions
Copy link

github-actions bot commented Jan 28, 2026

🔒 Cargo Deny Results

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

📦 libdd-profiling - 5 error(s)

Show output
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-profiling v1.0.0
     │           └── (dev) 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-profiling v1.0.0
     │           └── (dev) 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-profiling v1.0.0
          │   │           └── (dev) 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-profiling v1.0.0
          └── (dev) libdd-profiling v1.0.0 (*)

error[vulnerability]: Potential segfault in the time crate
    ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:262:1
    │
262 │ 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-profiling v1.0.0
      │   │           └── (dev) 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-01-29 15:36:34 UTC | Commit: 63eaded | dependency-check job results

@danielsn danielsn marked this pull request as ready for review January 28, 2026 22:24
@danielsn danielsn requested a review from a team as a code owner January 28, 2026 22:24
@danielsn danielsn changed the title fix(profiling): make sure we use the mime type properly fix(profiling)!: make sure we use the mime type properly Jan 28, 2026
@codecov-commenter
Copy link

codecov-commenter commented Jan 28, 2026

Codecov Report

❌ Patch coverage is 75.80645% with 15 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.06%. Comparing base (7f30d50) to head (ca15195).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1488   +/-   ##
=======================================
  Coverage   71.06%   71.06%           
=======================================
  Files         422      422           
  Lines       68640    68692   +52     
=======================================
+ Hits        48776    48814   +38     
- Misses      19864    19878   +14     
Components Coverage Δ
libdd-crashtracker 61.38% <ø> (-0.03%) ⬇️
libdd-crashtracker-ffi 16.50% <ø> (ø)
libdd-alloc 98.73% <ø> (ø)
libdd-data-pipeline 86.84% <ø> (ø)
libdd-data-pipeline-ffi 78.57% <ø> (ø)
libdd-common 80.97% <ø> (ø)
libdd-common-ffi 74.54% <ø> (ø)
libdd-telemetry 59.82% <ø> (ø)
libdd-telemetry-ffi 21.17% <ø> (ø)
libdd-dogstatsd-client 83.75% <ø> (ø)
datadog-ipc 82.60% <ø> (ø)
libdd-profiling 81.49% <75.80%> (-0.03%) ⬇️
libdd-profiling-ffi 65.02% <78.12%> (+0.30%) ⬆️
datadog-sidecar 34.94% <ø> (ø)
datdog-sidecar-ffi 10.25% <ø> (ø)
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.45% <ø> (ø)
datadog-tracer-flare 63.49% <ø> (ø)
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.

@pr-commenter
Copy link

pr-commenter bot commented Jan 28, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-01-29 15:46:47

Comparing candidate commit ca15195 in PR branch dsn/fix-mime with baseline commit 7f30d50 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 ca15195 1769700630 dsn/fix-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.093µs 536.729µs ± 1.208µs 536.384µs ± 0.484µs 537.124µs 539.152µs 540.919µs 542.403µs 1.12% 1.780 3.722 0.22% 0.085µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1843648.420op/s 1863145.847op/s ± 4177.138op/s 1864334.976op/s ± 1684.599op/s 1865753.801op/s 1867563.811op/s 1867881.338op/s 1868834.838op/s 0.24% -1.763 3.636 0.22% 295.368op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 385.969µs 386.576µs ± 0.321µs 386.513µs ± 0.193µs 386.771µs 387.191µs 387.438µs 387.517µs 0.26% 0.727 0.156 0.08% 0.023µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2580532.556op/s 2586816.613op/s ± 2148.724op/s 2587232.818op/s ± 1289.734op/s 2588237.273op/s 2589843.084op/s 2590444.306op/s 2590878.600op/s 0.14% -0.723 0.149 0.08% 151.938op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 189.406µs 189.902µs ± 0.258µs 189.829µs ± 0.174µs 190.105µs 190.393µs 190.503µs 190.556µs 0.38% 0.486 -0.519 0.14% 0.018µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5247787.755op/s 5265875.658op/s ± 7147.160op/s 5267907.187op/s ± 4833.941op/s 5271246.163op/s 5275776.363op/s 5278874.429op/s 5279658.073op/s 0.22% -0.481 -0.525 0.14% 505.381op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.511µs 36.671µs ± 0.092µs 36.654µs ± 0.071µs 36.746µs 36.841µs 36.881µs 36.901µs 0.67% 0.424 -0.819 0.25% 0.007µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 27099712.500op/s 27269833.055op/s ± 68364.571op/s 27282060.659op/s ± 52925.251op/s 27324705.580op/s 27363636.963op/s 27373549.582op/s 27389226.161op/s 0.39% -0.416 -0.828 0.25% 4834.105op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.984µs 46.114µs ± 0.118µs 46.097µs ± 0.035µs 46.137µs 46.218µs 46.303µs 47.561µs 3.18% 9.325 111.040 0.26% 0.008µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21025507.445op/s 21685397.425op/s ± 54259.086op/s 21693283.723op/s ± 16327.338op/s 21706221.130op/s 21723686.424op/s 21741033.104op/s 21746925.710op/s 0.25% -9.126 107.742 0.25% 3836.697op/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.562µs; 536.897µs] or [-0.031%; +0.031%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1862566.936op/s; 1863724.758op/s] or [-0.031%; +0.031%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [386.531µs; 386.620µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2586518.821op/s; 2587114.405op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [189.867µs; 189.938µs] or [-0.019%; +0.019%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5264885.130op/s; 5266866.186op/s] or [-0.019%; +0.019%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.658µs; 36.684µs] or [-0.035%; +0.035%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27260358.383op/s; 27279307.727op/s] or [-0.035%; +0.035%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.098µs; 46.131µs] or [-0.035%; +0.035%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21677877.638op/s; 21692917.212op/s] or [-0.035%; +0.035%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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 90.543µs 90.737µs ± 0.148µs 90.719µs ± 0.039µs 90.765µs 90.850µs 91.102µs 92.420µs 1.88% 8.036 84.664 0.16% 0.010µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sql/obfuscate_sql_string execution_time [90.717µs; 90.758µs] or [-0.023%; +0.023%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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 12.819ms 13.045ms ± 0.058ms 13.038ms ± 0.032ms 13.073ms 13.132ms 13.216ms 13.314ms 2.12% 0.899 4.436 0.44% 0.004ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2597 execution_time [13.037ms; 13.053ms] or [-0.062%; +0.062%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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.627ms 10.659ms ± 0.016ms 10.657ms ± 0.010ms 10.668ms 10.689ms 10.697ms 10.733ms 0.72% 0.973 1.931 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.657ms; 10.661ms] or [-0.020%; +0.020%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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 241.777ns 253.134ns ± 13.871ns 246.903ns ± 3.102ns 252.685ns 283.316ns 285.842ns 286.636ns 16.09% 1.326 0.113 5.47% 0.981ns 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.211ns; 255.056ns] or [-0.759%; +0.759%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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.877µs 205.766µs ± 0.421µs 205.712µs ± 0.269µs 206.003µs 206.484µs 206.935µs 207.847µs 1.04% 0.956 2.361 0.20% 0.030µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4811221.954op/s 4859904.094op/s ± 9917.392op/s 4861168.957op/s ± 6358.905op/s 4866774.683op/s 4873372.111op/s 4876443.874op/s 4880975.435op/s 0.41% -0.935 2.265 0.20% 701.266op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.570µs 18.828µs ± 0.141µs 18.821µs ± 0.096µs 18.922µs 19.046µs 19.247µs 19.306µs 2.58% 0.520 0.488 0.75% 0.010µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 51797436.905op/s 53116066.511op/s ± 395676.343op/s 53132283.177op/s ± 270230.506op/s 53379988.066op/s 53716947.618op/s 53767018.113op/s 53850222.452op/s 1.35% -0.471 0.373 0.74% 27978.543op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.866µs 10.942µs ± 0.037µs 10.939µs ± 0.025µs 10.965µs 11.010µs 11.045µs 11.084µs 1.32% 0.570 0.533 0.34% 0.003µs 1 200
normalization/normalize_name/normalize_name/good throughput 90223986.292op/s 91391726.169op/s ± 308084.359op/s 91411953.288op/s ± 211619.017op/s 91618065.749op/s 91866221.703op/s 91951226.190op/s 92026312.392op/s 0.67% -0.548 0.482 0.34% 21784.854op/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.708µs; 205.825µs] or [-0.028%; +0.028%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4858529.639op/s; 4861278.549op/s] or [-0.028%; +0.028%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.808µs; 18.847µs] or [-0.104%; +0.104%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53061229.575op/s; 53170903.447op/s] or [-0.103%; +0.103%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.937µs; 10.947µs] or [-0.047%; +0.047%] None None None
normalization/normalize_name/normalize_name/good throughput [91349028.640op/s; 91434423.698op/s] or [-0.047%; +0.047%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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.412µs 161.791µs ± 0.434µs 161.733µs ± 0.113µs 161.871µs 162.316µs 163.405µs 165.962µs 2.61% 4.972 43.927 0.27% 0.031µ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.731µs; 161.851µs] or [-0.037%; +0.037%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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.427µs 2.450µs ± 0.017µs 2.446µs ± 0.007µs 2.454µs 2.490µs 2.493µs 2.578µs 5.39% 3.040 15.543 0.70% 0.001µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
tags/replace_trace_tags execution_time [2.448µs; 2.452µs] or [-0.097%; +0.097%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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.547ns 191.103ns ± 2.033ns 190.936ns ± 1.517ns 192.060ns 195.201ns 196.879ns 198.809ns 4.12% 0.944 0.766 1.06% 0.144ns 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.821ns; 191.384ns] or [-0.147%; +0.147%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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 14.588ms 14.642ms ± 0.033ms 14.639ms ± 0.015ms 14.654ms 14.684ms 14.760ms 14.824ms 1.27% 2.181 7.984 0.22% 0.002ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching serializing traces from their internal representation to msgpack execution_time [14.637ms; 14.646ms] or [-0.031%; +0.031%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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 536.094µs 536.704µs ± 0.522µs 536.606µs ± 0.176µs 536.809µs 537.328µs 537.983µs 542.221µs 1.05% 6.235 60.722 0.10% 0.037µ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 [536.632µs; 536.777µs] or [-0.013%; +0.013%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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.396µs 25.027µs ± 9.856µs 17.632µs ± 0.136µs 34.007µs 43.139µs 44.469µs 72.025µs 308.49% 1.089 1.177 39.28% 0.697µ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.661µs; 26.392µs] or [-5.458%; +5.458%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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.894µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.917µs 3.919µs 3.920µs 0.21% -0.998 8.178 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 255089234.825op/s 255609096.688op/s ± 186762.236op/s 255623121.112op/s ± 107435.418op/s 255718065.033op/s 255858319.679op/s 255919072.775op/s 256836023.362op/s 0.47% 1.019 8.313 0.07% 13206.084op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 77.069µs 77.686µs ± 0.411µs 77.659µs ± 0.264µs 77.950µs 78.332µs 78.767µs 80.222µs 3.30% 1.615 6.466 0.53% 0.029µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12465390.423op/s 12872685.809op/s ± 67561.205op/s 12876828.162op/s ± 43776.327op/s 12920182.295op/s 12960791.112op/s 12973978.678op/s 12975309.997op/s 0.76% -1.526 5.827 0.52% 4777.299op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 70.637µs 71.136µs ± 0.306µs 71.054µs ± 0.187µs 71.334µs 71.657µs 71.916µs 72.117µs 1.50% 0.566 -0.120 0.43% 0.022µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13866335.605op/s 14057758.197op/s ± 60259.147op/s 14073751.750op/s ± 37159.514op/s 14099253.096op/s 14142643.890op/s 14153517.395op/s 14156843.976op/s 0.59% -0.546 -0.158 0.43% 4260.965op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.894µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.913µs 3.916µs 3.918µs 3.919µs 0.18% -1.301 10.737 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255166217.430op/s 255635185.252op/s ± 169990.636op/s 255634024.889op/s ± 99621.533op/s 255746062.995op/s 255859833.337op/s 255918188.619op/s 256818217.213op/s 0.46% 1.323 10.895 0.07% 12020.153op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 67.432µs 67.841µs ± 0.291µs 67.790µs ± 0.237µs 68.027µs 68.362µs 68.523µs 68.878µs 1.61% 0.666 0.046 0.43% 0.021µs 1 200
credit_card/is_card_number/378282246310005 throughput 14518372.608op/s 14740595.956op/s ± 63134.545op/s 14751452.248op/s ± 51438.665op/s 14803006.864op/s 14820217.011op/s 14826405.933op/s 14829794.540op/s 0.53% -0.646 -0.007 0.43% 4464.286op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 44.725µs 45.223µs ± 0.164µs 45.225µs ± 0.103µs 45.333µs 45.486µs 45.527µs 45.537µs 0.69% -0.354 0.192 0.36% 0.012µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21960268.533op/s 22112894.627op/s ± 80249.854op/s 22111562.594op/s ± 50542.427op/s 22160924.761op/s 22238736.271op/s 22349389.218op/s 22358965.537op/s 1.12% 0.377 0.228 0.36% 5674.522op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.028µs 6.039µs ± 0.013µs 6.037µs ± 0.003µs 6.040µs 6.050µs 6.105µs 6.143µs 1.76% 5.013 31.131 0.21% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 162774143.209op/s 165578866.868op/s ± 342623.452op/s 165640167.741op/s ± 85115.922op/s 165724114.999op/s 165838474.072op/s 165873564.324op/s 165888463.449op/s 0.15% -4.963 30.553 0.21% 24227.137op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.892µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.915µs 3.918µs 3.921µs 3.923µs 0.27% -0.672 6.021 0.09% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254894787.367op/s 255563548.892op/s ± 220637.462op/s 255581831.740op/s ± 134788.173op/s 255696835.866op/s 255860398.885op/s 255907381.485op/s 256910433.507op/s 0.52% 0.692 6.133 0.09% 15601.425op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 63.836µs 65.559µs ± 0.193µs 65.576µs ± 0.059µs 65.639µs 65.745µs 65.786µs 65.819µs 0.37% -5.240 38.607 0.29% 0.014µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15193187.335op/s 15253633.819op/s ± 45726.706op/s 15249431.364op/s ± 13728.710op/s 15262331.803op/s 15296296.017op/s 15457478.195op/s 15665052.108op/s 2.73% 5.357 39.995 0.30% 3233.366op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 52.952µs 53.014µs ± 0.030µs 53.012µs ± 0.020µs 53.032µs 53.065µs 53.089µs 53.115µs 0.20% 0.532 0.092 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18827054.577op/s 18862776.276op/s ± 10536.435op/s 18863793.777op/s ± 7090.336op/s 18870760.700op/s 18877182.395op/s 18882046.029op/s 18884944.922op/s 0.11% -0.529 0.087 0.06% 745.038op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.895µs 3.911µs ± 0.002µs 3.911µs ± 0.001µs 3.913µs 3.915µs 3.917µs 3.917µs 0.15% -1.493 12.313 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255297064.643op/s 255660606.098op/s ± 150552.292op/s 255668399.386op/s ± 83542.099op/s 255743124.733op/s 255852645.532op/s 255913331.934op/s 256748225.982op/s 0.42% 1.514 12.483 0.06% 10645.655op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 49.743µs 49.804µs ± 0.036µs 49.799µs ± 0.020µs 49.820µs 49.880µs 49.908µs 49.922µs 0.25% 1.009 1.142 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 20031240.763op/s 20078706.443op/s ± 14503.584op/s 20080898.046op/s ± 8014.639op/s 20088615.781op/s 20098796.886op/s 20101231.321op/s 20103300.962op/s 0.11% -1.004 1.130 0.07% 1025.558op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 44.651µs 45.209µs ± 0.166µs 45.222µs ± 0.114µs 45.322µs 45.477µs 45.526µs 45.548µs 0.72% -0.333 -0.057 0.37% 0.012µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21955019.308op/s 22119686.618op/s ± 81198.452op/s 22113091.132op/s ± 56018.446op/s 22178399.353op/s 22247348.836op/s 22339429.639op/s 22396023.435op/s 1.28% 0.354 -0.024 0.37% 5741.598op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.028µs 6.036µs ± 0.011µs 6.035µs ± 0.002µs 6.037µs 6.042µs 6.101µs 6.134µs 1.64% 5.944 39.797 0.19% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 163034810.295op/s 165666659.528op/s ± 306960.621op/s 165708671.747op/s ± 57691.376op/s 165776502.263op/s 165850915.851op/s 165874639.138op/s 165888313.890op/s 0.11% -5.908 39.335 0.18% 21705.394op/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.010%; +0.010%] None None None
credit_card/is_card_number/ throughput [255583213.238op/s; 255634980.137op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [77.629µs; 77.743µs] or [-0.073%; +0.073%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12863322.475op/s; 12882049.142op/s] or [-0.073%; +0.073%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [71.094µs; 71.179µs] or [-0.060%; +0.060%] None None None
credit_card/is_card_number/ 378282246310005 throughput [14049406.859op/s; 14066109.535op/s] or [-0.059%; +0.059%] None None None
credit_card/is_card_number/37828224631 execution_time [3.911µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631 throughput [255611626.185op/s; 255658744.320op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/378282246310005 execution_time [67.801µs; 67.881µs] or [-0.060%; +0.060%] None None None
credit_card/is_card_number/378282246310005 throughput [14731846.115op/s; 14749345.797op/s] or [-0.059%; +0.059%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.200µs; 45.246µs] or [-0.050%; +0.050%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [22101772.769op/s; 22124016.485op/s] or [-0.050%; +0.050%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.038µs; 6.041µs] or [-0.029%; +0.029%] None None None
credit_card/is_card_number/x371413321323331 throughput [165531382.553op/s; 165626351.184op/s] or [-0.029%; +0.029%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.912µs; 3.913µs] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/ throughput [255532970.662op/s; 255594127.122op/s] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.532µs; 65.586µs] or [-0.041%; +0.041%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15247296.537op/s; 15259971.101op/s] or [-0.042%; +0.042%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.010µs; 53.019µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18861316.027op/s; 18864236.524op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.911µs; 3.912µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255639740.998op/s; 255681471.198op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [49.799µs; 49.809µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [20076696.386op/s; 20080716.501op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.186µs; 45.232µs] or [-0.051%; +0.051%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [22108433.294op/s; 22130939.943op/s] or [-0.051%; +0.051%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.035µs; 6.038µs] or [-0.026%; +0.026%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [165624117.738op/s; 165709201.318op/s] or [-0.026%; +0.026%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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.972µs 5.055µs ± 0.040µs 5.051µs ± 0.028µs 5.071µs 5.128µs 5.131µs 5.140µs 1.76% 0.402 -0.832 0.80% 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.050µs; 5.061µs] or [-0.111%; +0.111%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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.230µs 3.144µs ± 1.411µs 2.975µs ± 0.027µs 3.000µs 3.299µs 13.616µs 14.964µs 402.98% 7.544 57.375 44.79% 0.100µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [2.948µs; 3.339µs] or [-6.223%; +6.223%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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 49.600ms 50.073ms ± 1.150ms 49.928ms ± 0.066ms 49.999ms 50.164ms 54.509ms 64.212ms 28.61% 10.314 116.916 2.29% 0.081ms 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.913ms; 50.232ms] or [-0.318%; +0.318%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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.903ms 3.913ms ± 0.007ms 3.912ms ± 0.002ms 3.914ms 3.918ms 3.923ms 3.998ms 2.19% 9.437 114.000 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.912ms; 3.914ms] or [-0.025%; +0.025%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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.080µs 33.671µs ± 0.963µs 33.216µs ± 0.049µs 33.342µs 35.717µs 35.742µs 36.962µs 11.28% 1.710 1.109 2.85% 0.068µ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.537µs; 33.804µs] or [-0.396%; +0.396%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca15195 1769700630 dsn/fix-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.849µs 145.987µs ± 1.806µs 145.698µs ± 0.644µs 146.368µs 147.841µs 152.877µs 162.007µs 11.19% 5.130 36.984 1.23% 0.128µ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.737µs; 146.237µs] or [-0.171%; +0.171%] None None None

Baseline

Omitted due to size.

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.

I didn't finish my review because I have to go pick my son from D&D club, but I thought I'd leave what I have so far.


fn try_from(mime: MimeType) -> std::result::Result<Self, Self::Error> {
match mime {
MimeType::Invalid => anyhow::bail!("Invalid MIME type"),
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't mind too much, but something that stood out to me:

  • For all prior releases, we didn't send mime types.
  • Now suddenly, it's an error to not send one?
  • Should we really fail, or do whatever we did before? Should exporter::MimeType be optional, and if it's None, we don't set it or whatever we did before? Then a MimeType.Invalid can map to None?
  • This match isn't exhaustive, because it's repr(C), I'd be fine with unrecognized, non-zero values being a failure (what is happening?!)

@danielsn danielsn added profiling Relates to the profiling* modules. AI Generated PR largely written by AI tools labels Jan 28, 2026
@dd-octo-sts
Copy link

dd-octo-sts bot commented Jan 28, 2026

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.44 MB 8.44 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 91.78 MB 91.80 MB +.01% (+18.05 KB) 🔍
aarch64-apple-darwin
Artifact Baseline Commit Change
/aarch64-apple-darwin/lib/libdatadog_profiling.a 62.79 MB 62.81 MB +.03% (+23.34 KB) 🔍
/aarch64-apple-darwin/lib/libdatadog_profiling.dylib 9.48 MB 9.48 MB +0% (+816 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 106.11 MB 106.14 MB +.02% (+31.53 KB) 🔍
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 10.76 MB 10.76 MB +.01% (+1.41 KB) 🔍
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 25.25 MB 25.26 MB +.03% (+8.50 KB) 🔍
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 75.59 KB 75.59 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 167.19 MB 167.27 MB +.05% (+88.00 KB) 🔍
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 847.18 MB 847.47 MB +.03% (+291.98 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.61 MB 9.61 MB +.01% (+1.50 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 75.59 KB 75.59 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 23.09 MB 23.09 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 48.36 MB 48.38 MB +.03% (+16.83 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 21.32 MB 21.33 MB +.04% (+9.50 KB) 🔍
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 76.76 KB 76.76 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 171.30 MB 171.39 MB +.05% (+96.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 833.92 MB 834.20 MB +.03% (+289.93 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 7.27 MB 7.27 MB +.03% (+2.50 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 76.76 KB 76.76 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 24.70 MB 24.70 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 44.08 MB 44.09 MB +.03% (+16.64 KB) 🔍
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 80.25 MB 80.26 MB +.01% (+15.41 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 9.90 MB 9.90 MB +.03% (+4.00 KB) 🔍
x86_64-apple-darwin
Artifact Baseline Commit Change
/x86_64-apple-darwin/lib/libdatadog_profiling.a 64.66 MB 64.69 MB +.03% (+23.04 KB) 🔍
/x86_64-apple-darwin/lib/libdatadog_profiling.dylib 10.50 MB 10.51 MB +.04% (+4.81 KB) 🔍
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 100.09 MB 100.11 MB +.02% (+25.04 KB) 🔍
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.48 MB 11.48 MB +0% (+888 B) 👌

ivoanjo added a commit to DataDog/dd-trace-rb that referenced this pull request Jan 29, 2026
@github-actions github-actions bot removed the profiling Relates to the profiling* modules. label Jan 29, 2026
@danielsn danielsn changed the title fix(profiling)!: make sure we use the mime type properly fix(profiling)!: set correct headers and mime type for exporter Jan 29, 2026
Comment on lines +173 to +202
// Optional headers (API key, test token)
if let Some(api_key) = &endpoint.api_key {
headers.insert(
"DD-API-KEY",
reqwest::header::HeaderValue::from_str(api_key)?,
);
}
if let Some(test_token) = &endpoint.test_token {
headers.insert(
"X-Datadog-Test-Session-Token",
reqwest::header::HeaderValue::from_str(test_token)?,
);
}

// Add container ID header if available
if let Some(container_id) = entity_id::get_container_id() {
headers.insert(
header::DATADOG_CONTAINER_ID,
reqwest::header::HeaderValue::from_static(container_id),
);
}

// Add entity ID header if available
if let Some(entity_id_value) = entity_id::get_entity_id() {
headers.insert(
header::DATADOG_ENTITY_ID,
reqwest::header::HeaderValue::from_static(entity_id_value),
);
}

Copy link
Member

Choose a reason for hiding this comment

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

So this code seems very close to

pub fn to_request_builder(&self, user_agent: &str) -> anyhow::Result<HttpRequestBuilder> {
and for instance it's missing the DD_EXTERNAL_ENV -- are we missing that one?

More as a deeper question, should we perhaps try to share more code with ddcommon here? E.g. it looks very easy to me for them to diverge (as it just happened to us)

@danielsn
Copy link
Contributor Author

#1492 covers the mime changes in a simpler and cleaner way

@danielsn
Copy link
Contributor Author

#1493 fixes the header issue

@danielsn danielsn closed this Jan 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI Generated PR largely written by AI tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants