Skip to content

Conversation

@Aaalibaba42
Copy link
Contributor

What does this PR do?

Refactor health metrics emission via common API.

Motivation

Logic was duplicated and would have required to be duplicated again if another usecase arose. Now the core logic can be integrated elsewhere more easiely.

Additional Notes

I don't have the full context of this part of the code, I may have blindspots or problems in the implementation.

How to test the change?

I (mostly AI) added a bunch of tests (maybe too much of them even ?) to validate the changes.

@pr-commenter
Copy link

pr-commenter bot commented Jan 7, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-01-29 11:36:31

Comparing candidate commit b22214f in PR branch jwiriath/APMSP-1584_refactor_health_metrics with baseline commit cd903df in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 57 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 b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
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.670µs 25.967µs ± 9.519µs 18.515µs ± 0.668µs 33.362µs 42.604µs 44.331µs 69.616µs 275.99% 0.932 0.714 36.56% 0.673µ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.648µs; 27.286µs] or [-5.080%; +5.080%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
single_flag_killswitch/rules-based execution_time 188.157ns 190.723ns ± 2.388ns 190.349ns ± 1.600ns 191.829ns 195.004ns 198.554ns 204.473ns 7.42% 1.780 5.568 1.25% 0.169ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
single_flag_killswitch/rules-based execution_time [190.392ns; 191.054ns] or [-0.174%; +0.174%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
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 160.844µs 161.715µs ± 0.300µs 161.698µs ± 0.152µs 161.854µs 162.212µs 162.839µs 162.943µs 0.77% 0.842 3.014 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 [161.673µs; 161.756µs] or [-0.026%; +0.026%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
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 204.728µs 205.725µs ± 0.557µs 205.668µs ± 0.326µs 206.006µs 206.530µs 207.003µs 209.983µs 2.10% 2.416 15.656 0.27% 0.039µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4762293.958op/s 4860901.535op/s ± 13079.030op/s 4862194.246op/s ± 7695.384op/s 4869132.052op/s 4877744.155op/s 4881039.016op/s 4884527.138op/s 0.46% -2.322 14.758 0.27% 924.827op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.559µs 18.650µs ± 0.064µs 18.637µs ± 0.026µs 18.663µs 18.780µs 18.919µs 18.977µs 1.82% 2.600 8.438 0.34% 0.005µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 52695273.948op/s 53621175.414op/s ± 183599.912op/s 53656765.420op/s ± 73814.241op/s 53729523.355op/s 53796775.871op/s 53845807.706op/s 53883394.508op/s 0.42% -2.563 8.223 0.34% 12982.474op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.814µs 10.878µs ± 0.031µs 10.876µs ± 0.020µs 10.896µs 10.926µs 10.954µs 10.992µs 1.07% 0.537 0.794 0.29% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 90975570.629op/s 91933254.506op/s ± 265470.889op/s 91948504.631op/s ± 169841.135op/s 92106314.379op/s 92359109.703op/s 92452707.882op/s 92470892.845op/s 0.57% -0.515 0.748 0.29% 18771.627op/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 [205.647µs; 205.802µs] or [-0.038%; +0.038%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4859088.907op/s; 4862714.163op/s] or [-0.037%; +0.037%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.641µs; 18.658µs] or [-0.048%; +0.048%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53595730.232op/s; 53646620.596op/s] or [-0.047%; +0.047%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.873µs; 10.882µs] or [-0.040%; +0.040%] None None None
normalization/normalize_name/normalize_name/good throughput [91896462.794op/s; 91970046.218op/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 b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
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.981µs 5.070µs ± 0.043µs 5.076µs ± 0.037µs 5.108µs 5.138µs 5.143µs 5.147µs 1.38% -0.131 -0.937 0.85% 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.118%; +0.118%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
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 88.928µs 89.221µs ± 0.146µs 89.202µs ± 0.041µs 89.251µs 89.342µs 89.578µs 90.941µs 1.95% 8.414 95.414 0.16% 0.010µ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 [89.201µs; 89.241µs] or [-0.023%; +0.023%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
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 535.381µs 537.577µs ± 1.591µs 536.956µs ± 0.918µs 538.549µs 540.484µs 542.232µs 543.050µs 1.13% 1.113 0.861 0.30% 0.113µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1841451.063op/s 1860215.863op/s ± 5487.937op/s 1862349.172op/s ± 3183.855op/s 1864448.916op/s 1866046.296op/s 1867615.319op/s 1867829.116op/s 0.29% -1.098 0.814 0.29% 388.056op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 379.818µs 380.524µs ± 0.321µs 380.510µs ± 0.212µs 380.705µs 381.095µs 381.252µs 381.782µs 0.33% 0.504 0.643 0.08% 0.023µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2619298.513op/s 2627958.683op/s ± 2216.000op/s 2628049.573op/s ± 1462.921op/s 2629536.318op/s 2631173.479op/s 2632530.336op/s 2632837.528op/s 0.18% -0.498 0.630 0.08% 156.695op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 189.577µs 189.981µs ± 0.170µs 189.961µs ± 0.110µs 190.080µs 190.249µs 190.496µs 190.547µs 0.31% 0.568 0.677 0.09% 0.012µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5248062.456op/s 5263693.185op/s ± 4698.974op/s 5264225.659op/s ± 3046.181op/s 5267019.843op/s 5270401.817op/s 5273091.938op/s 5274903.632op/s 0.20% -0.562 0.666 0.09% 332.268op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.454µs 36.555µs ± 0.048µs 36.547µs ± 0.025µs 36.582µs 36.643µs 36.687µs 36.757µs 0.57% 0.854 1.516 0.13% 0.003µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 27205794.834op/s 27355964.107op/s ± 35808.338op/s 27362225.303op/s ± 19000.449op/s 27378942.904op/s 27407926.216op/s 27424569.635op/s 27432172.321op/s 0.26% -0.843 1.484 0.13% 2532.032op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.936µs 46.048µs ± 0.113µs 46.034µs ± 0.029µs 46.074µs 46.126µs 46.220µs 47.406µs 2.98% 9.045 103.581 0.24% 0.008µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21094158.489op/s 21716518.321op/s ± 52183.035op/s 21722848.348op/s ± 13895.416op/s 21735765.011op/s 21760320.831op/s 21766128.891op/s 21769493.945op/s 0.21% -8.871 100.686 0.24% 3689.898op/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 [537.356µs; 537.797µs] or [-0.041%; +0.041%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1859455.288op/s; 1860976.439op/s] or [-0.041%; +0.041%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [380.479µs; 380.568µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2627651.567op/s; 2628265.799op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [189.957µs; 190.004µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5263041.952op/s; 5264344.417op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.549µs; 36.562µs] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27351001.415op/s; 27360926.798op/s] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.032µs; 46.064µs] or [-0.034%; +0.034%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21709286.254op/s; 21723750.387op/s] or [-0.033%; +0.033%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
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.896µs 3.912µs ± 0.002µs 3.912µs ± 0.001µs 3.913µs 3.916µs 3.917µs 3.920µs 0.21% -1.115 9.855 0.06% 0.000µs 1 200
credit_card/is_card_number/ throughput 255077763.304op/s 255613523.582op/s ± 155427.206op/s 255610446.882op/s ± 87055.807op/s 255704065.710op/s 255805867.821op/s 255880035.926op/s 256670058.820op/s 0.41% 1.135 9.984 0.06% 10990.363op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 77.073µs 77.622µs ± 0.348µs 77.567µs ± 0.199µs 77.794µs 78.287µs 78.489µs 79.087µs 1.96% 0.886 1.161 0.45% 0.025µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12644241.141op/s 12883141.373op/s ± 57599.980op/s 12892054.961op/s ± 33079.904op/s 12921801.989op/s 12959645.223op/s 12968275.532op/s 12974671.831op/s 0.64% -0.854 1.052 0.45% 4072.934op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 70.634µs 71.137µs ± 0.320µs 71.115µs ± 0.172µs 71.286µs 71.703µs 72.091µs 72.276µs 1.63% 0.871 0.998 0.45% 0.023µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13835854.174op/s 14057603.864op/s ± 62969.416op/s 14061804.659op/s ± 33921.687op/s 14095885.080op/s 14142276.710op/s 14156675.045op/s 14157401.183op/s 0.68% -0.841 0.913 0.45% 4452.610op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.894µs 3.913µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.919µs 3.921µs 3.923µs 0.28% -0.177 6.245 0.08% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254899536.075op/s 255588830.477op/s ± 203526.081op/s 255612576.139op/s ± 98682.398op/s 255705644.787op/s 255852359.975op/s 255884742.913op/s 256798426.899op/s 0.46% 0.196 6.335 0.08% 14391.467op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 67.458µs 67.948µs ± 0.304µs 67.923µs ± 0.177µs 68.113µs 68.496µs 68.714µs 68.872µs 1.40% 0.533 -0.073 0.45% 0.021µs 1 200
credit_card/is_card_number/378282246310005 throughput 14519684.424op/s 14717379.538op/s ± 65644.190op/s 14722574.416op/s ± 38452.517op/s 14759993.423op/s 14813614.601op/s 14822276.236op/s 14823967.390op/s 0.69% -0.511 -0.109 0.44% 4641.745op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 44.649µs 45.224µs ± 0.200µs 45.235µs ± 0.153µs 45.394µs 45.507µs 45.538µs 45.562µs 0.72% -0.466 -0.496 0.44% 0.014µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21947893.328op/s 22112462.748op/s ± 97977.248op/s 22106829.815op/s ± 74848.095op/s 22174978.928op/s 22302953.451op/s 22341846.577op/s 22396773.573op/s 1.31% 0.483 -0.471 0.44% 6928.038op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.027µs 6.042µs ± 0.016µs 6.039µs ± 0.003µs 6.041µs 6.071µs 6.109µs 6.167µs 2.13% 4.309 24.552 0.26% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 162142331.006op/s 165518026.799op/s ± 422016.936op/s 165593011.996op/s ± 82196.972op/s 165690181.024op/s 165811868.621op/s 165918722.732op/s 165928172.740op/s 0.20% -4.248 23.814 0.25% 29841.104op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.893µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.915µs 3.918µs 3.919µs 3.921µs 0.21% -1.339 9.432 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255009805.307op/s 255539147.222op/s ± 198209.793op/s 255541161.651op/s ± 133783.416op/s 255677061.067op/s 255787726.469op/s 255930279.049op/s 256889921.362op/s 0.53% 1.362 9.599 0.08% 14015.549op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.954µs 65.680µs ± 0.113µs 65.688µs ± 0.066µs 65.758µs 65.827µs 65.865µs 65.874µs 0.28% -1.763 8.409 0.17% 0.008µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15180425.308op/s 15225460.748op/s ± 26296.015op/s 15223518.568op/s ± 15199.689op/s 15238594.939op/s 15263006.311op/s 15290088.771op/s 15395544.751op/s 1.13% 1.801 8.691 0.17% 1859.409op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 52.952µs 53.034µs ± 0.036µs 53.035µs ± 0.022µs 53.055µs 53.091µs 53.147µs 53.181µs 0.27% 0.510 1.209 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18803852.143op/s 18855788.754op/s ± 12815.374op/s 18855317.612op/s ± 7773.528op/s 18864269.659op/s 18875666.058op/s 18881992.848op/s 18884863.782op/s 0.16% -0.504 1.193 0.07% 906.184op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.893µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.914µs 3.917µs 3.920µs 3.924µs 0.29% -0.687 7.358 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254845149.903op/s 255589694.803op/s ± 201649.633op/s 255587334.266op/s ± 125343.861op/s 255717231.790op/s 255857222.737op/s 255893352.352op/s 256861055.360op/s 0.50% 0.708 7.474 0.08% 14258.782op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 49.742µs 49.816µs ± 0.032µs 49.813µs ± 0.020µs 49.833µs 49.872µs 49.911µs 49.930µs 0.24% 0.690 0.848 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 20027923.509op/s 20073984.586op/s ± 13068.464op/s 20075105.865op/s ± 8116.063op/s 20083030.343op/s 20092713.479op/s 20097142.170op/s 20103845.866op/s 0.14% -0.685 0.838 0.06% 924.080op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 44.731µs 45.194µs ± 0.194µs 45.206µs ± 0.156µs 45.359µs 45.491µs 45.531µs 45.549µs 0.76% -0.223 -0.793 0.43% 0.014µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21954398.341op/s 22127153.089op/s ± 94954.524op/s 22120732.570op/s ± 76512.755op/s 22198880.622op/s 22294537.534op/s 22321353.795op/s 22355856.086op/s 1.06% 0.238 -0.781 0.43% 6714.299op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.029µs 6.039µs ± 0.014µs 6.036µs ± 0.002µs 6.040µs 6.061µs 6.085µs 6.189µs 2.52% 7.321 71.383 0.23% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 161580964.357op/s 165579420.517op/s ± 368922.010op/s 165660101.512op/s ± 65095.590op/s 165713124.064op/s 165796844.940op/s 165849918.579op/s 165853839.301op/s 0.12% -7.189 69.217 0.22% 26086.726op/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.912µs; 3.912µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/ throughput [255591982.866op/s; 255635064.298op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [77.574µs; 77.671µs] or [-0.062%; +0.062%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12875158.569op/s; 12891124.176op/s] or [-0.062%; +0.062%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [71.093µs; 71.182µs] or [-0.062%; +0.062%] None None None
credit_card/is_card_number/ 378282246310005 throughput [14048876.909op/s; 14066330.819op/s] or [-0.062%; +0.062%] None None None
credit_card/is_card_number/37828224631 execution_time [3.912µs; 3.913µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/37828224631 throughput [255560623.719op/s; 255617037.234op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/378282246310005 execution_time [67.906µs; 67.990µs] or [-0.062%; +0.062%] None None None
credit_card/is_card_number/378282246310005 throughput [14708281.884op/s; 14726477.191op/s] or [-0.062%; +0.062%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.197µs; 45.252µs] or [-0.061%; +0.061%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [22098884.044op/s; 22126041.452op/s] or [-0.061%; +0.061%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.040µs; 6.044µs] or [-0.036%; +0.036%] None None None
credit_card/is_card_number/x371413321323331 throughput [165459539.311op/s; 165576514.288op/s] or [-0.035%; +0.035%] 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 [255511677.251op/s; 255566617.193op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.664µs; 65.695µs] or [-0.024%; +0.024%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15221816.373op/s; 15229105.123op/s] or [-0.024%; +0.024%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.029µs; 53.039µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18854012.666op/s; 18857564.841op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.912µs; 3.913µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255561748.104op/s; 255617641.503op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [49.811µs; 49.820µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [20072173.423op/s; 20075795.750op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.167µs; 45.221µs] or [-0.059%; +0.059%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [22113993.305op/s; 22140312.873op/s] or [-0.059%; +0.059%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.038µs; 6.041µs] or [-0.031%; +0.031%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [165528291.474op/s; 165630549.559op/s] or [-0.031%; +0.031%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
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 48.833ms 49.134ms ± 1.427ms 48.953ms ± 0.047ms 49.005ms 49.161ms 52.622ms 64.496ms 31.75% 9.471 91.570 2.90% 0.101ms 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 [48.936ms; 49.331ms] or [-0.402%; +0.402%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching serializing traces from their internal representation to msgpack execution_time 14.574ms 14.644ms ± 0.040ms 14.640ms ± 0.017ms 14.656ms 14.711ms 14.774ms 14.898ms 1.76% 2.347 9.951 0.27% 0.003ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching serializing traces from their internal representation to msgpack execution_time [14.639ms; 14.650ms] or [-0.038%; +0.038%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
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.432µs 34.119µs ± 1.152µs 33.589µs ± 0.065µs 33.692µs 36.559µs 36.612µs 38.000µs 13.13% 1.720 1.116 3.37% 0.081µ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.959µs; 34.278µs] or [-0.468%; +0.468%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sdk_test_data/rules-based execution_time 144.365µs 146.358µs ± 1.989µs 146.033µs ± 0.520µs 146.607µs 147.925µs 154.230µs 167.022µs 14.37% 6.833 61.430 1.36% 0.141µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sdk_test_data/rules-based execution_time [146.082µs; 146.633µs] or [-0.188%; +0.188%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
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 10.611ms 10.637ms ± 0.012ms 10.636ms ± 0.008ms 10.643ms 10.656ms 10.670ms 10.701ms 0.61% 1.276 4.369 0.12% 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 [10.635ms; 10.638ms] or [-0.016%; +0.016%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
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.327µs 2.379µs ± 0.018µs 2.378µs ± 0.005µs 2.382µs 2.408µs 2.414µs 2.523µs 6.10% 2.306 19.121 0.76% 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.377µs; 2.382µs] or [-0.106%; +0.106%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample_frames_x1000 execution_time 3.871ms 3.880ms ± 0.007ms 3.879ms ± 0.002ms 3.882ms 3.885ms 3.887ms 3.966ms 2.24% 9.241 109.941 0.18% 0.000ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample_frames_x1000 execution_time [3.879ms; 3.881ms] or [-0.025%; +0.025%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
receiver_entry_point/report/2597 execution_time 12.746ms 13.076ms ± 0.074ms 13.080ms ± 0.037ms 13.115ms 13.177ms 13.210ms 13.350ms 2.06% -0.845 4.969 0.57% 0.005ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2597 execution_time [13.065ms; 13.086ms] or [-0.079%; +0.079%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
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 242.572ns 254.239ns ± 14.203ns 247.162ns ± 3.125ns 258.754ns 286.947ns 290.480ns 291.347ns 17.88% 1.349 0.372 5.57% 1.004ns 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.271ns; 256.208ns] or [-0.774%; +0.774%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample2_frames_x1000 execution_time 545.657µs 546.606µs ± 0.632µs 546.392µs ± 0.310µs 546.871µs 547.965µs 548.154µs 548.498µs 0.39% 1.084 0.335 0.12% 0.045µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample2_frames_x1000 execution_time [546.518µs; 546.693µs] or [-0.016%; +0.016%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz b22214f 1769685617 jwiriath/APMSP-1584_refactor_health_metrics
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.190µs 3.262µs ± 1.438µs 3.021µs ± 0.034µs 3.070µs 3.711µs 14.146µs 14.775µs 389.14% 7.206 53.647 43.98% 0.102µ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.062µs; 3.461µs] or [-6.111%; +6.111%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Jan 7, 2026

Codecov Report

❌ Patch coverage is 81.40351% with 106 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.07%. Comparing base (cd903df) to head (b22214f).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1433      +/-   ##
==========================================
+ Coverage   70.96%   71.07%   +0.10%     
==========================================
  Files         421      422       +1     
  Lines       68438    68640     +202     
==========================================
+ Hits        48567    48784     +217     
+ Misses      19871    19856      -15     
Components Coverage Δ
libdd-crashtracker 61.38% <ø> (-0.03%) ⬇️
libdd-crashtracker-ffi 16.50% <ø> (ø)
libdd-alloc 98.73% <ø> (ø)
libdd-data-pipeline 86.84% <81.40%> (+0.56%) ⬆️
libdd-data-pipeline-ffi 78.57% <ø> (ø)
libdd-common 80.97% <ø> (ø)
libdd-common-ffi 74.54% <ø> (ø)
libdd-telemetry 59.82% <ø> (+0.03%) ⬆️
libdd-telemetry-ffi 21.17% <ø> (ø)
libdd-dogstatsd-client 83.75% <ø> (ø)
datadog-ipc 82.70% <ø> (+0.10%) ⬆️
libdd-profiling 81.49% <ø> (ø)
libdd-profiling-ffi 64.71% <ø> (ø)
datadog-sidecar 34.94% <ø> (ø)
datdog-sidecar-ffi 10.25% <ø> (ø)
spawn-worker 55.18% <ø> (ø)
libdd-tinybytes 93.43% <ø> (ø)
libdd-trace-normalization 82.33% <ø> (ø)
libdd-trace-obfuscation 94.17% <ø> (ø)
libdd-trace-protobuf 61.18% <ø> (ø)
libdd-trace-utils 89.45% <ø> (ø)
datadog-tracer-flare 63.49% <ø> (ø)
libdd-log 75.57% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Aaalibaba42 Aaalibaba42 marked this pull request as ready for review January 7, 2026 12:55
@Aaalibaba42 Aaalibaba42 requested a review from a team as a code owner January 7, 2026 12:55
@dd-octo-sts
Copy link

dd-octo-sts bot commented Jan 7, 2026

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 91.23 MB 91.21 MB --.02% (-27.18 KB) 💪
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.38 MB 8.38 MB 0% (0 B) 👌
aarch64-apple-darwin
Artifact Baseline Commit Change
/aarch64-apple-darwin/lib/libdatadog_profiling.a 62.36 MB 62.35 MB --.01% (-12.62 KB) 💪
/aarch64-apple-darwin/lib/libdatadog_profiling.dylib 9.41 MB 9.41 MB -0% (-496 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 10.67 MB 10.67 MB -0% (-824 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 105.55 MB 105.51 MB --.03% (-41.31 KB) 💪
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 25.08 MB 25.07 MB --.03% (-9.50 KB) 💪
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 73.49 KB 73.49 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 166.29 MB 166.26 MB --.01% (-24.00 KB) 💪
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 830.26 MB 829.65 MB --.07% (-626.79 KB) 💪
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.55 MB 9.54 MB --.08% (-8.50 KB) 💪
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 73.49 KB 73.49 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 22.94 MB 22.94 MB --.03% (-8.00 KB) 💪
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 47.92 MB 47.89 MB --.05% (-24.62 KB) 💪
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 21.15 MB 21.14 MB --.04% (-9.00 KB) 💪
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 74.62 KB 74.62 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 170.25 MB 170.23 MB -0% (-16.00 KB) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 817.21 MB 816.59 MB --.07% (-635.00 KB) 💪
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 7.22 MB 7.21 MB --.07% (-5.50 KB) 💪
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 74.62 KB 74.62 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 24.52 MB 24.51 MB --.03% (-8.00 KB) 💪
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 43.63 MB 43.61 MB --.05% (-22.38 KB) 💪
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 79.74 MB 79.72 MB --.02% (-21.66 KB) 💪
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 9.85 MB 9.84 MB --.03% (-4.00 KB) 💪
x86_64-apple-darwin
Artifact Baseline Commit Change
/x86_64-apple-darwin/lib/libdatadog_profiling.a 64.25 MB 64.23 MB --.01% (-12.85 KB) 💪
/x86_64-apple-darwin/lib/libdatadog_profiling.dylib 10.44 MB 10.44 MB --.04% (-4.45 KB) 💪
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 99.57 MB 99.54 MB --.02% (-28.30 KB) 💪
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.41 MB 11.40 MB --.03% (-4.46 KB) 💪

.unwrap_or_else(|_| tag!("type", "unknown"));
self.emit_metric(
HealthMetric::Count(health_metrics::TRANSPORT_TRACES_FAILED, 1),
Some(vec![&resp_tag, &type_tag]),
Copy link
Contributor

Choose a reason for hiding this comment

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

Why were we sending the status code in two different tags, and why is it ok that we're only sending it in one tag now?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I don't know. I didn't catch that when refactoring, I just saw there was a codepath for the status code and handled it in the refactored types. And I immediately can't figure out if it's relevant or not, I'll look for some kind of spec.

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not sure why we'd need to send redundant tags, hopefully it was a mistake in the initial implementation. But confirm the correct behavior before merging.

@Aaalibaba42 Aaalibaba42 changed the title [APMSP-1584] Refactor health metrics refactor(libdd-data-pipeline): health metrics Jan 22, 2026
Copy link
Contributor

@ajgajg1134 ajgajg1134 left a comment

Choose a reason for hiding this comment

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

Overall looks good to me! test coverage seems appropriate, just one small question about reusing the emitter

@Aaalibaba42
Copy link
Contributor Author

/mergegate trigger

@gh-worker-devflow-routing-ef8351
Copy link

gh-worker-devflow-routing-ef8351 bot commented Jan 29, 2026

View all feedbacks in Devflow UI.

2026-01-29 10:51:04 UTC ℹ️ Start processing command /mergegate trigger


2026-01-29 10:51:12 UTC ℹ️ Devflow: /mergegate trigger

Merge gate status on libdatadog #1433 synced on DB: success

@Aaalibaba42
Copy link
Contributor Author

/merge

@gh-worker-devflow-routing-ef8351
Copy link

gh-worker-devflow-routing-ef8351 bot commented Jan 29, 2026

View all feedbacks in Devflow UI.

2026-01-29 10:51:34 UTC ℹ️ Start processing command /merge


2026-01-29 10:51:39 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in main is approximately 33m (p90).


2026-01-29 11:18:11 UTCMergeQueue: The checks failed on this merge request

Tests failed on this commit 431b4ce:

What to do next?

  • Investigate the failures and when ready, re-add your pull request to the queue!
  • If your PR checks are green, try to rebase/merge. It might be because the CI run is a bit old.
  • Any question, go check the FAQ.

@github-actions
Copy link

github-actions bot commented Jan 29, 2026

📚 Documentation Check Results

⚠️ 768 documentation warning(s) found

📦 libdd-data-pipeline - 768 warning(s)


Updated: 2026-01-29 11:21:00 UTC | Commit: bff564b | missing-docs job results

@github-actions
Copy link

github-actions bot commented Jan 29, 2026

🔒 Cargo Deny Results

⚠️ 1 issue(s) found, showing only errors (advisories, bans, sources)

📦 libdd-data-pipeline - 1 error(s)

Show output
error[vulnerability]: Logging user input may result in poisoning logs with ANSI escape sequences
    ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:307:1
    │
307 │ tracing-subscriber 0.3.19 registry+https://github.com/rust-lang/crates.io-index
    │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
    │
    ├ ID: RUSTSEC-2025-0055
    ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2025-0055
    ├ Previous versions of tracing-subscriber were vulnerable to ANSI escape sequence injection attacks. Untrusted user input containing ANSI escape sequences could be injected into terminal output when logged, potentially allowing attackers to:
      
      - Manipulate terminal title bars
      - Clear screens or modify terminal display
      - Potentially mislead users through terminal manipulation
      
      In isolation, impact is minimal, however security issues have been found in terminal emulators that enabled an attacker to use ANSI escape sequences via logs to exploit vulnerabilities in the terminal emulator.
      
      This was patched in [PR #3368](https://github.com/tokio-rs/tracing/pull/3368) to escape ANSI control characters from user input.
    ├ Announcement: https://github.com/advisories/GHSA-xwfj-jgwm-7wp5
    ├ Solution: Upgrade to >=0.3.20 (try `cargo update -p tracing-subscriber`)
    ├ tracing-subscriber v0.3.19
      ├── libdd-log v1.0.0
      │   └── (dev) libdd-data-pipeline v1.0.0
      ├── (dev) libdd-telemetry v2.0.0
      │   └── libdd-data-pipeline v1.0.0 (*)
      └── tracing-appender v0.2.3
          └── libdd-log v1.0.0 (*)

advisories FAILED, bans ok, sources ok

Updated: 2026-01-29 11:24:19 UTC | Commit: bff564b | dependency-check job results

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants