DataDog / libdatadog

Datadog shared rust-based library. For now only used in other products (e.g. Ruby or PHP libraries).
Apache License 2.0
47 stars 8 forks source link

Crashtracker receiver is spawned on crash #692

Closed sanchda closed 3 days ago

sanchda commented 1 week ago

What does this PR do?

Changes the way the crashtracker receiver works

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[bot] commented 1 week ago

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

scenario:tags/replace_trace_tags

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 commented 1 week ago

How does this interact with the PHP sidecar?

sanchda commented 1 week ago

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 commented 1 week ago

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 commented 1 week ago

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 ```diff @@ 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](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=components&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | Coverage Δ | | |---|---|---| | [crashtracker](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `19.20% <0.00%> (-0.95%)` | :arrow_down: | | [crashtracker-ffi](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `9.20% <0.00%> (+0.22%)` | :arrow_up: | | [datadog-alloc](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `98.73% <ø> (ø)` | | | [data-pipeline](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `91.93% <ø> (ø)` | | | [data-pipeline-ffi](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `0.00% <ø> (ø)` | | | [ddcommon](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `82.74% <ø> (ø)` | | | [ddcommon-ffi](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `69.12% <ø> (ø)` | | | [ddtelemetry](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `59.10% <ø> (ø)` | | | [ddtelemetry-ffi](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `22.13% <ø> (ø)` | | | [dogstatsd](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `89.22% <ø> (ø)` | | | [dogstatsd-client](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `79.77% <ø> (ø)` | | | [ipc](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `82.65% <ø> (ø)` | | | [profiling](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `84.30% <ø> (ø)` | | | [profiling-ffi](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `77.46% <ø> (ø)` | | | [serverless](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `0.00% <ø> (ø)` | | | [sidecar](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `36.13% <ø> (ø)` | | | [sidecar-ffi](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `0.00% <ø> (ø)` | | | [spawn-worker](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `50.36% <ø> (ø)` | | | [tinybytes](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `94.77% <ø> (ø)` | | | [trace-mini-agent](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `72.45% <ø> (ø)` | | | [trace-normalization](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `98.25% <ø> (ø)` | | | [trace-obfuscation](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `95.77% <ø> (ø)` | | | [trace-protobuf](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `77.67% <ø> (ø)` | | | [trace-utils](https://app.codecov.io/gh/DataDog/libdatadog/pull/692/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | `93.14% <ø> (ø)` | |
sanchda commented 5 days ago

:wave: 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.