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

SVLS-6336 fix: support tag that are not key-value pairs #826

Merged
merged 5 commits into from
Jan 27, 2025

Conversation

alexgallotta
Copy link
Contributor

Allow tags that are not a pair key:value to be passed. Use an empty string as value and do not serialize a column with empty string in that case

@alexgallotta alexgallotta requested a review from a team as a code owner January 15, 2025 20:36
@pr-commenter
Copy link

pr-commenter bot commented Jan 15, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-01-27 20:57:37

Comparing candidate commit 8b06f81 in PR branch support-keyonly-tags with baseline commit 02eb386 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 8b06f81 1738010802 support-keyonly-tags
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.725µs 2.774µs ± 0.019µs 2.771µs ± 0.007µs 2.781µs 2.821µs 2.827µs 2.830µs 2.16% 0.894 2.025 0.68% 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.771µs; 2.777µs] or [-0.094%; +0.094%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 8b06f81 1738010802 support-keyonly-tags
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.393µs 3.348µs ± 1.487µs 3.148µs ± 0.025µs 3.172µs 3.810µs 14.514µs 15.527µs 393.26% 7.438 56.055 44.31% 0.105µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [3.142µs; 3.555µs] or [-6.157%; +6.157%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 8b06f81 1738010802 support-keyonly-tags
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 69.524µs 69.658µs ± 0.201µs 69.634µs ± 0.036µs 69.675µs 69.771µs 69.963µs 72.313µs 3.85% 11.615 150.152 0.29% 0.014µ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 [69.630µs; 69.686µs] or [-0.040%; +0.040%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 8b06f81 1738010802 support-keyonly-tags
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 180.517µs 182.255µs ± 0.905µs 182.101µs ± 0.558µs 182.778µs 184.015µs 184.679µs 186.347µs 2.33% 0.974 1.919 0.50% 0.064µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5366318.303op/s 5486955.722op/s ± 27103.146op/s 5491466.332op/s ± 16873.956op/s 5504946.180op/s 5523873.550op/s 5533506.011op/s 5539648.302op/s 0.88% -0.931 1.757 0.49% 1916.482op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 20.778µs 21.019µs ± 0.208µs 20.996µs ± 0.055µs 21.060µs 21.172µs 21.248µs 23.652µs 12.65% 10.259 126.672 0.99% 0.015µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 42280126.796op/s 47581243.631op/s ± 429145.002op/s 47628701.553op/s ± 124103.355op/s 47741827.145op/s 47903907.499op/s 48021772.375op/s 48128190.062op/s 1.05% -9.567 114.967 0.90% 30345.134op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 14.198µs 14.413µs ± 0.097µs 14.429µs ± 0.072µs 14.491µs 14.555µs 14.583µs 14.614µs 1.28% -0.268 -0.874 0.67% 0.007µs 1 200
normalization/normalize_name/normalize_name/good throughput 68429763.194op/s 69385242.263op/s ± 468518.018op/s 69307119.224op/s ± 344996.292op/s 69759840.517op/s 70215259.206op/s 70325613.428op/s 70431495.147op/s 1.62% 0.289 -0.863 0.67% 33129.227op/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 [182.130µs; 182.380µs] or [-0.069%; +0.069%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5483199.486op/s; 5490711.957op/s] or [-0.068%; +0.068%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [20.990µs; 21.047µs] or [-0.137%; +0.137%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [47521768.261op/s; 47640719.001op/s] or [-0.125%; +0.125%] None None None
normalization/normalize_name/normalize_name/good execution_time [14.399µs; 14.426µs] or [-0.093%; +0.093%] None None None
normalization/normalize_name/normalize_name/good throughput [69320310.171op/s; 69450174.354op/s] or [-0.094%; +0.094%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 8b06f81 1738010802 support-keyonly-tags
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 38.491µs 39.107µs ± 0.994µs 38.664µs ± 0.078µs 38.759µs 41.200µs 41.260µs 42.754µs 10.58% 1.737 1.273 2.54% 0.070µ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 [38.969µs; 39.244µs] or [-0.352%; +0.352%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 8b06f81 1738010802 support-keyonly-tags
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 58.588ms 59.030ms ± 0.164ms 59.026ms ± 0.071ms 59.089ms 59.279ms 59.567ms 59.840ms 1.38% 0.711 4.348 0.28% 0.012ms 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 [59.008ms; 59.053ms] or [-0.038%; +0.038%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 8b06f81 1738010802 support-keyonly-tags
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 138.393µs 139.578µs ± 0.352µs 139.555µs ± 0.115µs 139.682µs 139.989µs 140.684µs 142.200µs 1.90% 2.574 16.691 0.25% 0.025µ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 [139.529µs; 139.626µs] or [-0.035%; +0.035%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 8b06f81 1738010802 support-keyonly-tags
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 4.267µs 4.288µs ± 0.005µs 4.287µs ± 0.001µs 4.289µs 4.292µs 4.294µs 4.345µs 1.34% 7.540 91.004 0.11% 0.000µs 1 200
credit_card/is_card_number/ throughput 230166785.581op/s 233224132.372op/s ± 264266.814op/s 233253279.368op/s ± 60738.041op/s 233306211.779op/s 233462461.863op/s 233578785.390op/s 234359374.681op/s 0.47% -7.416 89.415 0.11% 18686.486op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 89.760µs 91.037µs ± 0.608µs 90.998µs ± 0.346µs 91.349µs 91.787µs 92.497µs 95.918µs 5.41% 2.602 19.423 0.67% 0.043µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 10425565.914op/s 10985019.348op/s ± 72176.483op/s 10989216.282op/s ± 41655.098op/s 11028191.370op/s 11082831.155op/s 11126496.784op/s 11140765.804op/s 1.38% -2.325 16.756 0.66% 5103.648op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 83.054µs 83.601µs ± 0.390µs 83.581µs ± 0.133µs 83.708µs 83.925µs 84.035µs 88.263µs 5.60% 8.509 99.880 0.47% 0.028µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 11329839.966op/s 11961834.807op/s ± 53783.227op/s 11964504.904op/s ± 19053.058op/s 11983471.499op/s 12018912.306op/s 12035482.314op/s 12040412.440op/s 0.63% -8.101 93.586 0.45% 3803.048op/s 1 200
credit_card/is_card_number/37828224631 execution_time 4.269µs 4.288µs ± 0.006µs 4.288µs ± 0.001µs 4.289µs 4.292µs 4.322µs 4.342µs 1.26% 5.805 46.702 0.13% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 230315619.310op/s 233190648.907op/s ± 312025.329op/s 233223333.996op/s ± 68003.317op/s 233287348.616op/s 233433053.947op/s 233558463.195op/s 234236190.637op/s 0.43% -5.744 46.074 0.13% 22063.523op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 80.620µs 80.939µs ± 0.163µs 80.905µs ± 0.067µs 81.000µs 81.215µs 81.527µs 81.594µs 0.85% 1.488 3.720 0.20% 0.012µs 1 200
credit_card/is_card_number/378282246310005 throughput 12255823.715op/s 12354979.506op/s ± 24816.815op/s 12360238.349op/s ± 10212.187op/s 12367747.080op/s 12387969.096op/s 12403694.192op/s 12403846.433op/s 0.35% -1.467 3.654 0.20% 1754.814op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 58.586µs 58.676µs ± 0.032µs 58.673µs ± 0.020µs 58.698µs 58.730µs 58.752µs 58.798µs 0.21% 0.367 0.643 0.05% 0.002µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 17007398.119op/s 17042677.194op/s ± 9341.249op/s 17043478.712op/s ± 5915.770op/s 17048759.102op/s 17058230.790op/s 17060633.973op/s 17069064.028op/s 0.15% -0.363 0.637 0.05% 660.526op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.415µs 6.442µs ± 0.004µs 6.441µs ± 0.002µs 6.444µs 6.448µs 6.451µs 6.453µs 0.18% -1.464 9.580 0.06% 0.000µs 1 200
credit_card/is_card_number/x371413321323331 throughput 154971948.582op/s 155237361.898op/s ± 99183.244op/s 155245219.314op/s ± 40747.192op/s 155276646.191op/s 155395653.378op/s 155472227.266op/s 155891849.754op/s 0.42% 1.482 9.696 0.06% 7013.314op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 4.270µs 4.288µs ± 0.002µs 4.288µs ± 0.001µs 4.289µs 4.291µs 4.293µs 4.295µs 0.16% -2.101 15.234 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 232853978.987op/s 233229762.025op/s ± 129143.902op/s 233225514.871op/s ± 55350.307op/s 233281986.960op/s 233430220.556op/s 233556759.121op/s 234197188.208op/s 0.42% 2.123 15.406 0.06% 9131.853op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 68.753µs 69.889µs ± 0.388µs 69.839µs ± 0.273µs 70.156µs 70.528µs 70.852µs 71.078µs 1.78% 0.252 0.237 0.55% 0.027µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 14068958.162op/s 14308753.851op/s ± 79260.135op/s 14318705.962op/s ± 56160.505op/s 14361973.516op/s 14419301.480op/s 14489364.959op/s 14544908.626op/s 1.58% -0.216 0.224 0.55% 5604.538op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 63.853µs 64.408µs ± 0.311µs 64.382µs ± 0.200µs 64.584µs 65.023µs 65.236µs 65.426µs 1.62% 0.626 0.230 0.48% 0.022µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 15284354.570op/s 15526464.377op/s ± 74797.866op/s 15532402.922op/s ± 48294.563op/s 15579672.927op/s 15639916.335op/s 15657262.471op/s 15661063.071op/s 0.83% -0.600 0.182 0.48% 5289.008op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 4.269µs 4.288µs ± 0.003µs 4.287µs ± 0.001µs 4.289µs 4.291µs 4.294µs 4.304µs 0.38% -0.373 16.803 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 232366709.742op/s 233231156.498op/s ± 143466.735op/s 233239394.134op/s ± 49618.422op/s 233283083.772op/s 233422880.405op/s 233557742.549op/s 234219487.162op/s 0.42% 0.408 16.872 0.06% 10144.630op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 62.072µs 62.424µs ± 0.147µs 62.425µs ± 0.100µs 62.520µs 62.677µs 62.725µs 62.924µs 0.80% 0.166 -0.074 0.23% 0.010µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 15892152.889op/s 16019478.954op/s ± 37674.361op/s 16019333.047op/s ± 25598.034op/s 16045595.417op/s 16078322.323op/s 16095311.506op/s 16110352.513op/s 0.57% -0.153 -0.088 0.23% 2663.980op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 58.548µs 58.674µs ± 0.042µs 58.676µs ± 0.023µs 58.699µs 58.739µs 58.790µs 58.806µs 0.22% -0.039 0.358 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 17005201.105op/s 17043427.169op/s ± 12298.155op/s 17042653.177op/s ± 6600.573op/s 17049183.630op/s 17064503.274op/s 17070217.525op/s 17079881.607op/s 0.22% 0.045 0.355 0.07% 869.611op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.432µs 6.442µs ± 0.004µs 6.442µs ± 0.002µs 6.445µs 6.449µs 6.452µs 6.457µs 0.23% 0.440 1.274 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 154870652.091op/s 155219618.910op/s ± 91572.029op/s 155226259.767op/s ± 48407.171op/s 155269683.594op/s 155371929.438op/s 155428176.677op/s 155469990.888op/s 0.16% -0.434 1.265 0.06% 6475.120op/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 [4.287µs; 4.288µs] or [-0.016%; +0.016%] None None None
credit_card/is_card_number/ throughput [233187507.533op/s; 233260757.211op/s] or [-0.016%; +0.016%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [90.953µs; 91.121µs] or [-0.093%; +0.093%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [10975016.381op/s; 10995022.314op/s] or [-0.091%; +0.091%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [83.547µs; 83.655µs] or [-0.065%; +0.065%] None None None
credit_card/is_card_number/ 378282246310005 throughput [11954380.969op/s; 11969288.645op/s] or [-0.062%; +0.062%] None None None
credit_card/is_card_number/37828224631 execution_time [4.288µs; 4.289µs] or [-0.019%; +0.019%] None None None
credit_card/is_card_number/37828224631 throughput [233147405.198op/s; 233233892.617op/s] or [-0.019%; +0.019%] None None None
credit_card/is_card_number/378282246310005 execution_time [80.917µs; 80.962µs] or [-0.028%; +0.028%] None None None
credit_card/is_card_number/378282246310005 throughput [12351540.134op/s; 12358418.878op/s] or [-0.028%; +0.028%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [58.672µs; 58.681µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [17041382.586op/s; 17043971.801op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.441µs; 6.442µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/x371413321323331 throughput [155223616.054op/s; 155251107.742op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ execution_time [4.287µs; 4.288µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/ throughput [233211863.922op/s; 233247660.128op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [69.836µs; 69.943µs] or [-0.077%; +0.077%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [14297769.158op/s; 14319738.543op/s] or [-0.077%; +0.077%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [64.365µs; 64.451µs] or [-0.067%; +0.067%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [15516098.112op/s; 15536830.642op/s] or [-0.067%; +0.067%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [4.287µs; 4.288µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [233211273.389op/s; 233251039.608op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [62.404µs; 62.445µs] or [-0.033%; +0.033%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [16014257.649op/s; 16024700.258op/s] or [-0.033%; +0.033%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [58.668µs; 58.680µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [17041722.763op/s; 17045131.575op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.442µs; 6.443µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [155206927.908op/s; 155232309.913op/s] or [-0.008%; +0.008%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 8b06f81 1738010802 support-keyonly-tags
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.362ms 6.378ms ± 0.009ms 6.377ms ± 0.005ms 6.382ms 6.389ms 6.406ms 6.428ms 0.80% 1.913 8.466 0.13% 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 [6.377ms; 6.379ms] or [-0.018%; +0.018%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 8b06f81 1738010802 support-keyonly-tags
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 19.136µs 28.821µs ± 14.270µs 19.315µs ± 0.158µs 37.842µs 47.752µs 57.687µs 151.037µs 681.95% 3.766 26.819 49.39% 1.009µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [26.843µs; 30.798µs] or [-6.862%; +6.862%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 8b06f81 1738010802 support-keyonly-tags
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 700.169µs 701.898µs ± 2.108µs 701.698µs ± 0.442µs 702.111µs 702.792µs 709.354µs 722.175µs 2.92% 7.944 69.380 0.30% 0.149µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1384705.333op/s 1424720.818op/s ± 4180.276op/s 1425114.743op/s ± 898.296op/s 1426095.312op/s 1427140.971op/s 1427451.637op/s 1428227.242op/s 0.22% -7.870 68.391 0.29% 295.590op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 472.467µs 473.641µs ± 0.533µs 473.610µs ± 0.252µs 473.865µs 474.406µs 474.739µs 477.069µs 0.73% 2.288 13.339 0.11% 0.038µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2096133.076op/s 2111304.600op/s ± 2369.500op/s 2111443.898op/s ± 1121.689op/s 2112496.910op/s 2114489.762op/s 2115847.420op/s 2116550.410op/s 0.24% -2.255 13.096 0.11% 167.549op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 190.178µs 190.649µs ± 0.171µs 190.655µs ± 0.102µs 190.739µs 190.910µs 191.167µs 191.253µs 0.31% 0.344 0.957 0.09% 0.012µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5228683.863op/s 5245245.925op/s ± 4701.275op/s 5245087.471op/s ± 2793.049op/s 5248352.017op/s 5252932.683op/s 5254965.587op/s 5258223.963op/s 0.25% -0.336 0.945 0.09% 332.430op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 46.336µs 46.518µs ± 0.066µs 46.517µs ± 0.044µs 46.561µs 46.635µs 46.677µs 46.720µs 0.44% 0.180 0.029 0.14% 0.005µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 21403970.859op/s 21496971.331op/s ± 30264.218op/s 21497684.653op/s ± 20500.569op/s 21517126.364op/s 21544709.551op/s 21559953.327op/s 21581606.514op/s 0.39% -0.172 0.023 0.14% 2140.003op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 48.967µs 49.156µs ± 0.090µs 49.167µs ± 0.073µs 49.229µs 49.290µs 49.312µs 49.355µs 0.38% -0.165 -0.980 0.18% 0.006µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20261503.818op/s 20343423.466op/s ± 37170.787op/s 20338707.272op/s ± 30190.511op/s 20376279.627op/s 20407545.965op/s 20418197.495op/s 20421983.914op/s 0.41% 0.170 -0.979 0.18% 2628.372op/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 [701.606µs; 702.190µs] or [-0.042%; +0.042%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1424141.472op/s; 1425300.164op/s] or [-0.041%; +0.041%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [473.568µs; 473.715µs] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2110976.210op/s; 2111632.990op/s] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [190.625µs; 190.673µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5244594.373op/s; 5245897.476op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [46.509µs; 46.527µs] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [21492777.002op/s; 21501165.661op/s] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [49.144µs; 49.169µs] or [-0.025%; +0.025%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [20338271.953op/s; 20348574.980op/s] or [-0.025%; +0.025%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 8b06f81 1738010802 support-keyonly-tags
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 261.659ns 273.259ns ± 13.679ns 267.464ns ± 4.645ns 278.069ns 307.231ns 312.396ns 315.904ns 18.11% 1.656 1.796 4.99% 0.967ns 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 [271.363ns; 275.155ns] or [-0.694%; +0.694%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 8b06f81 1738010802 support-keyonly-tags
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 5.371µs 5.449µs ± 0.040µs 5.443µs ± 0.032µs 5.484µs 5.522µs 5.527µs 5.528µs 1.56% 0.428 -0.873 0.74% 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.443µs; 5.454µs] or [-0.103%; +0.103%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Jan 15, 2025

Codecov Report

Attention: Patch coverage is 94.87179% with 2 lines in your changes missing coverage. Please review.

Project coverage is 71.37%. Comparing base (02eb386) to head (8b06f81).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #826      +/-   ##
==========================================
- Coverage   71.37%   71.37%   -0.01%     
==========================================
  Files         317      317              
  Lines       46605    46637      +32     
==========================================
+ Hits        33263    33285      +22     
- Misses      13342    13352      +10     
Components Coverage Δ
crashtracker 42.26% <ø> (-0.07%) ⬇️
crashtracker-ffi 6.38% <ø> (ø)
datadog-alloc 98.73% <ø> (ø)
data-pipeline 91.48% <ø> (ø)
data-pipeline-ffi 90.08% <ø> (ø)
ddcommon 80.24% <ø> (ø)
ddcommon-ffi 62.11% <ø> (ø)
ddtelemetry 59.51% <ø> (ø)
ddtelemetry-ffi 22.46% <ø> (ø)
dogstatsd 90.01% <94.87%> (+0.17%) ⬆️
dogstatsd-client 79.77% <ø> (ø)
ipc 82.68% <ø> (ø)
profiling 78.96% <ø> (ø)
profiling-ffi 67.66% <ø> (ø)
serverless 0.00% <ø> (ø)
sidecar 41.79% <ø> (ø)
sidecar-ffi 10.78% <ø> (ø)
spawn-worker 54.37% <ø> (ø)
tinybytes 93.60% <ø> (ø)
trace-mini-agent 72.48% <ø> (ø)
trace-normalization 98.23% <ø> (ø)
trace-obfuscation 95.96% <ø> (ø)
trace-protobuf 77.67% <ø> (ø)
trace-utils 94.13% <ø> (ø)

@alexgallotta alexgallotta requested a review from tobz January 16, 2025 17:17
@alexgallotta alexgallotta marked this pull request as draft January 16, 2025 17:35
@alexgallotta alexgallotta marked this pull request as ready for review January 16, 2025 20:07
dogstatsd/src/metric.rs Outdated Show resolved Hide resolved
Copy link
Contributor

@pawelchcki pawelchcki left a comment

Choose a reason for hiding this comment

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

One small performance nit. Otherwise LGTM

@@ -89,15 +88,23 @@ impl SortedTags {
pub fn to_chars(&self) -> Vec<Chars> {
let mut tags_as_chars = Vec::new();
for (k, v) in &self.values {
tags_as_chars.push(format!("{}:{}", k, v).into());
if v.is_empty() {
tags_as_chars.push(Chars::from(k.to_string()));
Copy link
Member

Choose a reason for hiding this comment

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

For bare tags, you can optimize this a little further:

  • Ustr::as_str (the type of k) gives you a &'static str
  • Bytes::from_static can be constructed from &'static [u8], which you can get from the &'static str by calling .to_bytes()
  • you can then jump from Bytes to Chars via Chars::from_bytes (which does return a Result<T, E> but should be safe to call .expect on since the safety condition it's validating is that you passed in valid UTF-8, which we know we did since we got our Bytes directly from a &str, which should always be valid UTF-8`

The end result is that we'll always skip the allocation for bare tags, and the only cost we'll pay is the UTF-8 validation, which is minimal.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This second optimization seems a bit less readable, add the expect path and requires an extra dependency for Bytes::from_static, so I would just use a pre allocated string as in the similar code too, unless there is a strong feeling about optimizing this

dogstatsd/src/metric.rs Outdated Show resolved Hide resolved
@alexgallotta alexgallotta merged commit 78d69a0 into main Jan 27, 2025
31 checks passed
@alexgallotta alexgallotta deleted the support-keyonly-tags branch January 27, 2025 21:18
paullegranddc pushed a commit that referenced this pull request Feb 3, 2025
* fix: support tag that are not key-value pairs

* fix comment

* add test for tag with multiple columns

* use more efficient string concatenation

* clippy
@alexgallotta alexgallotta changed the title fix: support tag that are not key-value pairs SVLS-6336 fix: support tag that are not key-value pairs Feb 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants