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

[PROF-11456] Add extra validations for incorrect profiling location ids #902

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

ivoanjo
Copy link
Member

@ivoanjo ivoanjo commented Feb 27, 2025

What does this PR do?

This PR adds extra validations for incorrect location ids being generated and/or being present at serialization time.

Motivation

In incident 35390 (JIRA PROF-11456) we observed invalid location_ids being present in emitted profiles.

We've stared hard at the code and can't really see how they could ever happen. By adding these checks, if we see the issue come up again, then we'll be sure that it happened after all the checks passed.

Additional Notes

N/A

How to test the change?

Since we don't know how to trigger the incorrect ids -- and they may not happen ever, it's hard to exercise these branches; yet, they're quite simple so I think it's fine to live with them as-is.

@ivoanjo ivoanjo requested a review from a team as a code owner February 27, 2025 11:37
@github-actions github-actions bot added the profiling Relates to the profiling* modules. label Feb 27, 2025
@codecov-commenter
Copy link

Codecov Report

Attention: Patch coverage is 84.21053% with 6 lines in your changes missing coverage. Please review.

Project coverage is 71.76%. Comparing base (a1d958b) to head (56ab77b).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #902      +/-   ##
==========================================
- Coverage   71.77%   71.76%   -0.01%     
==========================================
  Files         328      328              
  Lines       48702    48722      +20     
==========================================
+ Hits        34955    34965      +10     
- Misses      13747    13757      +10     
Components Coverage Δ
crashtracker 42.93% <ø> (+0.02%) ⬆️
crashtracker-ffi 6.25% <ø> (ø)
datadog-alloc 98.73% <ø> (ø)
data-pipeline 92.21% <ø> (ø)
data-pipeline-ffi 90.39% <ø> (ø)
ddcommon 80.08% <ø> (ø)
ddcommon-ffi 61.05% <ø> (ø)
ddtelemetry 61.74% <ø> (ø)
ddtelemetry-ffi 22.46% <ø> (ø)
dogstatsd 90.16% <ø> (ø)
dogstatsd-client 82.57% <ø> (ø)
ipc 82.63% <ø> (ø)
profiling 80.04% <84.21%> (-0.01%) ⬇️
profiling-ffi 70.68% <ø> (ø)
serverless 0.00% <ø> (ø)
sidecar 40.23% <ø> (ø)
sidecar-ffi 0.14% <ø> (ø)
spawn-worker 54.37% <ø> (ø)
tinybytes 92.00% <ø> (ø)
trace-mini-agent 72.48% <ø> (ø)
trace-normalization 98.23% <ø> (ø)
trace-obfuscation 95.96% <ø> (ø)
trace-protobuf 78.13% <ø> (ø)
trace-utils 93.29% <ø> (ø)

@pr-commenter
Copy link

pr-commenter bot commented Feb 27, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-02-27 11:50:14

Comparing candidate commit 56ab77b in PR branch ivoanjo/prof-11456-extra-location-validations with baseline commit a1d958b in branch main.

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

scenario:benching deserializing traces from msgpack to their internal representation

  • 🟩 execution_time [-5.545ms; -5.460ms] or [-9.184%; -9.044%]

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 56ab77b 1740656317 ivoanjo/prof-11456-extra-location-validations
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.245µs 3.177µs ± 1.429µs 2.982µs ± 0.025µs 3.009µs 3.612µs 13.936µs 14.917µs 400.27% 7.420 55.919 44.88% 0.101µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [2.979µs; 3.375µs] or [-6.235%; +6.235%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 56ab77b 1740656317 ivoanjo/prof-11456-extra-location-validations
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.743µs 25.939µs ± 10.738µs 18.064µs ± 0.243µs 35.797µs 44.512µs 46.127µs 73.719µs 308.11% 1.275 2.043 41.29% 0.759µ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.451µs; 27.427µs] or [-5.737%; +5.737%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 56ab77b 1740656317 ivoanjo/prof-11456-extra-location-validations
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.379µs 2.428µs ± 0.019µs 2.428µs ± 0.011µs 2.440µs 2.469µs 2.472µs 2.477µs 2.05% 0.145 0.342 0.78% 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.426µs; 2.431µs] or [-0.109%; +0.109%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 56ab77b 1740656317 ivoanjo/prof-11456-extra-location-validations
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 67.757µs 67.931µs ± 0.320µs 67.881µs ± 0.054µs 67.955µs 68.093µs 68.392µs 72.149µs 6.29% 11.615 149.845 0.47% 0.023µ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 [67.887µs; 67.976µs] or [-0.065%; +0.065%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 56ab77b 1740656317 ivoanjo/prof-11456-extra-location-validations
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.002µs 3.914µs ± 0.001µs 3.915µs 3.917µs 3.919µs 3.920µs 0.15% -2.548 17.370 0.06% 0.000µs 1 200
credit_card/is_card_number/ throughput 255117470.816op/s 255498727.465op/s ± 163313.485op/s 255499243.874op/s ± 63520.632op/s 255554702.930op/s 255762186.838op/s 255920501.792op/s 256766154.845op/s 0.50% 2.573 17.595 0.06% 11548.007op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 82.257µs 82.553µs ± 0.185µs 82.492µs ± 0.088µs 82.657µs 82.921µs 83.070µs 83.595µs 1.34% 1.650 4.589 0.22% 0.013µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 11962437.945op/s 12113439.186op/s ± 27097.329op/s 12122429.182op/s ± 12994.348op/s 12131863.813op/s 12142004.445op/s 12151871.848op/s 12156967.980op/s 0.28% -1.624 4.421 0.22% 1916.070op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 76.417µs 77.101µs ± 0.273µs 77.084µs ± 0.208µs 77.294µs 77.533µs 77.671µs 78.004µs 1.19% 0.262 -0.247 0.35% 0.019µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 12819775.747op/s 12970080.304op/s ± 45875.277op/s 12972863.365op/s ± 34905.401op/s 13007638.085op/s 13041501.056op/s 13060217.542op/s 13086094.726op/s 0.87% -0.244 -0.266 0.35% 3243.872op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.895µs 3.915µs ± 0.003µs 3.915µs ± 0.002µs 3.917µs 3.918µs 3.920µs 3.921µs 0.16% -1.815 9.147 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255012390.808op/s 255439267.885op/s ± 190435.645op/s 255432004.006op/s ± 99654.601op/s 255519387.549op/s 255810018.721op/s 255936452.329op/s 256713974.715op/s 0.50% 1.833 9.283 0.07% 13465.834op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 72.738µs 73.598µs ± 0.425µs 73.596µs ± 0.283µs 73.856µs 74.348µs 74.659µs 75.114µs 2.06% 0.410 0.181 0.58% 0.030µs 1 200
credit_card/is_card_number/378282246310005 throughput 13313088.303op/s 13587701.939op/s ± 78199.009op/s 13587712.060op/s ± 52484.236op/s 13642331.832op/s 13710489.808op/s 13729935.264op/s 13747916.584op/s 1.18% -0.376 0.114 0.57% 5529.505op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 51.944µs 52.228µs ± 0.114µs 52.228µs ± 0.082µs 52.311µs 52.415µs 52.476µs 52.543µs 0.60% 0.082 -0.214 0.22% 0.008µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19032204.472op/s 19146796.706op/s ± 41617.611op/s 19146990.628op/s ± 30019.445op/s 19174199.743op/s 19215217.692op/s 19236655.659op/s 19251559.527op/s 0.55% -0.070 -0.220 0.22% 2942.810op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.435µs 6.643µs ± 0.057µs 6.641µs ± 0.038µs 6.679µs 6.738µs 6.767µs 6.791µs 2.27% -0.131 0.391 0.85% 0.004µs 1 200
credit_card/is_card_number/x371413321323331 throughput 147245529.571op/s 150542291.157op/s ± 1282960.206op/s 150589848.627op/s ± 867849.386op/s 151441372.678op/s 152535296.815op/s 153376854.601op/s 155409565.169op/s 3.20% 0.193 0.482 0.85% 90718.986op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.898µs 3.914µs ± 0.003µs 3.914µs ± 0.001µs 3.915µs 3.918µs 3.922µs 3.928µs 0.37% 0.214 4.662 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254551223.504op/s 255514504.062op/s ± 208903.585op/s 255505590.685op/s ± 91493.835op/s 255603552.889op/s 255835511.941op/s 255944239.908op/s 256519803.058op/s 0.40% -0.198 4.662 0.08% 14771.714op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 63.672µs 63.835µs ± 0.106µs 63.818µs ± 0.045µs 63.861µs 64.017µs 64.236µs 64.311µs 0.77% 1.835 4.674 0.17% 0.008µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15549416.342op/s 15665345.605op/s ± 26030.784op/s 15669492.282op/s ± 11122.851op/s 15681065.508op/s 15695078.965op/s 15704840.734op/s 15705558.197op/s 0.23% -1.819 4.601 0.17% 1840.654op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 57.447µs 57.562µs ± 0.068µs 57.547µs ± 0.026µs 57.579µs 57.658µs 57.910µs 57.927µs 0.66% 2.945 12.421 0.12% 0.005µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 17263161.822op/s 17372737.108op/s ± 20414.162op/s 17377062.278op/s ± 7831.051op/s 17383800.907op/s 17392944.552op/s 17403541.447op/s 17407351.124op/s 0.17% -2.925 12.287 0.12% 1443.499op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.908µs 3.914µs ± 0.003µs 3.914µs ± 0.001µs 3.915µs 3.918µs 3.924µs 3.932µs 0.47% 2.257 12.580 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254292694.574op/s 255470470.329op/s ± 180876.981op/s 255492233.037op/s ± 68584.611op/s 255547589.351op/s 255725381.008op/s 255857976.812op/s 255898715.789op/s 0.16% -2.236 12.450 0.07% 12789.934op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.554µs 54.742µs ± 0.198µs 54.669µs ± 0.029µs 54.723µs 55.098µs 55.598µs 55.931µs 2.31% 2.934 10.506 0.36% 0.014µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17879074.732op/s 18267793.724op/s ± 65359.762op/s 18291806.186op/s ± 9834.557op/s 18299144.972op/s 18311576.946op/s 18323037.192op/s 18330481.758op/s 0.21% -2.893 10.148 0.36% 4621.633op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 51.979µs 52.224µs ± 0.114µs 52.220µs ± 0.073µs 52.292µs 52.407µs 52.534µs 52.555µs 0.64% 0.299 0.043 0.22% 0.008µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19027834.253op/s 19148201.081op/s ± 41694.796op/s 19149723.359op/s ± 26838.302op/s 19177846.711op/s 19214845.414op/s 19229868.205op/s 19238532.857op/s 0.46% -0.286 0.029 0.22% 2948.267op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.481µs 6.647µs ± 0.061µs 6.644µs ± 0.045µs 6.690µs 6.746µs 6.758µs 6.769µs 1.88% -0.134 -0.477 0.92% 0.004µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 147738088.580op/s 150459585.489op/s ± 1384177.034op/s 150512094.366op/s ± 1019138.939op/s 151514426.047op/s 152663980.363op/s 153955885.897op/s 154301896.846op/s 2.52% 0.176 -0.438 0.92% 97876.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.914µs; 3.914µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ throughput [255476093.786op/s; 255521361.143op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [82.528µs; 82.579µs] or [-0.031%; +0.031%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12109683.757op/s; 12117194.615op/s] or [-0.031%; +0.031%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [77.064µs; 77.139µs] or [-0.049%; +0.049%] None None None
credit_card/is_card_number/ 378282246310005 throughput [12963722.432op/s; 12976438.177op/s] or [-0.049%; +0.049%] None None None
credit_card/is_card_number/37828224631 execution_time [3.914µs; 3.915µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/37828224631 throughput [255412875.336op/s; 255465660.434op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/378282246310005 execution_time [73.540µs; 73.657µs] or [-0.080%; +0.080%] None None None
credit_card/is_card_number/378282246310005 throughput [13576864.308op/s; 13598539.569op/s] or [-0.080%; +0.080%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.213µs; 52.244µs] or [-0.030%; +0.030%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19141028.905op/s; 19152564.506op/s] or [-0.030%; +0.030%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.635µs; 6.651µs] or [-0.118%; +0.118%] None None None
credit_card/is_card_number/x371413321323331 throughput [150364485.211op/s; 150720097.102op/s] or [-0.118%; +0.118%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.913µs; 3.914µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ throughput [255485552.034op/s; 255543456.090op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [63.821µs; 63.850µs] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15661737.989op/s; 15668953.221op/s] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [57.552µs; 57.571µs] or [-0.016%; +0.016%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17369907.901op/s; 17375566.314op/s] or [-0.016%; +0.016%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.914µs; 3.915µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255445402.519op/s; 255495538.139op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.714µs; 54.769µs] or [-0.050%; +0.050%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18258735.490op/s; 18276851.959op/s] or [-0.050%; +0.050%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.209µs; 52.240µs] or [-0.030%; +0.030%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19142422.583op/s; 19153979.578op/s] or [-0.030%; +0.030%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.638µs; 6.655µs] or [-0.127%; +0.127%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [150267751.865op/s; 150651419.114op/s] or [-0.127%; +0.127%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 56ab77b 1740656317 ivoanjo/prof-11456-extra-location-validations
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.379µs 505.610µs ± 0.487µs 505.620µs ± 0.251µs 505.867µs 506.212µs 506.465µs 509.598µs 0.79% 2.519 20.957 0.10% 0.034µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1962331.306op/s 1977810.105op/s ± 1902.245op/s 1977768.998op/s ± 983.004op/s 1978758.413op/s 1980590.401op/s 1981368.783op/s 1982636.073op/s 0.25% -2.472 20.494 0.10% 134.509op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 452.621µs 453.519µs ± 0.873µs 453.430µs ± 0.217µs 453.652µs 454.069µs 454.824µs 461.756µs 1.84% 7.659 67.477 0.19% 0.062µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2165644.753op/s 2204986.436op/s ± 4184.665op/s 2205409.893op/s ± 1054.829op/s 2206435.057op/s 2207730.898op/s 2209019.755op/s 2209353.475op/s 0.18% -7.597 66.716 0.19% 295.900op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 174.877µs 176.183µs ± 0.376µs 176.187µs ± 0.251µs 176.441µs 176.770µs 176.921µs 177.024µs 0.48% -0.325 0.239 0.21% 0.027µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5648952.333op/s 5675940.979op/s ± 12111.830op/s 5675790.408op/s ± 8081.021op/s 5683717.612op/s 5694485.769op/s 5708387.976op/s 5718295.295op/s 0.75% 0.339 0.261 0.21% 856.436op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.722µs 37.836µs ± 0.050µs 37.837µs ± 0.036µs 37.868µs 37.919µs 37.966µs 37.983µs 0.39% 0.237 -0.231 0.13% 0.004µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26327333.865op/s 26429657.931op/s ± 35201.240op/s 26428908.928op/s ± 25259.651op/s 26458659.558op/s 26482228.216op/s 26497722.418op/s 26509708.641op/s 0.31% -0.230 -0.238 0.13% 2489.104op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 48.219µs 48.306µs ± 0.042µs 48.296µs ± 0.019µs 48.329µs 48.392µs 48.462µs 48.475µs 0.37% 1.242 2.436 0.09% 0.003µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20629190.304op/s 20701218.477op/s ± 17960.598op/s 20705770.298op/s ± 8197.127op/s 20712098.419op/s 20726902.114op/s 20731408.037op/s 20738634.757op/s 0.16% -1.234 2.410 0.09% 1270.006op/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 [505.543µs; 505.678µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1977546.472op/s; 1978073.738op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [453.398µs; 453.640µs] or [-0.027%; +0.027%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2204406.482op/s; 2205566.391op/s] or [-0.026%; +0.026%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [176.131µs; 176.235µs] or [-0.030%; +0.030%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5674262.396op/s; 5677619.562op/s] or [-0.030%; +0.030%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.829µs; 37.843µs] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26424779.378op/s; 26434536.485op/s] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [48.301µs; 48.312µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [20698729.311op/s; 20703707.643op/s] or [-0.012%; +0.012%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 56ab77b 1740656317 ivoanjo/prof-11456-extra-location-validations
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.566ns 252.390ns ± 11.145ns 248.458ns ± 2.805ns 252.828ns 282.333ns 286.453ns 289.303ns 16.44% 2.031 3.012 4.40% 0.788ns 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.846ns; 253.935ns] or [-0.612%; +0.612%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 56ab77b 1740656317 ivoanjo/prof-11456-extra-location-validations
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.951µs 5.015µs ± 0.045µs 4.999µs ± 0.024µs 5.058µs 5.097µs 5.102µs 5.105µs 2.11% 0.694 -1.102 0.90% 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.009µs; 5.022µs] or [-0.125%; +0.125%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 56ab77b 1740656317 ivoanjo/prof-11456-extra-location-validations
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.531µs 34.169µs ± 1.025µs 33.722µs ± 0.059µs 33.772µs 36.354µs 36.421µs 37.810µs 12.12% 1.743 1.236 2.99% 0.072µ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 [34.027µs; 34.311µs] or [-0.416%; +0.416%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 56ab77b 1740656317 ivoanjo/prof-11456-extra-location-validations
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 6.033ms 6.047ms ± 0.007ms 6.046ms ± 0.003ms 6.050ms 6.054ms 6.062ms 6.116ms 1.16% 5.283 50.517 0.11% 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 [6.046ms; 6.048ms] or [-0.016%; +0.016%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 56ab77b 1740656317 ivoanjo/prof-11456-extra-location-validations
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 54.028ms 54.874ms ± 0.246ms 54.868ms ± 0.144ms 55.020ms 55.249ms 55.476ms 55.874ms 1.83% -0.270 2.584 0.45% 0.017ms 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 [54.840ms; 54.908ms] or [-0.062%; +0.062%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 56ab77b 1740656317 ivoanjo/prof-11456-extra-location-validations
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 150.264µs 151.018µs ± 0.295µs 151.033µs ± 0.139µs 151.149µs 151.343µs 152.343µs 152.882µs 1.22% 2.105 11.809 0.19% 0.021µ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.977µs; 151.059µs] or [-0.027%; +0.027%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 56ab77b 1740656317 ivoanjo/prof-11456-extra-location-validations
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.586µs 209.002µs ± 0.222µs 208.985µs ± 0.112µs 209.096µs 209.280µs 209.515µs 211.040µs 0.98% 4.059 33.914 0.11% 0.016µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4738428.232op/s 4784640.455op/s ± 5070.725op/s 4785042.278op/s ± 2553.519op/s 4787497.134op/s 4790439.433op/s 4792870.198op/s 4794180.504op/s 0.19% -3.998 33.182 0.11% 358.554op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.265µs 18.343µs ± 0.052µs 18.337µs ± 0.015µs 18.357µs 18.381µs 18.417µs 18.979µs 3.50% 9.219 110.690 0.28% 0.004µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 52690165.004op/s 54517489.338op/s ± 150516.526op/s 54534460.172op/s ± 43435.271op/s 54565686.368op/s 54655348.557op/s 54689707.704op/s 54750402.576op/s 0.40% -8.985 106.927 0.28% 10643.126op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.677µs 10.735µs ± 0.027µs 10.737µs ± 0.019µs 10.753µs 10.776µs 10.790µs 10.799µs 0.57% -0.182 -0.451 0.25% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 92602156.206op/s 93155047.736op/s ± 230268.698op/s 93133783.456op/s ± 162936.521op/s 93301959.951op/s 93576124.988op/s 93637974.570op/s 93658862.722op/s 0.56% 0.193 -0.451 0.25% 16282.456op/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 [208.972µs; 209.033µs] or [-0.015%; +0.015%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4783937.702op/s; 4785343.209op/s] or [-0.015%; +0.015%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.336µs; 18.350µs] or [-0.039%; +0.039%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [54496629.195op/s; 54538349.481op/s] or [-0.038%; +0.038%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.731µs; 10.739µs] or [-0.034%; +0.034%] None None None
normalization/normalize_name/normalize_name/good throughput [93123134.709op/s; 93186960.763op/s] or [-0.034%; +0.034%] None None None

Baseline

Omitted due to size.

@@ -66,13 +67,34 @@ pub trait Dedup<T: Item> {
/// Panics if the number of items overflows the storage capabilities of
/// the associated Id type.
fn dedup(&mut self, item: T) -> <T as Item>::Id;

/// Deduplicate the Item, and check if the generated Id is valid.
fn checked_dedup(&mut self, item: T) -> anyhow::Result<<T as Item>::Id>;
Copy link
Contributor

Choose a reason for hiding this comment

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

Having a panic in the code isn't great. Depending on how many places dedup is used in, maybe this should be the only version and clients can ? on it?

Copy link
Member Author

Choose a reason for hiding this comment

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

I hesitated on doing that -- that ? will need to propagate quite far. Not sure it's worth the extra work given id overflow would mean we have 2**32 items so we'd already be using many GiB's for the profiler?

@@ -1062,7 +1080,7 @@ mod api_tests {
}

#[test]
fn lazy_endpoints() -> anyhow::Result<()> {
fn lazy_endpoints() {
Copy link
Contributor

Choose a reason for hiding this comment

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

Why this change?

Copy link
Member Author

@ivoanjo ivoanjo Feb 27, 2025

Choose a reason for hiding this comment

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

It doesn't look correct for a test to exit early if something goes wrong: It should blow up?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
profiling Relates to the profiling* modules.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants