Skip to content

feat(runtime)!: add shared runtime#1602

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 86 commits intomainfrom
vianney/implement-shared-runtime
Apr 8, 2026
Merged

feat(runtime)!: add shared runtime#1602
gh-worker-dd-mergequeue-cf854d[bot] merged 86 commits intomainfrom
vianney/implement-shared-runtime

Conversation

@VianneyRuhlmann
Copy link
Copy Markdown
Contributor

@VianneyRuhlmann VianneyRuhlmann commented Feb 18, 2026

What does this PR do?

Implementing the shared runtime

This PR introduces a shared runtime to be used across common components it offers two main features:

  • Provide access to a tokio runtime to call async code in blocking functions e.g. TraceExporter::send
  • Spawn background workers on the runtime which can be paused and restarted on forks
    The shared runtime runs the workers using the PausableWorker

Update to the Worker trait

This PR also refactors the Worker trait to make it execute a trigger-run loop. The worker can be paused between two calls to run but not within a run execution. This is the same tradeoff between fork-time impact and worker execution than the one in dd-trace-py. Some extra hooks where introduced to allow porting the existing workers to this new lifecycle (e.g. initial_trigger, shutdown).

Expose ffi

The shared runtime FFI exposes an pointer to the SharedRuntime which is wrapped in an Arc. The pointer used by the users is pointing directly at the runtime and the Arc is only materialized when the pointer is dropped.

Porting the existing workers

The update to the worker trait needs to be applied to existing workers (stats exporter, info fetcher, telemetry)

Stats exporter

The stats exporter doesn't need the cancellation token anymore as the flushing of remaining stats is handled in the shutdown hook. The trace exporter can trigger the flush by stopping the worker with the handle

Info fetcher

The info fetcher uses the on_pause hook to release the reference to the IoStack. This used to be done by the TraceExporter stop_worker but is now handled directly in the worker.

Telemetry worker

The telemetry worker required some refactor to fit in the new Worker trait. The main issue is that the trigger needs to save the next action to be used in the run function. This could be done by passing the return value of trigger to run but I'm not sure this will be a common pattern in workers. If this turns out to be we can reconsider it.

Losing telemetry payloads on shutdown

Currently when the telemetry worker is shut down all actions sent before the stop action are processed. With this refactor it's no longer the cases as the shutdown hook bypasses the actions queued. This is deemed acceptable since there's currently no way to know if an action has been posted before or after the stop, this means any action is already at risk of being ignored.

Using the shared runtime in TraceExporter

This PR also integrates the shared runtime in the Trace Exporter. We can now pass a SharedRuntime to the TraceExporter and the workers will be spawned on it. Fork hooks from the TraceExporter are removed as this is now handled by the SharedRuntime. The TraceExporter also uses the shared runtime to block on async code.

Motivation

Be able to share a common tokio runtime across components and manage fork-safety in a single place.

Additional Notes

This PR is a breaking change especially for language which register "fork-safety" hooks as this should now be handled in the SharedRuntime.

How to test the change?

Describe here in detail how the change can be validated.

@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Feb 18, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-03-30 14:12:25

Comparing candidate commit 41bff26 in PR branch vianney/implement-shared-runtime with baseline commit 8d2029d in branch main.

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

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:benching deserializing traces from msgpack to their internal representation

  • 🟩 execution_time [-3.402ms; -2.935ms] or [-6.664%; -5.749%]

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 41bff26 1774878911 vianney/implement-shared-runtime
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_timestamped_x1000 execution_time 4.204ms 4.210ms ± 0.008ms 4.209ms ± 0.002ms 4.211ms 4.214ms 4.217ms 4.316ms 2.53% 11.789 153.034 0.19% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample_timestamped_x1000 execution_time [4.209ms; 4.211ms] or [-0.026%; +0.026%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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 727.073µs 728.931µs ± 0.647µs 728.933µs ± 0.401µs 729.323µs 729.973µs 730.519µs 730.690µs 0.24% 0.004 0.087 0.09% 0.046µ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 [728.842µs; 729.021µs] or [-0.012%; +0.012%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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 159.843µs 161.225µs ± 0.677µs 161.106µs ± 0.192µs 161.399µs 161.873µs 162.812µs 168.953µs 4.87% 7.786 84.050 0.42% 0.048µ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.131µs; 161.318µs] or [-0.058%; +0.058%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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.914µs 5.015µs ± 0.057µs 5.027µs ± 0.038µs 5.048µs 5.120µs 5.130µs 5.132µs 2.08% 0.239 -0.770 1.13% 0.004µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
ip_address/quantize_peer_ip_address_benchmark execution_time [5.007µs; 5.023µs] or [-0.157%; +0.157%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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 47.477ms 47.879ms ± 1.145ms 47.733ms ± 0.116ms 47.854ms 47.994ms 54.793ms 58.806ms 23.20% 8.092 66.635 2.39% 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 [47.720ms; 48.038ms] or [-0.331%; +0.331%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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/2598 execution_time 3.408ms 3.441ms ± 0.017ms 3.437ms ± 0.010ms 3.453ms 3.477ms 3.488ms 3.497ms 1.75% 0.893 0.539 0.50% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2598 execution_time [3.439ms; 3.443ms] or [-0.069%; +0.069%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_serialize_compressed_pprof_timestamped_x1000 execution_time 937.054µs 940.938µs ± 2.171µs 940.351µs ± 0.858µs 941.587µs 945.276µs 946.216µs 955.093µs 1.57% 2.112 8.375 0.23% 0.154µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_serialize_compressed_pprof_timestamped_x1000 execution_time [940.637µs; 941.238µs] or [-0.032%; +0.032%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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.740ms 14.805ms ± 0.027ms 14.805ms ± 0.016ms 14.820ms 14.842ms 14.862ms 14.983ms 1.20% 1.322 8.335 0.18% 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.801ms; 14.808ms] or [-0.025%; +0.025%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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 191.147ns 193.577ns ± 1.984ns 193.311ns ± 1.329ns 194.555ns 197.664ns 199.397ns 202.213ns 4.60% 1.318 2.192 1.02% 0.140ns 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 [193.302ns; 193.851ns] or [-0.142%; +0.142%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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 15.176µs 15.670µs ± 0.253µs 15.645µs ± 0.121µs 15.768µs 16.025µs 16.193µs 17.447µs 11.51% 2.460 14.179 1.61% 0.018µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [15.635µs; 15.705µs] or [-0.224%; +0.224%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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 5.424µs 5.501µs ± 0.039µs 5.495µs ± 0.028µs 5.525µs 5.570µs 5.588µs 5.596µs 1.82% 0.443 -0.561 0.70% 0.003µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [5.495µs; 5.506µs] or [-0.097%; +0.097%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample_frames_x1000 execution_time 4.239ms 4.244ms ± 0.003ms 4.244ms ± 0.002ms 4.246ms 4.249ms 4.252ms 4.262ms 0.42% 1.736 7.929 0.07% 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 [4.244ms; 4.245ms] or [-0.009%; +0.009%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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.396µs 2.425µs ± 0.014µs 2.423µs ± 0.007µs 2.430µs 2.462µs 2.469µs 2.475µs 2.15% 1.374 2.516 0.59% 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.423µs; 2.427µs] or [-0.082%; +0.082%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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 534.762µs 535.664µs ± 0.515µs 535.588µs ± 0.341µs 535.982µs 536.649µs 537.068µs 537.265µs 0.31% 0.690 0.170 0.10% 0.036µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1861278.070op/s 1866842.714op/s ± 1794.397op/s 1867107.319op/s ± 1191.054op/s 1868217.426op/s 1869280.592op/s 1869776.583op/s 1869990.968op/s 0.15% -0.685 0.160 0.10% 126.883op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 380.147µs 381.179µs ± 0.443µs 381.120µs ± 0.300µs 381.490µs 381.949µs 382.178µs 382.846µs 0.45% 0.582 0.467 0.12% 0.031µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2612016.617op/s 2623446.198op/s ± 3049.576op/s 2623848.352op/s ± 2064.471op/s 2625616.635op/s 2627902.725op/s 2629225.180op/s 2630563.442op/s 0.26% -0.574 0.451 0.12% 215.638op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 194.511µs 195.034µs ± 0.269µs 194.973µs ± 0.141µs 195.171µs 195.515µs 195.767µs 196.574µs 0.82% 1.468 4.760 0.14% 0.019µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5087144.798op/s 5127324.840op/s ± 7048.755op/s 5128904.210op/s ± 3715.248op/s 5132035.628op/s 5135540.809op/s 5140270.404op/s 5141087.681op/s 0.24% -1.449 4.641 0.14% 498.422op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.858µs 38.199µs ± 0.126µs 38.193µs ± 0.082µs 38.284µs 38.407µs 38.457µs 38.495µs 0.79% -0.030 -0.118 0.33% 0.009µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 25977335.393op/s 26178650.133op/s ± 86042.854op/s 26183071.697op/s ± 56385.573op/s 26232652.634op/s 26329915.848op/s 26386833.191op/s 26414205.560op/s 0.88% 0.048 -0.108 0.33% 6084.149op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.807µs 45.942µs ± 0.127µs 45.918µs ± 0.040µs 45.973µs 46.091µs 46.217µs 47.365µs 3.15% 7.419 77.423 0.28% 0.009µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21112816.108op/s 21766509.643op/s ± 58998.426op/s 21778004.985op/s ± 18899.345op/s 21794218.296op/s 21811773.882op/s 21819390.773op/s 21830613.022op/s 0.24% -7.220 74.297 0.27% 4171.819op/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 [535.593µs; 535.736µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1866594.028op/s; 1867091.400op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [381.117µs; 381.240µs] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2623023.556op/s; 2623868.840op/s] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [194.997µs; 195.071µs] or [-0.019%; +0.019%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5126347.951op/s; 5128301.730op/s] or [-0.019%; +0.019%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [38.182µs; 38.217µs] or [-0.046%; +0.046%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26166725.421op/s; 26190574.845op/s] or [-0.046%; +0.046%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.925µs; 45.960µs] or [-0.038%; +0.038%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21758333.029op/s; 21774686.258op/s] or [-0.038%; +0.038%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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 290.176µs 290.881µs ± 0.613µs 290.784µs ± 0.174µs 290.994µs 291.487µs 292.381µs 297.941µs 2.46% 7.997 86.614 0.21% 0.043µ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 [290.796µs; 290.966µs] or [-0.029%; +0.029%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time 185.767µs 186.275µs ± 0.293µs 186.282µs ± 0.204µs 186.439µs 186.795µs 187.059µs 187.252µs 0.52% 0.631 0.291 0.16% 0.021µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5340406.167op/s 5368411.768op/s ± 8446.583op/s 5368199.793op/s ± 5865.166op/s 5375063.354op/s 5380505.627op/s 5382796.786op/s 5383085.967op/s 0.28% -0.622 0.272 0.16% 597.264op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.960µs 18.094µs ± 0.122µs 18.078µs ± 0.039µs 18.121µs 18.205µs 18.252µs 19.575µs 8.28% 8.959 105.540 0.67% 0.009µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 51085743.772op/s 55270543.748op/s ± 353196.538op/s 55314387.923op/s ± 117967.265op/s 55428228.538op/s 55553775.106op/s 55666956.779op/s 55680824.413op/s 0.66% -8.415 96.774 0.64% 24974.767op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 9.920µs 9.992µs ± 0.061µs 9.991µs ± 0.037µs 10.022µs 10.056µs 10.163µs 10.465µs 4.74% 3.237 20.415 0.61% 0.004µs 1 200
normalization/normalize_name/normalize_name/good throughput 95558608.322op/s 100086142.247op/s ± 599569.739op/s 100088236.898op/s ± 367230.346op/s 100610984.791op/s 100689724.616op/s 100737108.655op/s 100809355.108op/s 0.72% -3.027 18.412 0.60% 42395.983op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time [186.235µs; 186.316µs] or [-0.022%; +0.022%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5367241.153op/s; 5369582.383op/s] or [-0.022%; +0.022%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.077µs; 18.111µs] or [-0.094%; +0.094%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [55221594.105op/s; 55319493.392op/s] or [-0.089%; +0.089%] None None None
normalization/normalize_name/normalize_name/good execution_time [9.983µs; 10.000µs] or [-0.085%; +0.085%] None None None
normalization/normalize_name/normalize_name/good throughput [100003047.648op/s; 100169236.847op/s] or [-0.083%; +0.083%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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.902µs 3.917µs ± 0.004µs 3.916µs ± 0.003µs 3.919µs 3.924µs 3.927µs 3.928µs 0.29% 0.333 0.522 0.10% 0.000µs 1 200
credit_card/is_card_number/ throughput 254606823.363op/s 255322257.202op/s ± 260016.473op/s 255343198.906op/s ± 181097.971op/s 255513256.257op/s 255668656.625op/s 255745786.217op/s 256286855.033op/s 0.37% -0.325 0.526 0.10% 18385.941op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 79.626µs 80.035µs ± 0.248µs 79.976µs ± 0.146µs 80.169µs 80.521µs 80.874µs 80.995µs 1.27% 1.171 1.460 0.31% 0.018µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12346366.131op/s 12494579.232op/s ± 38651.770op/s 12503730.653op/s ± 22888.808op/s 12523808.291op/s 12538259.427op/s 12552884.024op/s 12558734.510op/s 0.44% -1.152 1.393 0.31% 2733.093op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 73.199µs 73.541µs ± 0.184µs 73.515µs ± 0.125µs 73.662µs 73.882µs 73.996µs 74.084µs 0.77% 0.435 -0.345 0.25% 0.013µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13498201.960op/s 13597879.492op/s ± 34003.070op/s 13602578.369op/s ± 23151.788op/s 13623445.951op/s 13647908.596op/s 13657748.582op/s 13661324.319op/s 0.43% -0.424 -0.360 0.25% 2404.380op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.903µs 3.915µs ± 0.004µs 3.915µs ± 0.002µs 3.917µs 3.922µs 3.925µs 3.928µs 0.33% 0.482 0.555 0.09% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254598777.647op/s 255406561.208op/s ± 240588.824op/s 255442096.955op/s ± 147640.112op/s 255565222.917op/s 255739792.511op/s 255882422.322op/s 256186107.070op/s 0.29% -0.475 0.551 0.09% 17012.199op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 69.599µs 70.013µs ± 0.252µs 69.990µs ± 0.154µs 70.143µs 70.481µs 70.731µs 70.786µs 1.14% 0.571 0.170 0.36% 0.018µs 1 200
credit_card/is_card_number/378282246310005 throughput 14127116.585op/s 14283214.388op/s ± 51261.597op/s 14287827.543op/s ± 31453.371op/s 14319473.410op/s 14361817.795op/s 14365962.150op/s 14367972.002op/s 0.56% -0.552 0.134 0.36% 3624.742op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 52.235µs 52.390µs ± 0.054µs 52.391µs ± 0.034µs 52.423µs 52.473µs 52.518µs 52.542µs 0.29% -0.054 0.201 0.10% 0.004µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19032366.582op/s 19087582.599op/s ± 19735.934op/s 19087161.975op/s ± 12233.529op/s 19099999.523op/s 19120083.661op/s 19135167.439op/s 19144305.667op/s 0.30% 0.061 0.203 0.10% 1395.541op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 5.736µs 5.889µs ± 0.056µs 5.892µs ± 0.040µs 5.930µs 5.984µs 6.007µs 6.012µs 2.05% -0.022 -0.297 0.95% 0.004µs 1 200
credit_card/is_card_number/x371413321323331 throughput 166326552.702op/s 169827572.838op/s ± 1620100.967op/s 169731842.608op/s ± 1161212.252op/s 171040157.024op/s 172237615.843op/s 173670855.100op/s 174349206.675op/s 2.72% 0.071 -0.272 0.95% 114558.438op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.901µs 3.916µs ± 0.004µs 3.915µs ± 0.003µs 3.919µs 3.923µs 3.926µs 3.929µs 0.34% 0.390 0.819 0.10% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254529407.614op/s 255334843.805op/s ± 249951.701op/s 255395466.731op/s ± 167114.661op/s 255522305.752op/s 255624436.984op/s 255712392.219op/s 256328550.173op/s 0.37% -0.382 0.827 0.10% 17674.254op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.214µs 64.395µs ± 0.128µs 64.362µs ± 0.068µs 64.456µs 64.645µs 64.878µs 64.959µs 0.93% 1.642 3.568 0.20% 0.009µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15394363.630op/s 15529260.932op/s ± 30748.875op/s 15537105.797op/s ± 16498.371op/s 15550476.016op/s 15563368.658op/s 15569416.575op/s 15572881.384op/s 0.23% -1.625 3.489 0.20% 2174.274op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 57.408µs 57.567µs ± 0.094µs 57.549µs ± 0.054µs 57.617µs 57.747µs 57.859µs 57.941µs 0.68% 1.097 1.675 0.16% 0.007µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 17258896.440op/s 17371123.195op/s ± 28173.198op/s 17376630.173op/s ± 16405.599op/s 17391293.053op/s 17407191.013op/s 17413911.574op/s 17419178.516op/s 0.24% -1.086 1.632 0.16% 1992.146op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.897µs 3.917µs ± 0.004µs 3.917µs ± 0.003µs 3.919µs 3.924µs 3.928µs 3.930µs 0.34% 0.091 2.334 0.11% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254445980.242op/s 255296706.276op/s ± 269136.895op/s 255322943.545op/s ± 175233.600op/s 255477569.388op/s 255611790.996op/s 255686098.845op/s 256599835.169op/s 0.50% -0.078 2.373 0.11% 19030.852op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.623µs 54.805µs ± 0.153µs 54.768µs ± 0.066µs 54.851µs 55.087µs 55.413µs 55.636µs 1.58% 2.257 7.096 0.28% 0.011µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17974061.955op/s 18246680.417op/s ± 50732.599op/s 18258846.386op/s ± 22110.343op/s 18277455.216op/s 18298532.460op/s 18303182.101op/s 18307454.796op/s 0.27% -2.224 6.882 0.28% 3587.336op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 52.172µs 52.341µs ± 0.083µs 52.346µs ± 0.059µs 52.395µs 52.491µs 52.534µs 52.556µs 0.40% 0.273 -0.515 0.16% 0.006µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19027215.756op/s 19105544.074op/s ± 30170.550op/s 19103715.365op/s ± 21599.328op/s 19130557.516op/s 19150925.181op/s 19156197.879op/s 19167350.335op/s 0.33% -0.267 -0.523 0.16% 2133.380op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 5.763µs 5.894µs ± 0.050µs 5.895µs ± 0.036µs 5.932µs 5.977µs 6.004µs 6.006µs 1.88% 0.118 -0.392 0.84% 0.004µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 166501261.669op/s 169684652.098op/s ± 1434169.487op/s 169637985.342op/s ± 1023494.850op/s 170564176.354op/s 171898638.109op/s 172463813.011op/s 173533607.761op/s 2.30% -0.078 -0.391 0.84% 101411.097op/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.916µs; 3.917µs] or [-0.014%; +0.014%] None None None
credit_card/is_card_number/ throughput [255286221.420op/s; 255358292.985op/s] or [-0.014%; +0.014%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [80.001µs; 80.070µs] or [-0.043%; +0.043%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12489222.469op/s; 12499935.996op/s] or [-0.043%; +0.043%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [73.516µs; 73.567µs] or [-0.035%; +0.035%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13593166.993op/s; 13602591.990op/s] or [-0.035%; +0.035%] None None None
credit_card/is_card_number/37828224631 execution_time [3.915µs; 3.916µs] or [-0.013%; +0.013%] None None None
credit_card/is_card_number/37828224631 throughput [255373217.911op/s; 255439904.506op/s] or [-0.013%; +0.013%] None None None
credit_card/is_card_number/378282246310005 execution_time [69.978µs; 70.048µs] or [-0.050%; +0.050%] None None None
credit_card/is_card_number/378282246310005 throughput [14276110.024op/s; 14290318.752op/s] or [-0.050%; +0.050%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.383µs; 52.398µs] or [-0.014%; +0.014%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19084847.389op/s; 19090317.810op/s] or [-0.014%; +0.014%] None None None
credit_card/is_card_number/x371413321323331 execution_time [5.881µs; 5.897µs] or [-0.132%; +0.132%] None None None
credit_card/is_card_number/x371413321323331 throughput [169603042.426op/s; 170052103.251op/s] or [-0.132%; +0.132%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.916µs; 3.917µs] or [-0.014%; +0.014%] None None None
credit_card/is_card_number_no_luhn/ throughput [255300202.904op/s; 255369484.707op/s] or [-0.014%; +0.014%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [64.377µs; 64.413µs] or [-0.028%; +0.028%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15524999.433op/s; 15533522.430op/s] or [-0.027%; +0.027%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [57.554µs; 57.580µs] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17367218.661op/s; 17375027.729op/s] or [-0.022%; +0.022%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.916µs; 3.918µs] or [-0.015%; +0.015%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255259406.491op/s; 255334006.061op/s] or [-0.015%; +0.015%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.784µs; 54.826µs] or [-0.039%; +0.039%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18239649.367op/s; 18253711.467op/s] or [-0.039%; +0.039%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.329µs; 52.352µs] or [-0.022%; +0.022%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19101362.726op/s; 19109725.422op/s] or [-0.022%; +0.022%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [5.887µs; 5.901µs] or [-0.117%; +0.117%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [169485890.000op/s; 169883414.196op/s] or [-0.117%; +0.117%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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 14.871ms 14.918ms ± 0.025ms 14.915ms ± 0.013ms 14.928ms 14.962ms 15.011ms 15.031ms 0.78% 1.631 4.437 0.16% 0.002ms 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 [14.915ms; 14.922ms] or [-0.023%; +0.023%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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 243.031ns 252.526ns ± 11.978ns 247.794ns ± 1.914ns 252.202ns 284.423ns 293.175ns 294.701ns 18.93% 2.181 3.755 4.73% 0.847ns 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 [250.866ns; 254.186ns] or [-0.657%; +0.657%] None None None

Group 20

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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 35.319µs 35.772µs ± 0.679µs 35.459µs ± 0.098µs 35.684µs 37.141µs 37.251µs 39.148µs 10.40% 1.878 2.880 1.89% 0.048µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
redis/obfuscate_redis_string execution_time [35.678µs; 35.866µs] or [-0.263%; +0.263%] None None None

Group 21

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 41bff26 1774878911 vianney/implement-shared-runtime
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 145.236µs 147.125µs ± 1.917µs 146.889µs ± 0.510µs 147.352µs 148.715µs 156.077µs 165.577µs 12.72% 6.107 48.284 1.30% 0.136µ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 [146.859µs; 147.390µs] or [-0.181%; +0.181%] None None None

Baseline

Omitted due to size.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 20, 2026

Clippy Allow Annotation Report

Comparing clippy allow annotations between branches:

  • Base Branch: origin/main
  • PR Branch: origin/vianney/implement-shared-runtime

Summary by Rule

Rule Base Branch PR Branch Change
unwrap_used 21 21 No change (0%)
Total 21 21 No change (0%)

Annotation Counts by File

File Base Branch PR Branch Change
libdd-common/src/lib.rs 3 3 No change (0%)
libdd-data-pipeline/src/stats_exporter.rs 1 1 No change (0%)
libdd-data-pipeline/src/telemetry/mod.rs 1 1 No change (0%)
libdd-data-pipeline/src/trace_exporter/mod.rs 2 2 No change (0%)
libdd-telemetry/src/worker/mod.rs 13 13 No change (0%)
libdd-telemetry/src/worker/store.rs 1 1 No change (0%)

Annotation Stats by Crate

Crate Base Branch PR Branch Change
clippy-annotation-reporter 5 5 No change (0%)
datadog-ffe-ffi 1 1 No change (0%)
datadog-ipc 21 20 ✅ -1 (-4.8%)
datadog-live-debugger 6 6 No change (0%)
datadog-live-debugger-ffi 10 10 No change (0%)
datadog-profiling-replayer 4 4 No change (0%)
datadog-remote-config 3 3 No change (0%)
datadog-sidecar 55 55 No change (0%)
libdd-common 10 10 No change (0%)
libdd-common-ffi 12 12 No change (0%)
libdd-data-pipeline 5 5 No change (0%)
libdd-ddsketch 2 2 No change (0%)
libdd-dogstatsd-client 1 1 No change (0%)
libdd-profiling 13 13 No change (0%)
libdd-telemetry 19 19 No change (0%)
libdd-tinybytes 4 4 No change (0%)
libdd-trace-normalization 2 2 No change (0%)
libdd-trace-obfuscation 8 8 No change (0%)
libdd-trace-utils 15 15 No change (0%)
Total 196 195 ✅ -1 (-0.5%)

About This Report

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

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants