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

Crashtracker receiver is spawned on crash #692

Merged
merged 48 commits into from
Oct 31, 2024
Merged

Conversation

sanchda
Copy link
Contributor

@sanchda sanchda commented Oct 24, 2024

What does this PR do?

Changes the way the crashtracker receiver works

  • Uses an anonymous AF_UNIX socketpair for communication instead of a stdio pipe
  • Eliminates some of the public API, such as being able to initialize with a named UDS
  • Binds the lifetime of the receiver to the signal handler, being very careful to manage certain signals
  • Increases the altstack size to accommodate the slightly higher stack utilization
  • Tries really hard to reap the receiver exit status, so other PIDs do not
  • Other miscellanea

This PR isn't yet complete, as it requires more tests and an RFC. But please feel free to comment on what you see!

Motivation

Some runtimes actually call waitpid(-1,... anticipating an ECHILD, which is incompatible with the idea of a long-lived receiver process. We also wanted to improve some of the safety around how signals work.

Additional Notes

Anything else we should know when reviewing?

How to test the change?

Describe here in detail how the change can be validated.

APMLP-286

@pr-commenter
Copy link

pr-commenter bot commented Oct 24, 2024

Benchmarks

Comparison

Benchmark execution time: 2024-10-31 20:22:14

Comparing candidate commit 2bfef1b in PR branch sanchda/crashtracking_safety with baseline commit d92f667 in branch main.

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

scenario:benching deserializing traces from msgpack to their internal representation

  • 🟥 execution_time [+28.395ns; +36.942ns] or [+2.409%; +3.134%]

scenario:tags/replace_trace_tags

  • 🟩 execution_time [-81.858ns; -72.228ns] or [-2.994%; -2.642%]

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 2bfef1b 1730405512 sanchda/crashtracking_safety
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.614µs 2.657µs ± 0.016µs 2.657µs ± 0.006µs 2.662µs 2.694µs 2.699µs 2.708µs 1.91% 0.279 1.858 0.61% 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.655µs; 2.659µs] or [-0.085%; +0.085%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2bfef1b 1730405512 sanchda/crashtracking_safety
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 36.996µs 37.634µs ± 1.203µs 37.073µs ± 0.039µs 37.155µs 40.236µs 40.267µs 40.544µs 9.36% 1.695 0.898 3.19% 0.085µ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 [37.467µs; 37.801µs] or [-0.443%; +0.443%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2bfef1b 1730405512 sanchda/crashtracking_safety
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 9.052ms 9.096ms ± 0.021ms 9.096ms ± 0.009ms 9.104ms 9.116ms 9.145ms 9.272ms 1.93% 4.292 31.768 0.23% 0.002ms 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 [9.093ms; 9.099ms] or [-0.033%; +0.033%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2bfef1b 1730405512 sanchda/crashtracking_safety
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 256.280ns 271.780ns ± 15.163ns 264.186ns ± 5.332ns 283.811ns 307.434ns 310.196ns 311.293ns 17.83% 1.200 0.330 5.57% 1.072ns 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 [269.678ns; 273.881ns] or [-0.773%; +0.773%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2bfef1b 1730405512 sanchda/crashtracking_safety
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.605µs 4.615µs ± 0.002µs 4.615µs ± 0.001µs 4.616µs 4.619µs 4.621µs 4.628µs 0.28% 0.976 5.559 0.05% 0.000µs 1 200
credit_card/is_card_number/ throughput 216089180.713op/s 216693822.622op/s ± 108286.457op/s 216702838.807op/s ± 58120.432op/s 216764839.783op/s 216834009.924op/s 216852071.640op/s 217155331.299op/s 0.21% -0.966 5.531 0.05% 7657.009op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 90.204µs 91.262µs ± 0.538µs 91.183µs ± 0.308µs 91.534µs 92.296µs 92.739µs 93.394µs 2.42% 0.808 0.939 0.59% 0.038µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 10707291.558op/s 10957804.742op/s ± 64256.642op/s 10966925.399op/s ± 37099.742op/s 10998533.732op/s 11050968.509op/s 11077052.684op/s 11085971.711op/s 1.09% -0.769 0.838 0.58% 4543.631op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 82.775µs 83.756µs ± 0.624µs 83.694µs ± 0.446µs 84.146µs 84.961µs 85.403µs 85.605µs 2.28% 0.628 -0.134 0.74% 0.044µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 11681532.228op/s 11940042.878op/s ± 88537.182op/s 11948222.977op/s ± 63728.522op/s 12011602.308op/s 12055409.322op/s 12076259.331op/s 12080938.665op/s 1.11% -0.596 -0.198 0.74% 6260.524op/s 1 200
credit_card/is_card_number/37828224631 execution_time 4.602µs 4.615µs ± 0.003µs 4.615µs ± 0.001µs 4.616µs 4.618µs 4.619µs 4.638µs 0.50% 2.660 29.246 0.06% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 215617942.915op/s 216689901.089op/s ± 124247.335op/s 216694810.159op/s ± 69448.968op/s 216762086.085op/s 216825329.377op/s 216891046.743op/s 217315066.834op/s 0.29% -2.618 28.923 0.06% 8785.613op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 79.305µs 80.357µs ± 0.464µs 80.346µs ± 0.372µs 80.695µs 81.172µs 81.314µs 81.391µs 1.30% 0.120 -0.781 0.58% 0.033µs 1 200
credit_card/is_card_number/378282246310005 throughput 12286357.445op/s 12444942.209op/s ± 71869.624op/s 12446181.467op/s ± 57923.006op/s 12504089.150op/s 12556102.430op/s 12577906.322op/s 12609467.834op/s 1.31% -0.099 -0.788 0.58% 5081.950op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 59.264µs 59.570µs ± 0.233µs 59.564µs ± 0.195µs 59.735µs 60.007µs 60.088µs 60.109µs 0.91% 0.473 -0.724 0.39% 0.016µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 16636417.435op/s 16787288.276op/s ± 65541.975op/s 16788605.631op/s ± 54907.053op/s 16852752.486op/s 16869520.053op/s 16872096.052op/s 16873651.803op/s 0.51% -0.461 -0.741 0.39% 4634.517op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 7.219µs 7.223µs ± 0.003µs 7.223µs ± 0.002µs 7.224µs 7.228µs 7.231µs 7.237µs 0.20% 1.332 3.074 0.04% 0.000µs 1 200
credit_card/is_card_number/x371413321323331 throughput 138179561.597op/s 138450123.995op/s ± 52502.642op/s 138455680.337op/s ± 35622.410op/s 138492185.578op/s 138509906.228op/s 138520573.768op/s 138524782.084op/s 0.05% -1.328 3.052 0.04% 3712.497op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 4.601µs 4.615µs ± 0.002µs 4.614µs ± 0.001µs 4.616µs 4.619µs 4.619µs 4.620µs 0.12% -0.746 5.237 0.05% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 216449373.271op/s 216702431.028op/s ± 105396.442op/s 216712991.945op/s ± 62326.640op/s 216763972.468op/s 216841818.886op/s 216881891.515op/s 217334856.850op/s 0.29% 0.756 5.297 0.05% 7452.654op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 73.952µs 74.384µs ± 0.163µs 74.401µs ± 0.101µs 74.492µs 74.639µs 74.739µs 74.839µs 0.59% -0.347 0.049 0.22% 0.012µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 13361954.971op/s 13443778.133op/s ± 29517.387op/s 13440594.590op/s ± 18252.236op/s 13462872.428op/s 13500375.054op/s 13515035.506op/s 13522333.486op/s 0.61% 0.360 0.052 0.22% 2087.194op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 66.288µs 66.816µs ± 0.244µs 66.800µs ± 0.157µs 66.971µs 67.273µs 67.447µs 67.548µs 1.12% 0.499 0.053 0.36% 0.017µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 14804258.099op/s 14966647.560op/s ± 54576.752op/s 14970170.444op/s ± 35175.009op/s 15003963.673op/s 15040275.602op/s 15068963.804op/s 15085683.666op/s 0.77% -0.480 0.024 0.36% 3859.159op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 4.601µs 4.615µs ± 0.002µs 4.615µs ± 0.001µs 4.616µs 4.618µs 4.619µs 4.624µs 0.21% -0.745 8.315 0.05% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 216248343.709op/s 216699182.892op/s ± 100113.876op/s 216707649.785op/s ± 61141.792op/s 216757110.080op/s 216823904.027op/s 216892206.191op/s 217334508.096op/s 0.29% 0.758 8.376 0.05% 7079.120op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 62.321µs 62.631µs ± 0.163µs 62.599µs ± 0.113µs 62.741µs 62.921µs 63.079µs 63.129µs 0.85% 0.775 -0.032 0.26% 0.012µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 15840465.916op/s 15966572.441op/s ± 41400.239op/s 15974779.818op/s ± 28772.971op/s 15999512.816op/s 16018614.994op/s 16028975.788op/s 16045891.249op/s 0.45% -0.764 -0.056 0.26% 2927.439op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 59.264µs 59.590µs ± 0.230µs 59.603µs ± 0.169µs 59.759µs 60.047µs 60.100µs 60.104µs 0.84% 0.273 -0.722 0.38% 0.016µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 16637709.832op/s 16781467.321op/s ± 64598.266op/s 16777813.895op/s ± 47651.806op/s 16842638.212op/s 16870016.162op/s 16872489.086op/s 16873673.694op/s 0.57% -0.260 -0.740 0.38% 4567.787op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 7.218µs 7.223µs ± 0.003µs 7.222µs ± 0.002µs 7.224µs 7.228µs 7.230µs 7.235µs 0.18% 1.076 1.325 0.04% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 138213814.476op/s 138452275.363op/s ± 55759.163op/s 138467619.347op/s ± 36445.747op/s 138497313.153op/s 138515722.920op/s 138528323.641op/s 138533192.553op/s 0.05% -1.074 1.314 0.04% 3942.768op/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.614µs; 4.615µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/ throughput [216678815.161op/s; 216708830.084op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [91.188µs; 91.337µs] or [-0.082%; +0.082%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [10948899.389op/s; 10966710.094op/s] or [-0.081%; +0.081%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [83.670µs; 83.843µs] or [-0.103%; +0.103%] None None None
credit_card/is_card_number/ 378282246310005 throughput [11927772.476op/s; 11952313.280op/s] or [-0.103%; +0.103%] None None None
credit_card/is_card_number/37828224631 execution_time [4.615µs; 4.615µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/37828224631 throughput [216672681.603op/s; 216707120.574op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/378282246310005 execution_time [80.292µs; 80.421µs] or [-0.080%; +0.080%] None None None
credit_card/is_card_number/378282246310005 throughput [12434981.771op/s; 12454902.648op/s] or [-0.080%; +0.080%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [59.537µs; 59.602µs] or [-0.054%; +0.054%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [16778204.788op/s; 16796371.763op/s] or [-0.054%; +0.054%] None None None
credit_card/is_card_number/x371413321323331 execution_time [7.222µs; 7.223µs] or [-0.005%; +0.005%] None None None
credit_card/is_card_number/x371413321323331 throughput [138442847.634op/s; 138457400.356op/s] or [-0.005%; +0.005%] None None None
credit_card/is_card_number_no_luhn/ execution_time [4.614µs; 4.615µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number_no_luhn/ throughput [216687824.095op/s; 216717037.962op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [74.362µs; 74.407µs] or [-0.030%; +0.030%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [13439687.307op/s; 13447868.959op/s] or [-0.030%; +0.030%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [66.782µs; 66.850µs] or [-0.051%; +0.051%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [14959083.747op/s; 14974211.373op/s] or [-0.051%; +0.051%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [4.614µs; 4.615µs] or [-0.006%; +0.006%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [216685308.072op/s; 216713057.713op/s] or [-0.006%; +0.006%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [62.609µs; 62.654µs] or [-0.036%; +0.036%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [15960834.766op/s; 15972310.116op/s] or [-0.036%; +0.036%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [59.559µs; 59.622µs] or [-0.053%; +0.053%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [16772514.622op/s; 16790420.019op/s] or [-0.053%; +0.053%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [7.222µs; 7.223µs] or [-0.006%; +0.006%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [138444547.680op/s; 138460003.047op/s] or [-0.006%; +0.006%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2bfef1b 1730405512 sanchda/crashtracking_safety
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 1.153µs 1.211µs ± 0.022µs 1.215µs ± 0.013µs 1.229µs 1.233µs 1.234µs 1.235µs 1.60% -1.251 0.822 1.78% 0.002µs 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 [1.208µs; 1.214µs] or [-0.247%; +0.247%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2bfef1b 1730405512 sanchda/crashtracking_safety
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 185.642µs 189.257µs ± 1.683µs 189.314µs ± 1.192µs 190.457µs 191.910µs 193.696µs 194.044µs 2.50% 0.215 -0.216 0.89% 0.119µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5153459.165op/s 5284235.707op/s ± 46921.613op/s 5282219.244op/s ± 33267.149op/s 5318242.829op/s 5357819.607op/s 5378517.746op/s 5386709.004op/s 1.98% -0.169 -0.260 0.89% 3317.859op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.181µs 18.211µs ± 0.023µs 18.197µs ± 0.016µs 18.232µs 18.241µs 18.247µs 18.278µs 0.44% 0.195 -1.513 0.12% 0.002µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 54711671.808op/s 54911234.889op/s ± 68614.368op/s 54953191.989op/s ± 47757.711op/s 54975696.550op/s 54989496.424op/s 55000660.777op/s 55002859.683op/s 0.09% -0.193 -1.517 0.12% 4851.768op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 11.548µs 11.571µs ± 0.022µs 11.558µs ± 0.006µs 11.590µs 11.604µs 11.630µs 11.691µs 1.15% 1.385 3.191 0.19% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 85537654.277op/s 86424071.677op/s ± 163379.632op/s 86518784.885op/s ± 41248.387op/s 86545811.303op/s 86568987.325op/s 86583334.042op/s 86597190.462op/s 0.09% -1.366 3.059 0.19% 11552.685op/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 [189.024µs; 189.490µs] or [-0.123%; +0.123%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5277732.822op/s; 5290738.591op/s] or [-0.123%; +0.123%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.208µs; 18.214µs] or [-0.017%; +0.017%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [54901725.598op/s; 54920744.181op/s] or [-0.017%; +0.017%] None None None
normalization/normalize_name/normalize_name/good execution_time [11.568µs; 11.574µs] or [-0.026%; +0.026%] None None None
normalization/normalize_name/normalize_name/good throughput [86401428.831op/s; 86446714.523op/s] or [-0.026%; +0.026%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2bfef1b 1730405512 sanchda/crashtracking_safety
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 143.042µs 144.209µs ± 0.412µs 144.183µs ± 0.182µs 144.371µs 144.898µs 145.541µs 146.593µs 1.67% 1.264 6.697 0.28% 0.029µ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 [144.152µs; 144.266µs] or [-0.040%; +0.040%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2bfef1b 1730405512 sanchda/crashtracking_safety
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.346µs 3.232µs ± 1.418µs 3.081µs ± 0.025µs 3.103µs 3.148µs 13.979µs 15.004µs 386.95% 7.566 57.421 43.75% 0.100µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [3.036µs; 3.429µs] or [-6.078%; +6.078%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2bfef1b 1730405512 sanchda/crashtracking_safety
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 72.337µs 72.501µs ± 0.183µs 72.462µs ± 0.071µs 72.566µs 72.691µs 72.850µs 74.450µs 2.74% 6.695 64.686 0.25% 0.013µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sql/obfuscate_sql_string execution_time [72.476µs; 72.527µs] or [-0.035%; +0.035%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2bfef1b 1730405512 sanchda/crashtracking_safety
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.403µs 26.274µs ± 11.198µs 20.756µs ± 0.396µs 31.656µs 45.662µs 49.050µs 103.349µs 397.93% 2.948 13.604 42.51% 0.792µ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.722µs; 27.826µs] or [-5.907%; +5.907%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2bfef1b 1730405512 sanchda/crashtracking_safety
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 623.500µs 624.709µs ± 0.426µs 624.747µs ± 0.299µs 625.018µs 625.357µs 625.633µs 625.709µs 0.15% -0.221 -0.204 0.07% 0.030µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1598186.834op/s 1600744.788op/s ± 1091.431op/s 1600646.844op/s ± 765.510op/s 1601480.363op/s 1602623.485op/s 1603306.394op/s 1603849.606op/s 0.20% 0.224 -0.202 0.07% 77.176op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 461.130µs 462.108µs ± 0.388µs 462.120µs ± 0.253µs 462.336µs 462.765µs 462.995µs 463.198µs 0.23% 0.113 -0.073 0.08% 0.027µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2158902.741op/s 2163997.259op/s ± 1816.420op/s 2163939.856op/s ± 1185.209op/s 2165176.963op/s 2166772.303op/s 2168250.236op/s 2168584.628op/s 0.21% -0.108 -0.074 0.08% 128.440op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 178.159µs 178.340µs ± 0.097µs 178.340µs ± 0.061µs 178.396µs 178.496µs 178.587µs 178.732µs 0.22% 0.513 0.726 0.05% 0.007µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5594967.477op/s 5607275.634op/s ± 3034.205op/s 5607268.552op/s ± 1904.629op/s 5609610.960op/s 5611918.110op/s 5612806.102op/s 5612966.775op/s 0.10% -0.509 0.715 0.05% 214.551op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 46.606µs 46.760µs ± 0.100µs 46.746µs ± 0.053µs 46.808µs 46.907µs 46.984µs 47.586µs 1.80% 3.084 22.104 0.21% 0.007µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 21014490.162op/s 21385681.617op/s ± 45258.694op/s 21392321.562op/s ± 24251.163op/s 21412808.802op/s 21442682.545op/s 21449248.507op/s 21456680.332op/s 0.30% -2.992 21.117 0.21% 3200.273op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 48.876µs 49.372µs ± 0.163µs 49.368µs ± 0.098µs 49.462µs 49.604µs 49.729µs 50.417µs 2.13% 1.168 7.901 0.33% 0.012µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 19834547.584op/s 20254698.509op/s ± 66478.527op/s 20256062.551op/s ± 40382.004op/s 20297223.334op/s 20344665.609op/s 20416218.806op/s 20460104.937op/s 1.01% -1.086 7.395 0.33% 4700.742op/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 [624.650µs; 624.769µs] or [-0.009%; +0.009%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1600593.526op/s; 1600896.050op/s] or [-0.009%; +0.009%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [462.054µs; 462.162µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2163745.521op/s; 2164248.997op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [178.326µs; 178.353µs] or [-0.008%; +0.008%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5606855.123op/s; 5607696.146op/s] or [-0.007%; +0.007%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [46.747µs; 46.774µs] or [-0.030%; +0.030%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [21379409.197op/s; 21391954.037op/s] or [-0.029%; +0.029%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [49.349µs; 49.394µs] or [-0.046%; +0.046%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [20245485.225op/s; 20263911.794op/s] or [-0.045%; +0.045%] None None None

Baseline

Omitted due to size.

@danielsn
Copy link
Contributor

How does this interact with the PHP sidecar?

@sanchda
Copy link
Contributor Author

sanchda commented Oct 24, 2024

How does this interact with the PHP sidecar?

It should not. In a future PR I think many of us hope to harmonize the two implementations, but there are a few questions about how packaging would work in that universe. Right now I think the priority is to fix the outstanding defects, provide a sane assessment of risk for the runtimes which will rely on this implementation of crashtracking, and then harmonize over a more relaxed timeline.

@sanchda
Copy link
Contributor Author

sanchda commented Oct 24, 2024

Curiously, I see here that vfork availability isn't what I thought it was on macos. Will check that out after I finish writing some documents and tests.

@codecov-commenter
Copy link

codecov-commenter commented Oct 25, 2024

Codecov Report

Attention: Patch coverage is 0% with 932 lines in your changes missing coverage. Please review.

Project coverage is 70.56%. Comparing base (d92f667) to head (2bfef1b).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #692      +/-   ##
==========================================
- Coverage   71.73%   70.56%   -1.18%     
==========================================
  Files         271      281      +10     
  Lines       41143    41838     +695     
==========================================
+ Hits        29514    29523       +9     
- Misses      11629    12315     +686     
Components Coverage Δ
crashtracker 19.20% <0.00%> (-0.95%) ⬇️
crashtracker-ffi 9.20% <0.00%> (+0.22%) ⬆️
datadog-alloc 98.73% <ø> (ø)
data-pipeline 91.93% <ø> (ø)
data-pipeline-ffi 0.00% <ø> (ø)
ddcommon 82.74% <ø> (ø)
ddcommon-ffi 69.12% <ø> (ø)
ddtelemetry 59.10% <ø> (ø)
ddtelemetry-ffi 22.13% <ø> (ø)
dogstatsd 89.22% <ø> (ø)
dogstatsd-client 79.77% <ø> (ø)
ipc 82.65% <ø> (ø)
profiling 84.30% <ø> (ø)
profiling-ffi 77.46% <ø> (ø)
serverless 0.00% <ø> (ø)
sidecar 36.13% <ø> (ø)
sidecar-ffi 0.00% <ø> (ø)
spawn-worker 50.36% <ø> (ø)
tinybytes 94.77% <ø> (ø)
trace-mini-agent 72.45% <ø> (ø)
trace-normalization 98.25% <ø> (ø)
trace-obfuscation 95.77% <ø> (ø)
trace-protobuf 77.67% <ø> (ø)
trace-utils 93.14% <ø> (ø)

@sanchda
Copy link
Contributor Author

sanchda commented Oct 30, 2024

👋 adding @bwoebi and @kevingosse as subject matter experts. I'd really appreciate a review of the systems interactions in crash_handler.rs to make sure we're doing what we said we would on the tin.

Copy link
Contributor

@danielsn danielsn left a comment

Choose a reason for hiding this comment

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

nice

bin_tests/src/bin/crashtracker_bin_test.rs Outdated Show resolved Hide resolved
bin_tests/src/modes/unix/test_007_chaining.rs Outdated Show resolved Hide resolved
Copy link
Contributor

@bwoebi bwoebi left a comment

Choose a reason for hiding this comment

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

The strategy looks sound to me.

@sanchda sanchda enabled auto-merge (squash) October 31, 2024 20:25
@sanchda sanchda merged commit 4f324e7 into main Oct 31, 2024
32 checks passed
@sanchda sanchda deleted the sanchda/crashtracking_safety branch October 31, 2024 21:04
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.

9 participants