Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[crashtracking] add doc to outline UNIX pipe communication#1239

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Draft
gyuheon0h wants to merge2 commits intomain
base:main
Choose a base branch
Loading
fromgyuheon0h/prof-1250-unix-comm-docs

Conversation

@gyuheon0h
Copy link
Contributor

@gyuheon0hgyuheon0h commentedSep 23, 2025
edited by gleocadie
Loading

What does this PR do?

This PR adds a document in thedocs/ folder of this repository to outline how we currently communicate over a UNIX socket to extract crash data in our two process,Collector andReceiver, architecture in the Crashtracker

Motivation

Quality of life and DevX for developers wanting to understand Crashtracker architecture

Additional Notes

Note to reviewers: Pressing theDisplay the rich diff button renders the Markdown, potentially making reading and reviewing easier
Screenshot 2025-09-05 at 1 04 36 PM

How to test the change?

Describe here in detail how the change can be validated.

Ticket:https://datadoghq.atlassian.net/browse/PROF-12520

@gyuheon0hgyuheon0h requested a review froma team as acode ownerSeptember 23, 2025 19:37
@pr-commenter
Copy link

pr-commenterbot commentedSep 23, 2025
edited
Loading

Benchmarks

Comparison

Benchmark execution time: 2025-09-25 17:31:04

Comparing candidate commite6d47ef in PR branchgyuheon0h/prof-1250-unix-comm-docs with baseline commit8719ad8 in branchmain.

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

scenario:concentrator/add_spans_to_concentrator

  • 🟩execution_time [-2.335ms; -2.330ms] or [-22.256%; -22.213%]

scenario:credit_card/is_card_number/37828224631000521389798

  • 🟩execution_time [-7.244µs; -7.222µs] or [-13.872%; -13.831%]
  • 🟩throughput [+3074944.766op/s; +3083389.869op/s] or [+16.056%; +16.100%]

scenario:credit_card/is_card_number/x371413321323331

  • 🟩execution_time [-340.349ns; -336.897ns] or [-5.638%; -5.581%]
  • 🟩throughput [+9796990.260op/s; +9893242.215op/s] or [+5.914%; +5.972%]

scenario:credit_card/is_card_number_no_luhn/ 3782-8224-6310-005

  • 🟩execution_time [-3.169µs; -3.090µs] or [-4.916%; -4.794%]
  • 🟩throughput [+781599.364op/s; +801869.534op/s] or [+5.038%; +5.169%]

scenario:credit_card/is_card_number_no_luhn/ 378282246310005

  • 🟩execution_time [-4.691µs; -4.638µs] or [-8.037%; -7.946%]
  • 🟩throughput [+1479575.325op/s; +1496390.062op/s] or [+8.636%; +8.735%]

scenario:credit_card/is_card_number_no_luhn/378282246310005

  • 🟩execution_time [-4.649µs; -4.578µs] or [-8.482%; -8.353%]
  • 🟩throughput [+1664226.566op/s; +1689370.387op/s] or [+9.121%; +9.259%]

scenario:credit_card/is_card_number_no_luhn/37828224631000521389798

  • 🟩execution_time [-7.226µs; -7.210µs] or [-13.839%; -13.808%]
  • 🟩throughput [+3068678.048op/s; +3075864.322op/s] or [+16.022%; +16.060%]

scenario:credit_card/is_card_number_no_luhn/x371413321323331

  • 🟩execution_time [-339.332ns; -335.656ns] or [-5.621%; -5.560%]
  • 🟩throughput [+9756414.420op/s; +9857461.422op/s] or [+5.890%; +5.951%]

scenario:normalization/normalize_name/normalize_name/good

  • 🟥execution_time [+462.366ns; +496.243ns] or [+4.597%; +4.934%]
  • 🟥throughput [-4668382.191op/s; -4369288.915op/s] or [-4.696%; -4.395%]

Candidate

Candidate benchmark details

Group 1

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
benching string interning on wordpress profileexecution_time157.191µs158.219µs ± 0.270µs158.207µs ± 0.103µs158.312µs158.608µs158.875µs159.958µs1.11%1.63110.6080.17%0.019µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
benching string interning on wordpress profileexecution_time[158.182µs; 158.257µs] or [-0.024%; +0.024%]NoneNoneNone

Group 2

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
concentrator/add_spans_to_concentratorexecution_time8.137ms8.158ms ± 0.009ms8.156ms ± 0.005ms8.162ms8.173ms8.185ms8.213ms0.70%1.6646.2590.12%0.001ms1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
concentrator/add_spans_to_concentratorexecution_time[8.156ms; 8.159ms] or [-0.016%; +0.016%]NoneNoneNone

Group 3

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
benching serializing traces from their internal representation to msgpackexecution_time14.340ms14.422ms ± 0.034ms14.423ms ± 0.016ms14.437ms14.474ms14.540ms14.618ms1.36%1.6396.9090.24%0.002ms1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
benching serializing traces from their internal representation to msgpackexecution_time[14.418ms; 14.427ms] or [-0.033%; +0.033%]NoneNoneNone

Group 4

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
benching deserializing traces from msgpack to their internal representationexecution_time62.029ms62.571ms ± 1.924ms62.321ms ± 0.140ms62.436ms62.723ms71.704ms84.814ms36.09%9.26894.9013.07%0.136ms1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
benching deserializing traces from msgpack to their internal representationexecution_time[62.304ms; 62.838ms] or [-0.426%; +0.426%]NoneNoneNone

Group 5

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo...execution_time185.115µs185.608µs ± 0.287µs185.631µs ± 0.201µs185.797µs185.985µs186.095µs187.623µs1.07%1.58710.3750.15%0.020µs1200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo...throughput5329829.148op/s5387715.374op/s ± 8317.100op/s5387033.075op/s ± 5832.346op/s5394144.596op/s5399590.922op/s5401626.450op/s5402050.294op/s0.28%-1.5429.9940.15%588.108op/s1200
normalization/normalize_name/normalize_name/bad-nameexecution_time17.886µs17.986µs ± 0.048µs17.988µs ± 0.029µs18.015µs18.055µs18.071µs18.309µs1.78%1.3629.1250.26%0.003µs1200
normalization/normalize_name/normalize_name/bad-namethroughput54618649.377op/s55598431.458op/s ± 146799.883op/s55591162.975op/s ± 90208.658op/s55686335.274op/s55833478.323op/s55889554.876op/s55910779.551op/s0.57%-1.2908.5800.26%10380.319op/s1200
normalization/normalize_name/normalize_name/goodexecution_time10.424µs10.538µs ± 0.100µs10.529µs ± 0.028µs10.559µs10.599µs10.682µs11.810µs12.17%10.257127.4060.95%0.007µs1200
normalization/normalize_name/normalize_name/goodthroughput84670995.013op/s94903330.374op/s ± 826452.449op/s94972407.573op/s ± 249730.166op/s95214369.536op/s95609976.882op/s95901505.676op/s95935765.512op/s1.01%-9.568115.8830.87%58439.013op/s1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-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[185.568µs; 185.648µs] or [-0.021%; +0.021%]NoneNoneNone
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo...throughput[5386562.704op/s; 5388868.045op/s] or [-0.021%; +0.021%]NoneNoneNone
normalization/normalize_name/normalize_name/bad-nameexecution_time[17.980µs; 17.993µs] or [-0.037%; +0.037%]NoneNoneNone
normalization/normalize_name/normalize_name/bad-namethroughput[55578086.406op/s; 55618776.510op/s] or [-0.037%; +0.037%]NoneNoneNone
normalization/normalize_name/normalize_name/goodexecution_time[10.524µs; 10.552µs] or [-0.132%; +0.132%]NoneNoneNone
normalization/normalize_name/normalize_name/goodthroughput[94788792.013op/s; 95017868.735op/s] or [-0.121%; +0.121%]NoneNoneNone

Group 6

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
normalization/normalize_trace/test_traceexecution_time241.187ns251.400ns ± 12.261ns245.780ns ± 2.307ns254.693ns277.906ns288.183ns289.986ns17.99%1.5761.1724.86%0.867ns1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
normalization/normalize_trace/test_traceexecution_time[249.701ns; 253.099ns] or [-0.676%; +0.676%]NoneNoneNone

Group 7

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...execution_time533.842µs534.858µs ± 0.945µs534.678µs ± 0.282µs534.972µs536.191µs537.803µs544.203µs1.78%5.60147.6240.18%0.067µs1200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...throughput1837548.598op/s1869659.247op/s ± 3272.831op/s1870286.191op/s ± 986.323op/s1871252.387op/s1872342.963op/s1872619.529op/s1873212.803op/s0.16%-5.50546.2680.17%231.424op/s1200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰ててexecution_time380.052µs380.722µs ± 0.328µs380.712µs ± 0.236µs380.923µs381.214µs381.669µs382.025µs0.35%0.5860.8420.09%0.023µs1200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰ててthroughput2617627.949op/s2626590.764op/s ± 2259.205op/s2626660.121op/s ± 1629.255op/s2628355.753op/s2629964.905op/s2630693.057op/s2631215.575op/s0.17%-0.5790.8250.09%159.750op/s1200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Charactersexecution_time189.928µs190.305µs ± 0.169µs190.283µs ± 0.116µs190.425µs190.629µs190.727µs190.798µs0.27%0.509-0.0010.09%0.012µs1200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Charactersthroughput5241145.085op/s5254736.422op/s ± 4668.571op/s5255332.697op/s ± 3194.004op/s5258290.074op/s5261143.644op/s5263829.819op/s5265139.605op/s0.19%-0.504-0.0070.09%330.118op/s1200
normalization/normalize_service/normalize_service/[empty string]execution_time36.843µs37.037µs ± 0.124µs37.020µs ± 0.113µs37.152µs37.227µs37.268µs37.282µs0.71%0.215-1.3740.33%0.009µs1200
normalization/normalize_service/normalize_service/[empty string]throughput26822929.692op/s27000545.115op/s ± 90167.898op/s27012453.818op/s ± 82862.885op/s27080925.215op/s27118519.048op/s27131440.761op/s27142232.643op/s0.48%-0.209-1.3780.33%6375.833op/s1200
normalization/normalize_service/normalize_service/test_ASCIIexecution_time45.956µs46.091µs ± 0.044µs46.087µs ± 0.028µs46.116µs46.157µs46.219µs46.266µs0.39%0.6141.5070.10%0.003µs1200
normalization/normalize_service/normalize_service/test_ASCIIthroughput21613941.857op/s21696320.646op/s ± 20667.431op/s21698273.216op/s ± 13399.925op/s21710272.555op/s21725032.779op/s21735383.988op/s21759844.335op/s0.28%-0.6051.4870.10%1461.408op/s1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...execution_time[534.727µs; 534.989µs] or [-0.024%; +0.024%]NoneNoneNone
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...throughput[1869205.664op/s; 1870112.830op/s] or [-0.024%; +0.024%]NoneNoneNone
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰ててexecution_time[380.677µs; 380.767µs] or [-0.012%; +0.012%]NoneNoneNone
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰ててthroughput[2626277.660op/s; 2626903.868op/s] or [-0.012%; +0.012%]NoneNoneNone
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Charactersexecution_time[190.281µs; 190.328µs] or [-0.012%; +0.012%]NoneNoneNone
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Charactersthroughput[5254089.403op/s; 5255383.441op/s] or [-0.012%; +0.012%]NoneNoneNone
normalization/normalize_service/normalize_service/[empty string]execution_time[37.020µs; 37.054µs] or [-0.046%; +0.046%]NoneNoneNone
normalization/normalize_service/normalize_service/[empty string]throughput[26988048.711op/s; 27013041.518op/s] or [-0.046%; +0.046%]NoneNoneNone
normalization/normalize_service/normalize_service/test_ASCIIexecution_time[46.085µs; 46.097µs] or [-0.013%; +0.013%]NoneNoneNone
normalization/normalize_service/normalize_service/test_ASCIIthroughput[21693456.339op/s; 21699184.953op/s] or [-0.013%; +0.013%]NoneNoneNone

Group 8

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
tags/replace_trace_tagsexecution_time2.381µs2.436µs ± 0.018µs2.435µs ± 0.006µs2.441µs2.473µs2.481µs2.483µs1.97%0.1031.8960.72%0.001µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
tags/replace_trace_tagsexecution_time[2.433µs; 2.438µs] or [-0.100%; +0.100%]NoneNoneNone

Group 9

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
sql/obfuscate_sql_stringexecution_time88.956µs89.244µs ± 0.267µs89.221µs ± 0.100µs89.329µs89.448µs89.512µs92.558µs3.74%9.642117.4600.30%0.019µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
sql/obfuscate_sql_stringexecution_time[89.208µs; 89.281µs] or [-0.041%; +0.041%]NoneNoneNone

Group 10

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
write only interfaceexecution_time1.215µs3.207µs ± 1.460µs3.028µs ± 0.020µs3.046µs3.399µs13.974µs15.426µs409.49%7.48756.72445.41%0.103µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
write only interfaceexecution_time[3.004µs; 3.409µs] or [-6.309%; +6.309%]NoneNoneNone

Group 11

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
redis/obfuscate_redis_stringexecution_time33.657µs34.106µs ± 0.749µs33.769µs ± 0.041µs33.831µs35.670µs35.727µs37.482µs11.00%1.8632.1862.19%0.053µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
redis/obfuscate_redis_stringexecution_time[34.003µs; 34.210µs] or [-0.304%; +0.304%]NoneNoneNone

Group 12

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
ip_address/quantize_peer_ip_address_benchmarkexecution_time4.944µs5.017µs ± 0.040µs5.026µs ± 0.035µs5.053µs5.070µs5.074µs5.084µs1.15%-0.246-1.4330.80%0.003µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
ip_address/quantize_peer_ip_address_benchmarkexecution_time[5.012µs; 5.023µs] or [-0.111%; +0.111%]NoneNoneNone

Group 13

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
credit_card/is_card_number/execution_time3.898µs3.912µs ± 0.003µs3.911µs ± 0.002µs3.913µs3.917µs3.918µs3.920µs0.23%-0.0381.9110.07%0.000µs1200
credit_card/is_card_number/throughput255075407.291op/s255646615.196op/s ± 188171.281op/s255673658.862op/s ± 115546.695op/s255775471.132op/s255889391.126op/s255961419.161op/s256547270.891op/s0.34%0.0471.9380.07%13305.719op/s1200
credit_card/is_card_number/ 3782-8224-6310-005execution_time77.621µs78.757µs ± 0.492µs78.763µs ± 0.339µs79.081µs79.597µs79.911µs79.975µs1.54%0.164-0.3520.62%0.035µs1200
credit_card/is_card_number/ 3782-8224-6310-005throughput12503886.706op/s12697824.119op/s ± 79288.217op/s12696245.105op/s ± 54881.739op/s12757389.046op/s12824136.059op/s12865140.436op/s12883124.496op/s1.47%-0.134-0.3650.62%5606.524op/s1200
credit_card/is_card_number/ 378282246310005execution_time70.785µs71.297µs ± 0.291µs71.239µs ± 0.167µs71.452µs71.829µs71.960µs71.989µs1.05%0.422-0.5550.41%0.021µs1200
credit_card/is_card_number/ 378282246310005throughput13891026.180op/s14025992.162op/s ± 57220.459op/s14037159.932op/s ± 32963.569op/s14063247.461op/s14112592.173op/s14121087.090op/s14127211.835op/s0.64%-0.407-0.5700.41%4046.097op/s1200
credit_card/is_card_number/37828224631execution_time3.893µs3.912µs ± 0.003µs3.913µs ± 0.002µs3.914µs3.917µs3.919µs3.919µs0.17%-1.0896.5170.08%0.000µs1200
credit_card/is_card_number/37828224631throughput255147707.273op/s255600777.405op/s ± 203332.722op/s255577667.762op/s ± 129272.693op/s255731793.856op/s255895335.199op/s255947107.912op/s256881449.161op/s0.51%1.1076.6350.08%14377.795op/s1200
credit_card/is_card_number/378282246310005execution_time67.869µs68.543µs ± 0.296µs68.509µs ± 0.191µs68.702µs69.070µs69.401µs69.465µs1.40%0.5070.0610.43%0.021µs1200
credit_card/is_card_number/378282246310005throughput14395782.864op/s14589634.432op/s ± 62943.628op/s14596723.768op/s ± 40567.637op/s14632917.251op/s14681636.211op/s14693047.880op/s14734237.746op/s0.94%-0.4840.0220.43%4450.787op/s1200
credit_card/is_card_number/37828224631000521389798execution_time44.924µs44.984µs ± 0.033µs44.976µs ± 0.020µs45.004µs45.041µs45.077µs45.143µs0.37%1.1232.4000.07%0.002µs1200
credit_card/is_card_number/37828224631000521389798throughput22151612.990op/s22230257.984op/s ± 16415.917op/s22233883.103op/s ± 10120.609op/s22241153.248op/s22251111.638op/s22258420.603op/s22259649.933op/s0.12%-1.1162.3700.07%1160.781op/s1200
credit_card/is_card_number/x371413321323331execution_time5.692µs5.698µs ± 0.006µs5.697µs ± 0.003µs5.700µs5.704µs5.706µs5.759µs1.08%6.68370.1770.10%0.000µs1200
credit_card/is_card_number/x371413321323331throughput173650191.337op/s175508236.422op/s ± 170268.325op/s175528892.056op/s ± 84952.604op/s175613033.329op/s175658320.855op/s175689537.739op/s175700579.782op/s0.10%-6.60369.0010.10%12039.789op/s1200
credit_card/is_card_number_no_luhn/execution_time3.893µs3.911µs ± 0.003µs3.911µs ± 0.002µs3.913µs3.916µs3.917µs3.920µs0.21%-0.8856.1710.08%0.000µs1200
credit_card/is_card_number_no_luhn/throughput255117490.235op/s255662950.766op/s ± 192643.962op/s255661893.595op/s ± 124924.114op/s255788029.452op/s255925939.097op/s255994363.054op/s256859644.236op/s0.47%0.9026.2780.08%13621.985op/s1200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005execution_time60.494µs61.330µs ± 0.236µs61.328µs ± 0.119µs61.450µs61.689µs61.832µs62.570µs2.02%0.3383.7380.38%0.017µs1200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005throughput15982136.090op/s16305487.933op/s ± 62561.688op/s16305772.246op/s ± 31518.132op/s16336223.132op/s16411103.995op/s16453373.843op/s16530682.366op/s1.38%-0.2743.5380.38%4423.779op/s1200
credit_card/is_card_number_no_luhn/ 378282246310005execution_time53.350µs53.707µs ± 0.123µs53.723µs ± 0.071µs53.797µs53.865µs53.914µs53.964µs0.45%-0.7570.1260.23%0.009µs1200
credit_card/is_card_number_no_luhn/ 378282246310005throughput18531035.868op/s18619753.064op/s ± 42860.166op/s18613852.300op/s ± 24761.526op/s18638382.440op/s18710341.215op/s18724839.492op/s18743978.998op/s0.70%0.7670.1410.23%3030.671op/s1200
credit_card/is_card_number_no_luhn/37828224631execution_time3.894µs3.911µs ± 0.003µs3.911µs ± 0.002µs3.913µs3.917µs3.919µs3.919µs0.20%-0.5926.0340.07%0.000µs1200
credit_card/is_card_number_no_luhn/37828224631throughput255165428.427op/s255662842.116op/s ± 186196.833op/s255681156.311op/s ± 116839.901op/s255781485.588op/s255888961.204op/s255946047.847op/s256800467.041op/s0.44%0.6096.1310.07%13166.104op/s1200
credit_card/is_card_number_no_luhn/378282246310005execution_time49.874µs50.195µs ± 0.151µs50.209µs ± 0.091µs50.288µs50.424µs50.623µs50.729µs1.04%0.1980.4270.30%0.011µs1200
credit_card/is_card_number_no_luhn/378282246310005throughput19712732.266op/s19922401.821op/s ± 60033.443op/s19916910.632op/s ± 35855.993op/s19961231.795op/s20025739.784op/s20038819.670op/s20050553.460op/s0.67%-0.1760.3870.30%4245.005op/s1200
credit_card/is_card_number_no_luhn/37828224631000521389798execution_time44.928µs44.995µs ± 0.044µs44.987µs ± 0.024µs45.015µs45.067µs45.098µs45.302µs0.70%2.13310.8900.10%0.003µs1200
credit_card/is_card_number_no_luhn/37828224631000521389798throughput22074264.160op/s22224659.693op/s ± 21571.791op/s22228814.445op/s ± 11947.620op/s22239080.487op/s22251332.442op/s22257237.193op/s22257883.633op/s0.13%-2.10910.6750.10%1525.356op/s1200
credit_card/is_card_number_no_luhn/x371413321323331execution_time5.690µs5.700µs ± 0.004µs5.700µs ± 0.003µs5.702µs5.707µs5.708µs5.712µs0.21%0.062-0.0550.07%0.000µs1200
credit_card/is_card_number_no_luhn/x371413321323331throughput175074286.931op/s175444213.462op/s ± 127461.817op/s175440095.126op/s ± 78674.338op/s175531823.444op/s175661039.577op/s175707865.687op/s175761841.504op/s0.18%-0.058-0.0570.07%9012.912op/s1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
credit_card/is_card_number/execution_time[3.911µs; 3.912µs] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number/throughput[255620536.466op/s; 255672693.926op/s] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number/ 3782-8224-6310-005execution_time[78.688µs; 78.825µs] or [-0.087%; +0.087%]NoneNoneNone
credit_card/is_card_number/ 3782-8224-6310-005throughput[12686835.535op/s; 12708812.703op/s] or [-0.087%; +0.087%]NoneNoneNone
credit_card/is_card_number/ 378282246310005execution_time[71.257µs; 71.338µs] or [-0.057%; +0.057%]NoneNoneNone
credit_card/is_card_number/ 378282246310005throughput[14018061.956op/s; 14033922.367op/s] or [-0.057%; +0.057%]NoneNoneNone
credit_card/is_card_number/37828224631execution_time[3.912µs; 3.913µs] or [-0.011%; +0.011%]NoneNoneNone
credit_card/is_card_number/37828224631throughput[255572597.446op/s; 255628957.365op/s] or [-0.011%; +0.011%]NoneNoneNone
credit_card/is_card_number/378282246310005execution_time[68.502µs; 68.584µs] or [-0.060%; +0.060%]NoneNoneNone
credit_card/is_card_number/378282246310005throughput[14580911.051op/s; 14598357.814op/s] or [-0.060%; +0.060%]NoneNoneNone
credit_card/is_card_number/37828224631000521389798execution_time[44.979µs; 44.988µs] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number/37828224631000521389798throughput[22227982.896op/s; 22232533.072op/s] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number/x371413321323331execution_time[5.697µs; 5.699µs] or [-0.014%; +0.014%]NoneNoneNone
credit_card/is_card_number/x371413321323331throughput[175484638.870op/s; 175531833.974op/s] or [-0.013%; +0.013%]NoneNoneNone
credit_card/is_card_number_no_luhn/execution_time[3.911µs; 3.912µs] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number_no_luhn/throughput[255636252.166op/s; 255689649.367op/s] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005execution_time[61.297µs; 61.363µs] or [-0.053%; +0.053%]NoneNoneNone
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005throughput[16296817.484op/s; 16314158.381op/s] or [-0.053%; +0.053%]NoneNoneNone
credit_card/is_card_number_no_luhn/ 378282246310005execution_time[53.690µs; 53.724µs] or [-0.032%; +0.032%]NoneNoneNone
credit_card/is_card_number_no_luhn/ 378282246310005throughput[18613813.058op/s; 18625693.071op/s] or [-0.032%; +0.032%]NoneNoneNone
credit_card/is_card_number_no_luhn/37828224631execution_time[3.911µs; 3.912µs] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number_no_luhn/37828224631throughput[255637037.026op/s; 255688647.206op/s] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number_no_luhn/378282246310005execution_time[50.174µs; 50.216µs] or [-0.042%; +0.042%]NoneNoneNone
credit_card/is_card_number_no_luhn/378282246310005throughput[19914081.763op/s; 19930721.879op/s] or [-0.042%; +0.042%]NoneNoneNone
credit_card/is_card_number_no_luhn/37828224631000521389798execution_time[44.989µs; 45.001µs] or [-0.013%; +0.013%]NoneNoneNone
credit_card/is_card_number_no_luhn/37828224631000521389798throughput[22221670.050op/s; 22227649.336op/s] or [-0.013%; +0.013%]NoneNoneNone
credit_card/is_card_number_no_luhn/x371413321323331execution_time[5.699µs; 5.700µs] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number_no_luhn/x371413321323331throughput[175426548.481op/s; 175461878.444op/s] or [-0.010%; +0.010%]NoneNoneNone

Group 14

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
two way interfaceexecution_time17.982µs26.018µs ± 10.079µs18.200µs ± 0.133µs35.001µs44.901µs51.295µs68.829µs278.18%0.9510.36538.64%0.713µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
two way interfaceexecution_time[24.621µs; 27.415µs] or [-5.369%; +5.369%]NoneNoneNone

Group 15

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHze6d47ef1758820685gyuheon0h/prof-1250-unix-comm-docs
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
receiver_entry_point/report/2597execution_time6.220ms6.275ms ± 0.025ms6.272ms ± 0.013ms6.286ms6.306ms6.344ms6.452ms2.87%2.39513.5220.40%0.002ms1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
receiver_entry_point/report/2597execution_time[6.271ms; 6.278ms] or [-0.055%; +0.055%]NoneNoneNone

Baseline

Omitted due to size.

@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1bot commentedSep 23, 2025
edited
Loading

✅ Tests

🎉 All green!

❄️ No newflaky tests detected
🧪 Alltests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA:e6d47ef |Docs | Was this helpful? Give usfeedback!

@codecov-commenter
Copy link

codecov-commenter commentedSep 23, 2025
edited
Loading

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.63%. Comparing base (0cc3f7f) to head (4980849).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@##             main    #1239      +/-   ##==========================================- Coverage   71.69%   71.63%   -0.06%==========================================  Files         354      355       +1       Lines       56138    56316     +178     ==========================================+ Hits        40247    40343      +96- Misses      15891    15973      +82
ComponentsCoverage Δ
datadog-crashtracker49.33% <ø> (+0.02%)⬆️
datadog-crashtracker-ffi5.93% <ø> (ø)
datadog-alloc98.73% <ø> (ø)
data-pipeline90.41% <ø> (+0.10%)⬆️
data-pipeline-ffi88.19% <ø> (ø)
ddcommon84.29% <ø> (ø)
ddcommon-ffi73.84% <ø> (ø)
ddtelemetry60.02% <ø> (ø)
ddtelemetry-ffi21.24% <ø> (ø)
dogstatsd-client83.26% <ø> (ø)
datadog-ipc82.39% <ø> (ø)
datadog-profiling76.90% <ø> (ø)
datadog-profiling-ffi62.12% <ø> (ø)
datadog-sidecar37.08% <ø> (ø)
datdog-sidecar-ffi11.37% <ø> (ø)
spawn-worker55.35% <ø> (ø)
tinybytes92.22% <ø> (ø)
datadog-trace-normalization98.24% <ø> (+<0.01%)⬆️
datadog-trace-obfuscation94.17% <ø> (+<0.01%)⬆️
datadog-trace-protobuf59.65% <ø> (-17.45%)⬇️
datadog-trace-utils89.77% <ø> (+0.01%)⬆️
datadog-tracer-flare54.52% <ø> (ø)
datadog-log76.31% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Contributor

@gleocadiegleocadie left a comment

Choose a reason for hiding this comment

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

Good idea to have such doc.
I do not want to be picky, but copying code (or having filename + line numbers) into the doc can be burden if tomorrow we change the code (and the code will change). We might forget to change it.

gyuheon0h reacted with thumbs up emoji

**File**:`datadog-crashtracker/src/receiver/entry_points.rs:97-119`

```rust
Copy link
Contributor

Choose a reason for hiding this comment

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

I wonder if we need to add the code: if tomorrow the code changes, it means we have to change the doc.

Copy link
Contributor

Choose a reason for hiding this comment

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

Assuming it's not too complicated, you can put it all in rustdoc instead of .MD and have the code compile.

realFlowControl and taegyunkim reacted with thumbs up emoji
@gyuheon0hgyuheon0h changed the title[crashtracking] add doc to outline UNIX communication[crashtracking] add doc to outline UNIX pipe communicationSep 24, 2025
@gyuheon0hgyuheon0hforce-pushed thegyuheon0h/prof-1250-unix-comm-docs branch from4980849 toe6d47efCompareSeptember 25, 2025 17:18
Copy link
Contributor

@danielsndanielsn left a comment

Choose a reason for hiding this comment

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

Thanks for doing this. I'm part way through the review, but one overall comment so far: a bunch of this seems fairly repetitive.

Comment on lines +20 to +28
//! ┌─────────────────────┐ ┌──────────────────────┐
//! │ Signal Handler │ │ Collector Process │
//! │ (Original Process) │ │ (Forked Child) │
//! │ │ │ │
//! │ 1. Catch crash │────fork()──────────►│ 2. Setup stdio │
//! │ 2. Fork collector │ │ 3. Create UnixStream │
//! │ 3. Wait for child │ │ 4. Write crash data │
//! │ │◄────wait()──────────│ 5. Exit cleanly │
//! └─────────────────────┘ └──────────────────────┘
Copy link
Contributor

Choose a reason for hiding this comment

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

Should you line up the fork and wait arrows with the lines of code the represent?

Comment on lines +77 to +83
/// ┌─────────────────────────────┐ ┌─────────────────────────────┐
/// │ 1. Catches crash signal │ │ 4. Closes stdio (0,1,2) │
/// │ 2. Forks collector process │──►│ 5. Disables SIGPIPE │
/// │ 3. Returns to caller │ │ 6. Creates UnixStream │
/// │ │ │ 7. Calls emit_crashreport() │
/// │ │ │ 8. Exits with _exit(0) │
/// └─────────────────────────────┘ └─────────────────────────────┘
Copy link
Contributor

Choose a reason for hiding this comment

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

The interleaving of steps here is a little confusing. Can we have whitespace to indicate which steps are concurrent?

};

//Emit crashreport
//Create Unix socket stream for crash data transmission
Copy link
Contributor

Choose a reason for hiding this comment

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

nice catch

//! 1. **Section Delimiters**: Uses constants from [`crate::shared::constants`] to mark boundaries
//! 2. **Structured Data**: Writes JSON, text, or binary data within sections
//! 3. **Immediate Flushing**: Flushes each section to ensure data integrity
//! 4. **Completion Marker**: Ends transmission with `DD_CRASHTRACK_DONE`
Copy link
Contributor

Choose a reason for hiding this comment

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

I found this a little confusing, because the delimiters wrap the structured data, but the list here makes them seem like they only come before.

//!
//! ### Key Sections
//!
//! - **Stack Trace** (`emit_backtrace_by_frames`): Stack frames with optional symbol resolution
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we still resolve symbols in process?

Copy link
Contributor

Choose a reason for hiding this comment

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

we can pass a configuration to allow this.

///
/// ## Section Emission Order
///
/// The crash report is written in this specific order:
Copy link
Contributor

Choose a reason for hiding this comment

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

Are we making this contractural? I'd say this is an implementation detail. The key part is that we try to emit more critical bits of info first, and bits that are more likely to crash last. Bits that are both critical and likely to crash are¯\_(ツ)_/¯

Comment on lines +17 to +22
//! ┌─────────────────┐ socketpair() ┌─────────────────┐
//! │ Collector │◄───────────────────►│ Receiver │
//! │ (Crashing proc) │ │ (Fork+execve) │
//! │ │ Write End │ │
//! │ uds_parent ────────────────────────────────► stdin (fd=0) │
//! └─────────────────┘ └─────────────────┘
Copy link
Contributor

Choose a reason for hiding this comment

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

fix formatting

Comment on lines +257 to +258
/// This function never returns - it either successfully executes the receiver binary
/// or terminates the process.
Copy link
Contributor

Choose a reason for hiding this comment

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

I found this confusing

@gyuheon0hgyuheon0h marked this pull request as draftSeptember 26, 2025 13:28
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@ekumpekumpekump left review comments

@danielsndanielsndanielsn left review comments

@gleocadiegleocadieAwaiting requested review from gleocadie

@taegyunkimtaegyunkimAwaiting requested review from taegyunkim

At least 1 approving review is required to merge this pull request.

Assignees

No one assigned

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

6 participants

@gyuheon0h@codecov-commenter@ekump@danielsn@gleocadie

[8]ページ先頭

©2009-2025 Movatter.jp