feat(trace_exporter)!: add restart_after_fork configuration option [APMSP-3843]#2263
feat(trace_exporter)!: add restart_after_fork configuration option [APMSP-3843]#2263VianneyRuhlmann wants to merge 3 commits into
restart_after_fork configuration option [APMSP-3843]#2263Conversation
📚 Documentation Check Results📦
|
🔒 Cargo Deny Results📦
|
🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: ca5e3de | Docs | Datadog PR Page | Give us feedback! |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5f92c2c317
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
BenchmarksComparisonBenchmark execution time: 2026-07-23 13:19:04 Comparing candidate commit ca5e3de in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 24 metrics, 0 unstable metrics.
|
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz | ca5e3de | 1784812061 | vianney/configure-restart-after-fork |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| trace_buffer/1_senders/10us_delay | execution_time | 59.947ms | 60.078ms ± 0.033ms | 60.069ms ± 0.008ms | 60.081ms | 60.131ms | 60.209ms | 60.224ms | 0.26% | 1.697 | 7.102 | 0.05% | 0.002ms | 1 | 200 |
| trace_buffer/1_senders/10us_delay | throughput | 14944.295op/s | 14980.646op/s ± 8.129op/s | 14982.650op/s ± 2.038op/s | 14984.034op/s | 14987.803op/s | 14995.035op/s | 15013.236op/s | 0.20% | -1.687 | 7.086 | 0.05% | 0.575op/s | 1 | 200 |
| trace_buffer/1_senders/1us_delay | execution_time | 50.135ms | 50.446ms ± 0.217ms | 50.403ms ± 0.111ms | 50.526ms | 50.902ms | 51.217ms | 51.306ms | 1.79% | 1.554 | 2.921 | 0.43% | 0.015ms | 1 | 200 |
| trace_buffer/1_senders/1us_delay | throughput | 17541.891op/s | 17841.093op/s ± 76.088op/s | 17855.935op/s ± 39.550op/s | 17891.893op/s | 17928.159op/s | 17940.483op/s | 17951.527op/s | 0.54% | -1.522 | 2.793 | 0.43% | 5.380op/s | 1 | 200 |
| trace_buffer/1_senders/no_delay | execution_time | 349.768µs | 357.921µs ± 3.825µs | 357.645µs ± 1.559µs | 359.282µs | 363.531µs | 369.796µs | 381.653µs | 6.71% | 1.636 | 7.876 | 1.07% | 0.270µs | 1 | 200 |
| trace_buffer/1_senders/no_delay | throughput | 2358164.880op/s | 2514799.069op/s ± 26447.401op/s | 2516458.623op/s ± 10919.161op/s | 2526999.577op/s | 2557446.303op/s | 2568520.504op/s | 2573136.180op/s | 2.25% | -1.417 | 6.610 | 1.05% | 1870.114op/s | 1 | 200 |
| trace_buffer/2_senders/10us_delay | execution_time | 60.004ms | 60.133ms ± 0.041ms | 60.130ms ± 0.023ms | 60.147ms | 60.219ms | 60.245ms | 60.277ms | 0.24% | 0.997 | 1.341 | 0.07% | 0.003ms | 1 | 200 |
| trace_buffer/2_senders/10us_delay | throughput | 29862.325op/s | 29933.681op/s ± 20.597op/s | 29935.185op/s ± 11.254op/s | 29949.047op/s | 29957.341op/s | 29961.890op/s | 29997.783op/s | 0.21% | -0.992 | 1.335 | 0.07% | 1.456op/s | 1 | 200 |
| trace_buffer/2_senders/1us_delay | execution_time | 50.852ms | 51.135ms ± 0.097ms | 51.144ms ± 0.056ms | 51.201ms | 51.290ms | 51.347ms | 51.383ms | 0.47% | -0.123 | 0.175 | 0.19% | 0.007ms | 1 | 200 |
| trace_buffer/2_senders/1us_delay | throughput | 35030.738op/s | 35201.343op/s ± 66.950op/s | 35194.401op/s ± 38.550op/s | 35232.459op/s | 35315.159op/s | 35351.793op/s | 35396.694op/s | 0.57% | 0.136 | 0.181 | 0.19% | 4.734op/s | 1 | 200 |
| trace_buffer/2_senders/no_delay | execution_time | 1.556ms | 1.655ms ± 0.041ms | 1.656ms ± 0.029ms | 1.684ms | 1.717ms | 1.743ms | 1.768ms | 6.81% | -0.035 | -0.362 | 2.49% | 0.003ms | 1 | 200 |
| trace_buffer/2_senders/no_delay | throughput | 1017940.324op/s | 1088299.641op/s ± 27282.650op/s | 1087225.639op/s ± 18915.541op/s | 1106970.658op/s | 1135133.465op/s | 1151958.658op/s | 1157092.824op/s | 6.43% | 0.157 | -0.353 | 2.50% | 1929.175op/s | 1 | 200 |
| trace_buffer/4_senders/10us_delay | execution_time | 60.140ms | 60.212ms ± 0.064ms | 60.197ms ± 0.024ms | 60.226ms | 60.303ms | 60.411ms | 60.695ms | 0.83% | 3.219 | 17.574 | 0.11% | 0.005ms | 1 | 200 |
| trace_buffer/4_senders/10us_delay | throughput | 59313.161op/s | 59788.664op/s ± 63.578op/s | 59803.786op/s ± 23.826op/s | 59826.643op/s | 59848.338op/s | 59855.685op/s | 59860.484op/s | 0.09% | -3.190 | 17.280 | 0.11% | 4.496op/s | 1 | 200 |
| trace_buffer/4_senders/1us_delay | execution_time | 51.179ms | 51.368ms ± 0.106ms | 51.352ms ± 0.063ms | 51.416ms | 51.563ms | 51.694ms | 51.812ms | 0.90% | 1.222 | 1.865 | 0.21% | 0.008ms | 1 | 200 |
| trace_buffer/4_senders/1us_delay | throughput | 69482.587op/s | 70082.507op/s ± 144.480op/s | 70104.578op/s ± 85.672op/s | 70189.248op/s | 70261.865op/s | 70301.022op/s | 70341.323op/s | 0.34% | -1.207 | 1.813 | 0.21% | 10.216op/s | 1 | 200 |
| trace_buffer/4_senders/no_delay | execution_time | 3.502ms | 3.601ms ± 0.031ms | 3.601ms ± 0.020ms | 3.621ms | 3.653ms | 3.668ms | 3.680ms | 2.19% | -0.197 | 0.073 | 0.87% | 0.002ms | 1 | 200 |
| trace_buffer/4_senders/no_delay | throughput | 978265.176op/s | 999932.460op/s ± 8762.758op/s | 999737.541op/s ± 5589.379op/s | 1005318.512op/s | 1015221.746op/s | 1020953.262op/s | 1028016.358op/s | 2.83% | 0.251 | 0.119 | 0.87% | 619.621op/s | 1 | 200 |
| trace_buffer/8_senders/10us_delay | execution_time | 60.236ms | 60.322ms ± 0.064ms | 60.308ms ± 0.027ms | 60.339ms | 60.450ms | 60.517ms | 60.776ms | 0.78% | 2.634 | 12.659 | 0.11% | 0.004ms | 1 | 200 |
| trace_buffer/8_senders/10us_delay | throughput | 118466.906op/s | 119358.636op/s ± 125.430op/s | 119387.830op/s ± 53.574op/s | 119435.956op/s | 119483.878op/s | 119516.659op/s | 119530.262op/s | 0.12% | -2.610 | 12.427 | 0.10% | 8.869op/s | 1 | 200 |
| trace_buffer/8_senders/1us_delay | execution_time | 51.503ms | 51.836ms ± 0.198ms | 51.808ms ± 0.123ms | 51.946ms | 52.213ms | 52.314ms | 52.552ms | 1.44% | 0.788 | 0.289 | 0.38% | 0.014ms | 1 | 200 |
| trace_buffer/8_senders/1us_delay | throughput | 137006.613op/s | 138901.551op/s ± 529.625op/s | 138973.572op/s ± 331.963op/s | 139298.671op/s | 139665.231op/s | 139779.734op/s | 139798.575op/s | 0.59% | -0.769 | 0.245 | 0.38% | 37.450op/s | 1 | 200 |
| trace_buffer/8_senders/no_delay | execution_time | 6.636ms | 6.976ms ± 0.086ms | 6.984ms ± 0.045ms | 7.027ms | 7.094ms | 7.120ms | 7.142ms | 2.27% | -1.379 | 3.221 | 1.23% | 0.006ms | 1 | 200 |
| trace_buffer/8_senders/no_delay | throughput | 1008119.916op/s | 1032232.267op/s ± 12936.672op/s | 1030962.858op/s ± 6614.994op/s | 1037728.138op/s | 1054343.333op/s | 1077882.516op/s | 1085046.797op/s | 5.25% | 1.503 | 3.654 | 1.25% | 914.761op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| trace_buffer/1_senders/10us_delay | execution_time | [60.073ms; 60.082ms] or [-0.008%; +0.008%] | None | None | None |
| trace_buffer/1_senders/10us_delay | throughput | [14979.519op/s; 14981.772op/s] or [-0.008%; +0.008%] | None | None | None |
| trace_buffer/1_senders/1us_delay | execution_time | [50.416ms; 50.476ms] or [-0.059%; +0.059%] | None | None | None |
| trace_buffer/1_senders/1us_delay | throughput | [17830.548op/s; 17851.638op/s] or [-0.059%; +0.059%] | None | None | None |
| trace_buffer/1_senders/no_delay | execution_time | [357.391µs; 358.452µs] or [-0.148%; +0.148%] | None | None | None |
| trace_buffer/1_senders/no_delay | throughput | [2511133.713op/s; 2518464.424op/s] or [-0.146%; +0.146%] | None | None | None |
| trace_buffer/2_senders/10us_delay | execution_time | [60.127ms; 60.139ms] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/2_senders/10us_delay | throughput | [29930.826op/s; 29936.535op/s] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/2_senders/1us_delay | execution_time | [51.121ms; 51.148ms] or [-0.026%; +0.026%] | None | None | None |
| trace_buffer/2_senders/1us_delay | throughput | [35192.064op/s; 35210.621op/s] or [-0.026%; +0.026%] | None | None | None |
| trace_buffer/2_senders/no_delay | execution_time | [1.649ms; 1.661ms] or [-0.347%; +0.347%] | None | None | None |
| trace_buffer/2_senders/no_delay | throughput | [1084518.529op/s; 1092080.754op/s] or [-0.347%; +0.347%] | None | None | None |
| trace_buffer/4_senders/10us_delay | execution_time | [60.203ms; 60.221ms] or [-0.015%; +0.015%] | None | None | None |
| trace_buffer/4_senders/10us_delay | throughput | [59779.853op/s; 59797.476op/s] or [-0.015%; +0.015%] | None | None | None |
| trace_buffer/4_senders/1us_delay | execution_time | [51.354ms; 51.383ms] or [-0.029%; +0.029%] | None | None | None |
| trace_buffer/4_senders/1us_delay | throughput | [70062.483op/s; 70102.531op/s] or [-0.029%; +0.029%] | None | None | None |
| trace_buffer/4_senders/no_delay | execution_time | [3.596ms; 3.605ms] or [-0.121%; +0.121%] | None | None | None |
| trace_buffer/4_senders/no_delay | throughput | [998718.026op/s; 1001146.894op/s] or [-0.121%; +0.121%] | None | None | None |
| trace_buffer/8_senders/10us_delay | execution_time | [60.314ms; 60.331ms] or [-0.015%; +0.015%] | None | None | None |
| trace_buffer/8_senders/10us_delay | throughput | [119341.253op/s; 119376.020op/s] or [-0.015%; +0.015%] | None | None | None |
| trace_buffer/8_senders/1us_delay | execution_time | [51.809ms; 51.863ms] or [-0.053%; +0.053%] | None | None | None |
| trace_buffer/8_senders/1us_delay | throughput | [138828.150op/s; 138974.952op/s] or [-0.053%; +0.053%] | None | None | None |
| trace_buffer/8_senders/no_delay | execution_time | [6.964ms; 6.988ms] or [-0.171%; +0.171%] | None | None | None |
| trace_buffer/8_senders/no_delay | throughput | [1030439.369op/s; 1034025.166op/s] or [-0.174%; +0.174%] | None | None | None |
Group 1
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | ca5e3de | 1784812061 | vianney/configure-restart-after-fork |
| 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.569µs | 15.832µs ± 0.192µs | 15.773µs ± 0.074µs | 15.889µs | 16.216µs | 16.570µs | 16.940µs | 7.40% | 2.405 | 8.154 | 1.21% | 0.014µ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.806µs; 15.859µs] or [-0.168%; +0.168%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | ca5e3de | 1784812061 | vianney/configure-restart-after-fork |
| 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 | 8.562ms | 8.589ms ± 0.017ms | 8.587ms ± 0.012ms | 8.599ms | 8.620ms | 8.633ms | 8.656ms | 0.81% | 0.756 | 0.360 | 0.20% | 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 | [8.586ms; 8.591ms] or [-0.028%; +0.028%] | None | None | None |
Group 3
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | ca5e3de | 1784812061 | vianney/configure-restart-after-fork |
| 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.051µs | 1.067µs ± 0.005µs | 1.067µs ± 0.002µs | 1.069µs | 1.076µs | 1.077µs | 1.079µs | 1.10% | -0.337 | 0.324 | 0.48% | 0.000µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| write only interface | execution_time | [1.066µs; 1.067µs] or [-0.067%; +0.067%] | None | None | None |
Baseline
Baseline benchmark details
Group 1
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz | 919c275 | 1784808097 | main |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| trace_buffer/1_senders/10us_delay | execution_time | 59.982ms | 60.085ms ± 0.037ms | 60.073ms ± 0.012ms | 60.098ms | 60.178ms | 60.207ms | 60.248ms | 0.29% | 1.772 | 3.974 | 0.06% | 0.003ms | 1 | 200 |
| trace_buffer/1_senders/10us_delay | throughput | 14938.376op/s | 14978.838op/s ± 9.277op/s | 14981.830op/s ± 3.084op/s | 14984.096op/s | 14988.611op/s | 14990.222op/s | 15004.487op/s | 0.15% | -1.767 | 3.956 | 0.06% | 0.656op/s | 1 | 200 |
| trace_buffer/1_senders/1us_delay | execution_time | 50.107ms | 50.423ms ± 0.136ms | 50.408ms ± 0.077ms | 50.494ms | 50.658ms | 50.787ms | 50.870ms | 0.91% | 0.515 | 0.586 | 0.27% | 0.010ms | 1 | 200 |
| trace_buffer/1_senders/1us_delay | throughput | 17692.298op/s | 17849.236op/s ± 48.085op/s | 17854.153op/s ± 27.227op/s | 17878.459op/s | 17918.518op/s | 17958.837op/s | 17961.621op/s | 0.60% | -0.497 | 0.560 | 0.27% | 3.400op/s | 1 | 200 |
| trace_buffer/1_senders/no_delay | execution_time | 353.067µs | 360.394µs ± 5.684µs | 359.516µs ± 1.430µs | 361.019µs | 367.669µs | 375.476µs | 420.591µs | 16.99% | 6.485 | 62.266 | 1.57% | 0.402µs | 1 | 200 |
| trace_buffer/1_senders/no_delay | throughput | 2139843.736op/s | 2497829.374op/s ± 35997.752op/s | 2503362.720op/s ± 9983.583op/s | 2513323.018op/s | 2534044.615op/s | 2543070.597op/s | 2549092.420op/s | 1.83% | -5.535 | 48.521 | 1.44% | 2545.425op/s | 1 | 200 |
| trace_buffer/2_senders/10us_delay | execution_time | 59.988ms | 60.127ms ± 0.041ms | 60.120ms ± 0.022ms | 60.145ms | 60.209ms | 60.265ms | 60.279ms | 0.26% | 0.998 | 2.286 | 0.07% | 0.003ms | 1 | 200 |
| trace_buffer/2_senders/10us_delay | throughput | 29861.071op/s | 29936.458op/s ± 20.588op/s | 29939.874op/s ± 11.068op/s | 29950.331op/s | 29959.715op/s | 29965.855op/s | 30006.060op/s | 0.22% | -0.991 | 2.277 | 0.07% | 1.456op/s | 1 | 200 |
| trace_buffer/2_senders/1us_delay | execution_time | 50.972ms | 51.207ms ± 0.071ms | 51.209ms ± 0.052ms | 51.261ms | 51.323ms | 51.368ms | 51.379ms | 0.33% | -0.128 | 0.076 | 0.14% | 0.005ms | 1 | 200 |
| trace_buffer/2_senders/1us_delay | throughput | 35033.583op/s | 35151.830op/s ± 48.599op/s | 35150.103op/s ± 35.408op/s | 35185.105op/s | 35229.538op/s | 35269.903op/s | 35313.399op/s | 0.46% | 0.137 | 0.083 | 0.14% | 3.436op/s | 1 | 200 |
| trace_buffer/2_senders/no_delay | execution_time | 1.561ms | 1.654ms ± 0.032ms | 1.655ms ± 0.022ms | 1.676ms | 1.705ms | 1.722ms | 1.743ms | 5.35% | -0.026 | -0.125 | 1.92% | 0.002ms | 1 | 200 |
| trace_buffer/2_senders/no_delay | throughput | 1032439.725op/s | 1088577.074op/s ± 21039.149op/s | 1087644.302op/s ± 14719.441op/s | 1103160.757op/s | 1120772.598op/s | 1131607.229op/s | 1153280.939op/s | 6.03% | 0.135 | -0.082 | 1.93% | 1487.693op/s | 1 | 200 |
| trace_buffer/4_senders/10us_delay | execution_time | 60.117ms | 60.189ms ± 0.043ms | 60.182ms ± 0.021ms | 60.204ms | 60.276ms | 60.342ms | 60.365ms | 0.30% | 1.817 | 4.128 | 0.07% | 0.003ms | 1 | 200 |
| trace_buffer/4_senders/10us_delay | throughput | 59637.271op/s | 59811.330op/s ± 42.674op/s | 59818.957op/s ± 20.748op/s | 59839.319op/s | 59857.467op/s | 59867.645op/s | 59883.425op/s | 0.11% | -1.811 | 4.103 | 0.07% | 3.017op/s | 1 | 200 |
| trace_buffer/4_senders/1us_delay | execution_time | 51.168ms | 51.368ms ± 0.120ms | 51.343ms ± 0.057ms | 51.405ms | 51.600ms | 51.769ms | 51.855ms | 1.00% | 1.501 | 2.740 | 0.23% | 0.008ms | 1 | 200 |
| trace_buffer/4_senders/1us_delay | throughput | 69423.943op/s | 70082.570op/s ± 162.758op/s | 70116.384op/s ± 77.303op/s | 70190.210op/s | 70275.321op/s | 70327.786op/s | 70356.704op/s | 0.34% | -1.484 | 2.673 | 0.23% | 11.509op/s | 1 | 200 |
| trace_buffer/4_senders/no_delay | execution_time | 3.484ms | 3.581ms ± 0.034ms | 3.582ms ± 0.023ms | 3.602ms | 3.634ms | 3.650ms | 3.659ms | 2.15% | -0.198 | -0.037 | 0.95% | 0.002ms | 1 | 200 |
| trace_buffer/4_senders/no_delay | throughput | 983888.068op/s | 1005412.300op/s ± 9611.285op/s | 1005083.240op/s ± 6323.005op/s | 1011710.383op/s | 1021736.741op/s | 1031035.379op/s | 1033193.464op/s | 2.80% | 0.253 | 0.024 | 0.95% | 679.621op/s | 1 | 200 |
| trace_buffer/8_senders/10us_delay | execution_time | 60.212ms | 60.341ms ± 0.069ms | 60.328ms ± 0.040ms | 60.372ms | 60.473ms | 60.574ms | 60.584ms | 0.42% | 1.265 | 1.510 | 0.11% | 0.005ms | 1 | 200 |
| trace_buffer/8_senders/10us_delay | throughput | 118842.298op/s | 119321.552op/s ± 136.633op/s | 119346.959op/s ± 79.403op/s | 119425.474op/s | 119472.872op/s | 119494.381op/s | 119577.298op/s | 0.19% | -1.259 | 1.488 | 0.11% | 9.661op/s | 1 | 200 |
| trace_buffer/8_senders/1us_delay | execution_time | 51.369ms | 51.738ms ± 0.186ms | 51.709ms ± 0.106ms | 51.823ms | 52.098ms | 52.350ms | 52.388ms | 1.31% | 1.055 | 1.333 | 0.36% | 0.013ms | 1 | 200 |
| trace_buffer/8_senders/1us_delay | throughput | 137436.298op/s | 139164.716op/s ± 499.075op/s | 139241.972op/s ± 285.258op/s | 139496.638op/s | 139787.453op/s | 139988.187op/s | 140163.031op/s | 0.66% | -1.031 | 1.268 | 0.36% | 35.290op/s | 1 | 200 |
| trace_buffer/8_senders/no_delay | execution_time | 7.132ms | 7.252ms ± 0.050ms | 7.250ms ± 0.032ms | 7.282ms | 7.341ms | 7.390ms | 7.394ms | 1.98% | 0.297 | 0.231 | 0.69% | 0.004ms | 1 | 200 |
| trace_buffer/8_senders/no_delay | throughput | 973779.236op/s | 992867.005op/s ± 6849.823op/s | 993036.387op/s ± 4420.106op/s | 997478.964op/s | 1004092.573op/s | 1006471.437op/s | 1009494.718op/s | 1.66% | -0.253 | 0.189 | 0.69% | 484.356op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| trace_buffer/1_senders/10us_delay | execution_time | [60.080ms; 60.090ms] or [-0.009%; +0.009%] | None | None | None |
| trace_buffer/1_senders/10us_delay | throughput | [14977.553op/s; 14980.124op/s] or [-0.009%; +0.009%] | None | None | None |
| trace_buffer/1_senders/1us_delay | execution_time | [50.404ms; 50.442ms] or [-0.037%; +0.037%] | None | None | None |
| trace_buffer/1_senders/1us_delay | throughput | [17842.572op/s; 17855.900op/s] or [-0.037%; +0.037%] | None | None | None |
| trace_buffer/1_senders/no_delay | execution_time | [359.606µs; 361.182µs] or [-0.219%; +0.219%] | None | None | None |
| trace_buffer/1_senders/no_delay | throughput | [2492840.432op/s; 2502818.316op/s] or [-0.200%; +0.200%] | None | None | None |
| trace_buffer/2_senders/10us_delay | execution_time | [60.122ms; 60.133ms] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/2_senders/10us_delay | throughput | [29933.604op/s; 29939.311op/s] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/2_senders/1us_delay | execution_time | [51.197ms; 51.216ms] or [-0.019%; +0.019%] | None | None | None |
| trace_buffer/2_senders/1us_delay | throughput | [35145.095op/s; 35158.566op/s] or [-0.019%; +0.019%] | None | None | None |
| trace_buffer/2_senders/no_delay | execution_time | [1.650ms; 1.659ms] or [-0.267%; +0.267%] | None | None | None |
| trace_buffer/2_senders/no_delay | throughput | [1085661.251op/s; 1091492.898op/s] or [-0.268%; +0.268%] | None | None | None |
| trace_buffer/4_senders/10us_delay | execution_time | [60.183ms; 60.195ms] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/4_senders/10us_delay | throughput | [59805.415op/s; 59817.244op/s] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/4_senders/1us_delay | execution_time | [51.352ms; 51.385ms] or [-0.032%; +0.032%] | None | None | None |
| trace_buffer/4_senders/1us_delay | throughput | [70060.013op/s; 70105.127op/s] or [-0.032%; +0.032%] | None | None | None |
| trace_buffer/4_senders/no_delay | execution_time | [3.576ms; 3.586ms] or [-0.132%; +0.132%] | None | None | None |
| trace_buffer/4_senders/no_delay | throughput | [1004080.268op/s; 1006744.332op/s] or [-0.132%; +0.132%] | None | None | None |
| trace_buffer/8_senders/10us_delay | execution_time | [60.332ms; 60.351ms] or [-0.016%; +0.016%] | None | None | None |
| trace_buffer/8_senders/10us_delay | throughput | [119302.616op/s; 119340.488op/s] or [-0.016%; +0.016%] | None | None | None |
| trace_buffer/8_senders/1us_delay | execution_time | [51.712ms; 51.764ms] or [-0.050%; +0.050%] | None | None | None |
| trace_buffer/8_senders/1us_delay | throughput | [139095.549op/s; 139233.883op/s] or [-0.050%; +0.050%] | None | None | None |
| trace_buffer/8_senders/no_delay | execution_time | [7.245ms; 7.259ms] or [-0.096%; +0.096%] | None | None | None |
| trace_buffer/8_senders/no_delay | throughput | [991917.685op/s; 993816.324op/s] or [-0.096%; +0.096%] | None | None | None |
Group 1
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 919c275 | 1784808097 | main |
| 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.299µs | 15.599µs ± 0.190µs | 15.564µs ± 0.090µs | 15.683µs | 15.873µs | 16.042µs | 17.215µs | 10.60% | 3.327 | 24.545 | 1.22% | 0.013µ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.572µs; 15.625µs] or [-0.169%; +0.169%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 919c275 | 1784808097 | main |
| 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 | 8.577ms | 8.608ms ± 0.018ms | 8.604ms ± 0.011ms | 8.616ms | 8.640ms | 8.655ms | 8.679ms | 0.87% | 0.998 | 1.014 | 0.21% | 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 | [8.605ms; 8.610ms] or [-0.029%; +0.029%] | None | None | None |
Group 3
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 919c275 | 1784808097 | main |
| 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.076µs | 1.095µs ± 0.007µs | 1.095µs ± 0.005µs | 1.100µs | 1.106µs | 1.109µs | 1.111µs | 1.52% | -0.078 | -0.300 | 0.63% | 0.000µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| write only interface | execution_time | [1.094µs; 1.096µs] or [-0.087%; +0.087%] | None | None | None |
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
Clippy Allow Annotation ReportTracked Clippy
By file and crateBy file
By crate
About This ReportThis 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. Panic-inducing macros in particular should be avoided. In the future, this report may become a PR-blocking quality gate. |
restart_after_fork configuration option [APMSP-3843]
| let _ = self | ||
| .concentrator | ||
| .lock_or_panic() | ||
| .flush(SystemTime::now(), true); |
There was a problem hiding this comment.
Should the child flush the concentrator though? I would expect to leave the original concentrator entirely to the parent, and just re-initialize it here to something new.
|
Oh, and I forget: how do we make sure we clean this once dd-trace-py doesn't need it anymore? Should we have KTLO ticket or sth? |
What does this PR do?
This adds a config option to the trace exporter to allow background workers to not be restarted in child. This used to be the default behavior and is now opt-in. This feature is only used in dd-trace-py so it will only be a breaking change there.
Note: This change also exposed that both the StatsExporter and OtlpStatsExporter were missing the
resetimplementation. It 's added as part of this PR.Motivation
In python, the TraceExporter is currently recreated on forks, this is a legacy of the old thread architecture in python. To avoid restarting the workers in the child just to shut them down when recreating, we skip the restart on the trace exporter background workers. We want to change this behavior in dd-trace-py (DataDog/dd-trace-py#18929) as well as allow dd-trace-rb to use the workers in the intended way. Once dd-trace-py has transitioned this can be removed.
Additional Notes
Anything else we should know when reviewing?
How to test the change?
Describe here in detail how the change can be validated.