Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use send_with_retry in the trace exporter #871

Merged
merged 10 commits into from
Feb 18, 2025

Conversation

VianneyRuhlmann
Copy link
Contributor

@VianneyRuhlmann VianneyRuhlmann commented Feb 12, 2025

What does this PR do?

Use send_with_retry in trace exporter to remove ownership constraint.

Motivation

Removing ownership constraint is required to remove incorrect lifetime assumption in the trace exporter.

Additional Notes

Some minor refactors were needed:

  • Replace the Serde error type which was not used anymore to support rmp_serde error
  • Move headers used in SendData to ddcommon to be reused in data-pipeline
  • Improve the trace exporter errors in case the sending fails (e.g. returning message from hyper error)
  • Introduce a common representation for telemetry to handle both SendWithRetryResult and SendDataResult

Commits although not atomic separate the changes into areas affected, so reviewing by commit can help by breaking down the changes.

How to test the change?

Describe here in detail how the change can be validated.

@VianneyRuhlmann VianneyRuhlmann requested review from a team as code owners February 12, 2025 15:16
@VianneyRuhlmann VianneyRuhlmann force-pushed the vianney/data-pipeline/use-send-with-retry branch 2 times, most recently from f71e4f1 to d085821 Compare February 12, 2025 15:25
@VianneyRuhlmann VianneyRuhlmann force-pushed the vianney/data-pipeline/use-send-with-retry branch from d085821 to e8d1c90 Compare February 12, 2025 15:27
@pr-commenter
Copy link

pr-commenter bot commented Feb 12, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-02-18 18:05:20

Comparing candidate commit 3b66ffe in PR branch vianney/data-pipeline/use-send-with-retry with baseline commit 19424de in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 52 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 3b66ffe 1739900284 vianney/data-pipeline/use-send-with-retry
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.215µs 3.178µs ± 1.421µs 2.979µs ± 0.027µs 3.000µs 3.605µs 13.890µs 14.824µs 397.64% 7.369 55.375 44.61% 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.981µs; 3.375µs] or [-6.198%; +6.198%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 3b66ffe 1739900284 vianney/data-pipeline/use-send-with-retry
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.008µs 33.602µs ± 1.038µs 33.125µs ± 0.040µs 33.183µs 35.803µs 35.892µs 37.236µs 12.41% 1.737 1.202 3.08% 0.073µ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.458µs; 33.746µs] or [-0.428%; +0.428%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 3b66ffe 1739900284 vianney/data-pipeline/use-send-with-retry
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 5.918ms 5.930ms ± 0.005ms 5.930ms ± 0.003ms 5.932ms 5.937ms 5.942ms 5.960ms 0.51% 1.275 5.997 0.09% 0.000ms 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 [5.929ms; 5.930ms] or [-0.012%; +0.012%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 3b66ffe 1739900284 vianney/data-pipeline/use-send-with-retry
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 66.131µs 66.334µs ± 0.190µs 66.313µs ± 0.052µs 66.368µs 66.432µs 66.749µs 68.537µs 3.35% 8.495 91.298 0.29% 0.013µ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 [66.308µs; 66.361µs] or [-0.040%; +0.040%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 3b66ffe 1739900284 vianney/data-pipeline/use-send-with-retry
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.895µs 3.914µs ± 0.003µs 3.914µs ± 0.001µs 3.915µs 3.918µs 3.920µs 3.921µs 0.16% -2.392 18.004 0.06% 0.000µs 1 200
credit_card/is_card_number/ throughput 255057984.513op/s 255479736.283op/s ± 165049.014op/s 255465920.846op/s ± 72815.630op/s 255547614.910op/s 255682388.484op/s 255907841.836op/s 256771506.825op/s 0.51% 2.420 18.249 0.06% 11670.728op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 81.199µs 82.848µs ± 0.790µs 82.823µs ± 0.589µs 83.421µs 83.963µs 84.243µs 86.865µs 4.88% 0.511 2.024 0.95% 0.056µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 11512129.538op/s 12071427.417op/s ± 114636.004op/s 12074004.743op/s ± 86449.466op/s 12160323.907op/s 12253602.359op/s 12309171.994op/s 12315493.466op/s 2.00% -0.409 1.566 0.95% 8105.990op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 78.173µs 79.544µs ± 0.483µs 79.514µs ± 0.279µs 79.849µs 80.137µs 80.314µs 83.137µs 4.56% 1.772 14.057 0.61% 0.034µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 12028312.564op/s 12572111.219op/s ± 75648.502op/s 12576475.174op/s ± 44056.390op/s 12612341.087op/s 12684097.581op/s 12741733.052op/s 12792068.354op/s 1.71% -1.548 12.243 0.60% 5349.157op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.893µs 3.914µs ± 0.003µs 3.914µs ± 0.001µs 3.916µs 3.918µs 3.920µs 3.921µs 0.18% -2.397 20.142 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255021859.516op/s 255469823.096op/s ± 169592.149op/s 255475985.257op/s ± 88220.782op/s 255547435.995op/s 255692083.568op/s 255780502.719op/s 256847111.732op/s 0.54% 2.429 20.452 0.07% 11991.976op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 74.936µs 76.335µs ± 0.415µs 76.349µs ± 0.275µs 76.622µs 77.003µs 77.110µs 77.157µs 1.06% -0.305 -0.030 0.54% 0.029µs 1 200
credit_card/is_card_number/378282246310005 throughput 12960663.209op/s 13100588.842op/s ± 71299.042op/s 13097712.135op/s ± 47181.964op/s 13145918.682op/s 13207713.993op/s 13284665.706op/s 13344747.811op/s 1.89% 0.336 0.023 0.54% 5041.604op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 51.344µs 51.441µs ± 0.026µs 51.441µs ± 0.016µs 51.457µs 51.484µs 51.498µs 51.519µs 0.15% -0.427 1.301 0.05% 0.002µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19410397.722op/s 19439648.360op/s ± 9944.233op/s 19439864.722op/s ± 6022.236op/s 19445487.494op/s 19455243.019op/s 19467679.014op/s 19476517.163op/s 0.19% 0.431 1.309 0.05% 703.163op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.027µs 6.040µs ± 0.010µs 6.039µs ± 0.002µs 6.041µs 6.044µs 6.106µs 6.107µs 1.13% 5.310 30.175 0.17% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 163744916.487op/s 165560150.562op/s ± 278289.672op/s 165602773.083op/s ± 49529.391op/s 165646638.687op/s 165746102.345op/s 165853569.692op/s 165923436.610op/s 0.19% -5.290 30.003 0.17% 19678.051op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.894µs 3.914µs ± 0.002µs 3.914µs ± 0.001µs 3.915µs 3.917µs 3.919µs 3.921µs 0.18% -2.753 23.383 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255010059.728op/s 255478641.929op/s ± 161809.442op/s 255473323.553op/s ± 79004.098op/s 255555156.460op/s 255680383.356op/s 255789593.010op/s 256834500.711op/s 0.53% 2.787 23.711 0.06% 11441.655op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 65.883µs 66.241µs ± 0.225µs 66.191µs ± 0.113µs 66.327µs 66.665µs 66.995µs 67.047µs 1.29% 1.295 1.962 0.34% 0.016µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 14914802.892op/s 15096652.746op/s ± 50957.971op/s 15107782.777op/s ± 25726.565op/s 15130557.299op/s 15157899.540op/s 15175613.923op/s 15178518.476op/s 0.47% -1.272 1.885 0.34% 3603.273op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 59.468µs 59.695µs ± 0.088µs 59.697µs ± 0.056µs 59.751µs 59.836µs 59.908µs 59.951µs 0.43% -0.021 0.035 0.15% 0.006µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 16680264.060op/s 16751810.594op/s ± 24643.991op/s 16751297.280op/s ± 15647.525op/s 16767403.338op/s 16792805.291op/s 16809776.011op/s 16815707.552op/s 0.38% 0.030 0.034 0.15% 1742.593op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.890µs 3.914µs ± 0.003µs 3.914µs ± 0.001µs 3.916µs 3.918µs 3.920µs 3.921µs 0.16% -4.075 37.716 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255066845.483op/s 255467516.401op/s ± 169222.788op/s 255469969.514op/s ± 69128.890op/s 255526031.715op/s 255655883.622op/s 255812765.071op/s 257063149.600op/s 0.62% 4.121 38.248 0.07% 11965.858op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 56.426µs 56.885µs ± 0.146µs 56.889µs ± 0.092µs 56.981µs 57.096µs 57.151µs 57.177µs 0.51% -0.574 0.221 0.26% 0.010µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17489567.275op/s 17579578.873op/s ± 45105.619op/s 17577957.156op/s ± 28289.365op/s 17606097.010op/s 17665605.781op/s 17702888.544op/s 17722299.970op/s 0.82% 0.589 0.246 0.26% 3189.449op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 51.371µs 51.447µs ± 0.026µs 51.445µs ± 0.017µs 51.462µs 51.492µs 51.512µs 51.526µs 0.16% 0.365 0.263 0.05% 0.002µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19407683.472op/s 19437412.573op/s ± 9920.634op/s 19438193.349op/s ± 6305.150op/s 19444480.176op/s 19451005.737op/s 19459178.807op/s 19466142.538op/s 0.14% -0.362 0.261 0.05% 701.495op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.030µs 6.040µs ± 0.006µs 6.039µs ± 0.002µs 6.041µs 6.046µs 6.049µs 6.108µs 1.15% 8.109 91.747 0.10% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 163716814.597op/s 165575493.562op/s ± 159517.188op/s 165598178.421op/s ± 44847.905op/s 165637289.095op/s 165710137.586op/s 165777469.595op/s 165845932.934op/s 0.15% -8.028 90.475 0.10% 11279.569op/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.914µs; 3.915µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ throughput [255456862.077op/s; 255502610.489op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [82.738µs; 82.957µs] or [-0.132%; +0.132%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12055539.970op/s; 12087314.865op/s] or [-0.132%; +0.132%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [79.477µs; 79.611µs] or [-0.084%; +0.084%] None None None
credit_card/is_card_number/ 378282246310005 throughput [12561627.064op/s; 12582595.374op/s] or [-0.083%; +0.083%] None None None
credit_card/is_card_number/37828224631 execution_time [3.914µs; 3.915µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631 throughput [255446319.256op/s; 255493326.937op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/378282246310005 execution_time [76.277µs; 76.392µs] or [-0.075%; +0.075%] None None None
credit_card/is_card_number/378282246310005 throughput [13090707.481op/s; 13110470.204op/s] or [-0.075%; +0.075%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [51.438µs; 51.445µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19438270.185op/s; 19441026.535op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.039µs; 6.042µs] or [-0.024%; +0.024%] None None None
credit_card/is_card_number/x371413321323331 throughput [165521582.290op/s; 165598718.834op/s] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.914µs; 3.915µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ throughput [255456216.697op/s; 255501067.162op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [66.209µs; 66.272µs] or [-0.047%; +0.047%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15089590.461op/s; 15103715.030op/s] or [-0.047%; +0.047%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [59.683µs; 59.707µs] or [-0.020%; +0.020%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [16748395.174op/s; 16755226.014op/s] or [-0.020%; +0.020%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.914µs; 3.915µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255444063.750op/s; 255490969.052op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [56.864µs; 56.905µs] or [-0.036%; +0.036%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [17573327.668op/s; 17585830.078op/s] or [-0.036%; +0.036%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [51.444µs; 51.451µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19436037.668op/s; 19438787.477op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.039µs; 6.040µs] or [-0.013%; +0.013%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [165553386.014op/s; 165597601.110op/s] or [-0.013%; +0.013%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 3b66ffe 1739900284 vianney/data-pipeline/use-send-with-retry
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.447µs ± 0.020µs 2.444µs ± 0.010µs 2.451µs 2.502µs 2.516µs 2.519µs 3.07% 1.920 3.576 0.81% 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.445µs; 2.450µs] or [-0.112%; +0.112%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 3b66ffe 1739900284 vianney/data-pipeline/use-send-with-retry
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.994µs 5.070µs ± 0.043µs 5.077µs ± 0.037µs 5.110µs 5.126µs 5.137µs 5.143µs 1.30% -0.211 -1.437 0.84% 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.064µs; 5.076µs] or [-0.117%; +0.117%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 3b66ffe 1739900284 vianney/data-pipeline/use-send-with-retry
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 208.752µs 209.082µs ± 0.152µs 209.082µs ± 0.094µs 209.160µs 209.362µs 209.487µs 209.540µs 0.22% 0.279 0.056 0.07% 0.011µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4772357.234op/s 4782805.275op/s ± 3476.487op/s 4782821.381op/s ± 2155.069op/s 4785375.255op/s 4788182.958op/s 4789725.305op/s 4790370.079op/s 0.16% -0.275 0.051 0.07% 245.825op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.227µs 18.319µs ± 0.070µs 18.313µs ± 0.021µs 18.341µs 18.362µs 18.382µs 19.187µs 4.77% 9.478 115.905 0.38% 0.005µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 52119450.714op/s 54589833.422op/s ± 201720.111op/s 54606181.840op/s ± 63462.936op/s 54650952.378op/s 54766333.768op/s 54848735.881op/s 54864862.729op/s 0.47% -9.157 110.796 0.37% 14263.766op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.653µs 10.717µs ± 0.026µs 10.720µs ± 0.019µs 10.738µs 10.757µs 10.773µs 10.776µs 0.53% -0.188 -0.539 0.25% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 92795698.848op/s 93306200.518op/s ± 229578.752op/s 93283582.230op/s ± 167781.465op/s 93470123.271op/s 93704918.023op/s 93809066.366op/s 93872236.997op/s 0.63% 0.199 -0.535 0.25% 16233.669op/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 [209.061µs; 209.103µs] or [-0.010%; +0.010%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4782323.467op/s; 4783287.082op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.309µs; 18.328µs] or [-0.053%; +0.053%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [54561876.955op/s; 54617789.890op/s] or [-0.051%; +0.051%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.714µs; 10.721µs] or [-0.034%; +0.034%] None None None
normalization/normalize_name/normalize_name/good throughput [93274383.111op/s; 93338017.925op/s] or [-0.034%; +0.034%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 3b66ffe 1739900284 vianney/data-pipeline/use-send-with-retry
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 52.968ms 53.166ms ± 0.152ms 53.116ms ± 0.066ms 53.236ms 53.437ms 53.634ms 53.955ms 1.58% 1.744 4.038 0.29% 0.011ms 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 [53.145ms; 53.187ms] or [-0.040%; +0.040%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 3b66ffe 1739900284 vianney/data-pipeline/use-send-with-retry
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 504.619µs 506.191µs ± 0.716µs 506.127µs ± 0.427µs 506.617µs 507.163µs 507.541µs 510.273µs 0.82% 1.640 7.875 0.14% 0.051µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1959735.066op/s 1975544.157op/s ± 2786.350op/s 1975787.710op/s ± 1667.217op/s 1977423.373op/s 1979280.278op/s 1980586.997op/s 1981693.119op/s 0.30% -1.610 7.683 0.14% 197.025op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 452.674µs 453.501µs ± 0.287µs 453.506µs ± 0.202µs 453.712µs 453.948µs 454.083µs 454.273µs 0.17% -0.178 -0.088 0.06% 0.020µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2201319.229op/s 2205065.288op/s ± 1395.931op/s 2205043.464op/s ± 983.674op/s 2205979.108op/s 2207355.099op/s 2208474.400op/s 2209093.823op/s 0.18% 0.182 -0.087 0.06% 98.707op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 174.939µs 176.534µs ± 0.405µs 176.557µs ± 0.235µs 176.808µs 177.102µs 177.275µs 177.375µs 0.46% -0.700 0.905 0.23% 0.029µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5637774.630op/s 5664650.393op/s ± 13022.480op/s 5663890.119op/s ± 7553.091op/s 5671071.360op/s 5686810.647op/s 5700146.171op/s 5716275.058op/s 0.92% 0.716 0.949 0.23% 920.828op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.526µs 37.637µs ± 0.072µs 37.633µs ± 0.028µs 37.661µs 37.701µs 37.731µs 38.461µs 2.20% 7.599 85.543 0.19% 0.005µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26000611.619op/s 26569474.738op/s ± 49846.325op/s 26572125.516op/s ± 19560.483op/s 26592856.034op/s 26618727.177op/s 26643735.791op/s 26648434.180op/s 0.29% -7.431 83.019 0.19% 3524.667op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 48.108µs 48.325µs ± 0.171µs 48.307µs ± 0.174µs 48.470µs 48.600µs 48.648µs 48.678µs 0.77% 0.233 -1.294 0.35% 0.012µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20542984.954op/s 20693433.702op/s ± 72957.539op/s 20701048.986op/s ± 74751.141op/s 20777357.430op/s 20781382.494op/s 20784312.476op/s 20786625.291op/s 0.41% -0.226 -1.300 0.35% 5158.877op/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 [506.091µs; 506.290µs] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1975157.996op/s; 1975930.319op/s] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [453.462µs; 453.541µs] or [-0.009%; +0.009%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2204871.826op/s; 2205258.751op/s] or [-0.009%; +0.009%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [176.478µs; 176.590µs] or [-0.032%; +0.032%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5662845.602op/s; 5666455.183op/s] or [-0.032%; +0.032%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.627µs; 37.647µs] or [-0.026%; +0.026%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26562566.517op/s; 26576382.959op/s] or [-0.026%; +0.026%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [48.301µs; 48.349µs] or [-0.049%; +0.049%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [20683322.489op/s; 20703544.915op/s] or [-0.049%; +0.049%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 3b66ffe 1739900284 vianney/data-pipeline/use-send-with-retry
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 245.577ns 254.308ns ± 11.543ns 248.958ns ± 1.724ns 255.553ns 283.854ns 290.987ns 298.669ns 19.97% 2.015 3.119 4.53% 0.816ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_trace/test_trace execution_time [252.708ns; 255.908ns] or [-0.629%; +0.629%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 3b66ffe 1739900284 vianney/data-pipeline/use-send-with-retry
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.739µs 26.034µs ± 10.546µs 18.019µs ± 0.115µs 34.673µs 45.078µs 47.185µs 76.515µs 324.62% 1.423 3.308 40.41% 0.746µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [24.572µs; 27.495µs] or [-5.614%; +5.614%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 3b66ffe 1739900284 vianney/data-pipeline/use-send-with-retry
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 149.454µs 150.353µs ± 0.387µs 150.317µs ± 0.137µs 150.455µs 150.803µs 151.549µs 153.967µs 2.43% 4.479 37.583 0.26% 0.027µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching string interning on wordpress profile execution_time [150.300µs; 150.407µs] or [-0.036%; +0.036%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Feb 12, 2025

Codecov Report

Attention: Patch coverage is 92.56198% with 18 lines in your changes missing coverage. Please review.

Project coverage is 71.65%. Comparing base (19424de) to head (3b66ffe).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #871      +/-   ##
==========================================
+ Coverage   71.62%   71.65%   +0.02%     
==========================================
  Files         328      328              
  Lines       48262    48339      +77     
==========================================
+ Hits        34567    34635      +68     
- Misses      13695    13704       +9     
Components Coverage Δ
crashtracker 42.87% <ø> (ø)
crashtracker-ffi 6.25% <ø> (ø)
datadog-alloc 98.73% <ø> (ø)
data-pipeline 91.95% <93.18%> (-0.07%) ⬇️
data-pipeline-ffi 90.39% <0.00%> (ø)
ddcommon 80.08% <ø> (ø)
ddcommon-ffi 61.05% <ø> (ø)
ddtelemetry 61.74% <ø> (ø)
ddtelemetry-ffi 22.46% <ø> (ø)
dogstatsd 90.01% <ø> (ø)
dogstatsd-client 79.77% <ø> (ø)
ipc 82.68% <ø> (ø)
profiling 80.04% <ø> (ø)
profiling-ffi 70.68% <ø> (ø)
serverless 0.00% <ø> (ø)
sidecar 40.57% <ø> (ø)
sidecar-ffi 2.05% <ø> (ø)
spawn-worker 54.37% <ø> (ø)
tinybytes 92.85% <ø> (ø)
trace-mini-agent 72.48% <ø> (ø)
trace-normalization 98.23% <ø> (ø)
trace-obfuscation 95.96% <ø> (ø)
trace-protobuf 77.67% <ø> (ø)
trace-utils 93.22% <86.36%> (+<0.01%) ⬆️

let endpoint = Endpoint {
url: self.output_format.add_path(&self.endpoint.url),
..self.endpoint.clone()
};
let send_data = SendData::new(size, tracer_payload, header_tags, &endpoint);
let mut headers: HashMap<&str, String> = header_tags.into();
headers.insert(DATADOG_SEND_REAL_HTTP_STATUS_STR, "1".to_string());
Copy link
Contributor

Choose a reason for hiding this comment

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

❓ what does 1 mean here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

For this header any non false value enables it. It can be changed to true but "1" is the value used in send data.

let send_data_result = send_data.send().await;
// Send traces to the agent
let result =
send_with_retry(&endpoint, payload, &headers, &strategy, None).await;
Copy link
Contributor

Choose a reason for hiding this comment

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

❓ are we capturing telemetry like

  • max retry count
  • retry attempt
  • last failure reason?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes they are captured in the SendPayloadTelemetry which is sent on line 658

@VianneyRuhlmann VianneyRuhlmann changed the title Return hyper error in send_with_retry Use send_with_retry in the trace exporter Feb 13, 2025
Comment on lines 660 to 661
payload_len.try_into().unwrap_or(0),
chunks.try_into().unwrap_or(0),
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: here you can use as u64, in this situation is safe to perform an unchecked casting since usize is always 32 or 64 bit depending on the architecture. Besides it'll probably be slightly faster due try_into + unwrap could result in extra branching but I haven't disassemble the code to check it.

}

impl From<&SendDataResult> for SendPayloadTelemetry {
fn from(value: &SendDataResult) -> Self {
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: I think there is no test for this function. Right now it's just assigning and cloning values but if something changes in SendDataResult the test might come in useful.

@VianneyRuhlmann VianneyRuhlmann enabled auto-merge (squash) February 18, 2025 18:06
@VianneyRuhlmann VianneyRuhlmann merged commit f7543b9 into main Feb 18, 2025
31 checks passed
@VianneyRuhlmann VianneyRuhlmann deleted the vianney/data-pipeline/use-send-with-retry branch February 18, 2025 18:14
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.

4 participants