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

[profiling] Support OTel signal#1181

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
danielsn wants to merge29 commits intomain
base:main
Choose a base branch
Loading
fromdsn/otel-proto
Draft

[profiling] Support OTel signal#1181

danielsn wants to merge29 commits intomainfromdsn/otel-proto

Conversation

@danielsn
Copy link
Contributor

@danielsndanielsn commentedAug 13, 2025
edited
Loading

What does this PR do?

Initial implementation of OTel protocol for libdatadog.

Motivation

OTel is coming, we should see how hard it is to create the signal, and what gotchas we run into

Additional Notes

  • Otel is a moving target, this will need to change as the OTel format does.
  • I hardwired it to FFI. If you use this branch, you get OTel but not pprof
  • Still working on how best to support links / endpoints.

How to test the change?

  • I had claude write tests for me. That should be sufficient, right?

@github-actionsgithub-actionsbot added the profilingRelates to the profiling* modules. labelAug 13, 2025
@pr-commenter
Copy link

pr-commenterbot commentedAug 14, 2025
edited
Loading

Benchmarks

Comparison

Benchmark execution time: 2025-09-16 20:10:07

Comparing candidate commitd77157c in PR branchdsn/otel-proto with baseline commit0262f08 in branchmain.

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

scenario:benching serializing traces from their internal representation to msgpack

  • 🟥execution_time [+780.329µs; +792.783µs] or [+5.549%; +5.638%]

scenario:credit_card/is_card_number/37828224631000521389798

  • 🟩execution_time [-7.100µs; -7.055µs] or [-13.604%; -13.517%]
  • 🟩throughput [+2994883.368op/s; +3016823.837op/s] or [+15.632%; +15.746%]

scenario:credit_card/is_card_number_no_luhn/ 378282246310005

  • 🟩execution_time [-5.406µs; -5.359µs] or [-9.254%; -9.174%]
  • 🟩throughput [+1730394.044op/s; +1744229.848op/s] or [+10.108%; +10.189%]

scenario:credit_card/is_card_number_no_luhn/378282246310005

  • 🟩execution_time [-5.072µs; -5.019µs] or [-9.250%; -9.154%]
  • 🟩throughput [+1839105.105op/s; +1856741.598op/s] or [+10.085%; +10.181%]

scenario:credit_card/is_card_number_no_luhn/37828224631000521389798

  • 🟩execution_time [-7.138µs; -7.099µs] or [-13.669%; -13.595%]
  • 🟩throughput [+3013560.480op/s; +3032252.834op/s] or [+15.736%; +15.834%]

scenario:normalization/normalize_name/normalize_name/good

  • 🟩execution_time [-661.954ns; -636.195ns] or [-6.309%; -6.063%]
  • 🟩throughput [+6162704.325op/s; +6414104.853op/s] or [+6.466%; +6.730%]

Candidate

Candidate benchmark details

Group 1

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
benching string interning on wordpress profileexecution_time159.100µs159.804µs ± 0.262µs159.751µs ± 0.122µs159.901µs160.215µs160.729µs161.125µs0.86%1.5755.0080.16%0.019µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
benching string interning on wordpress profileexecution_time[159.768µs; 159.841µs] or [-0.023%; +0.023%]NoneNoneNone

Group 2

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
benching deserializing traces from msgpack to their internal representationexecution_time60.712ms61.302ms ± 2.422ms61.000ms ± 0.070ms61.065ms61.294ms78.609ms83.191ms36.38%8.06063.7693.94%0.171ms1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
benching deserializing traces from msgpack to their internal representationexecution_time[60.966ms; 61.637ms] or [-0.547%; +0.547%]NoneNoneNone

Group 3

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
credit_card/is_card_number/execution_time3.892µs3.911µs ± 0.003µs3.911µs ± 0.001µs3.912µs3.915µs3.917µs3.919µs0.22%-1.45014.8190.06%0.000µs1200
credit_card/is_card_number/throughput255167923.845op/s255705755.671op/s ± 165212.527op/s255721697.986op/s ± 94688.911op/s255812794.256op/s255868273.050op/s255912319.963op/s256946318.116op/s0.48%1.47915.0450.06%11682.290op/s1200
credit_card/is_card_number/ 3782-8224-6310-005execution_time77.044µs77.843µs ± 0.832µs77.642µs ± 0.399µs78.096µs79.484µs80.904µs81.639µs5.15%2.0795.0421.07%0.059µs1200
credit_card/is_card_number/ 3782-8224-6310-005throughput12249004.602op/s12847842.100op/s ± 134404.503op/s12879561.436op/s ± 66535.732op/s12943179.529op/s12970753.193op/s12978759.604op/s12979583.015op/s0.78%-1.9954.6021.04%9503.834op/s1200
credit_card/is_card_number/ 378282246310005execution_time70.826µs71.110µs ± 0.303µs71.011µs ± 0.138µs71.210µs71.614µs72.092µs72.929µs2.70%2.0776.7470.42%0.021µs1200
credit_card/is_card_number/ 378282246310005throughput13711958.432op/s14062919.250op/s ± 59354.498op/s14082387.270op/s ± 27332.276op/s14106811.474op/s14115572.087op/s14118324.484op/s14119185.149op/s0.26%-2.0226.3290.42%4196.997op/s1200
credit_card/is_card_number/37828224631execution_time3.897µs3.912µs ± 0.003µs3.912µs ± 0.002µs3.913µs3.916µs3.918µs3.921µs0.21%-0.6163.9230.07%0.000µs1200
credit_card/is_card_number/37828224631throughput255063209.192op/s255624019.024op/s ± 180178.139op/s255606269.185op/s ± 107769.518op/s255736787.737op/s255910278.920op/s255942274.702op/s256623820.090op/s0.40%0.6283.9770.07%12740.518op/s1200
credit_card/is_card_number/378282246310005execution_time67.573µs67.946µs ± 0.374µs67.810µs ± 0.152µs68.067µs68.650µs69.292µs70.070µs3.33%2.1746.4770.55%0.026µs1200
credit_card/is_card_number/378282246310005throughput14271406.819op/s14717923.563op/s ± 80030.592op/s14747139.232op/s ± 33075.217op/s14773732.375op/s14786752.473op/s14794108.895op/s14798817.625op/s0.35%-2.1146.0610.54%5659.017op/s1200
credit_card/is_card_number/37828224631000521389798execution_time44.691µs45.117µs ± 0.160µs45.115µs ± 0.103µs45.218µs45.335µs45.421µs45.934µs1.82%0.9374.0840.35%0.011µs1200
credit_card/is_card_number/37828224631000521389798throughput21770530.566op/s22164655.906op/s ± 78327.160op/s22165709.684op/s ± 50479.021op/s22215289.153op/s22279395.527op/s22306235.015op/s22375989.394op/s0.95%-0.8833.8270.35%5538.567op/s1200
credit_card/is_card_number/x371413321323331execution_time6.027µs6.037µs ± 0.016µs6.034µs ± 0.002µs6.037µs6.044µs6.110µs6.172µs2.29%5.59935.1580.26%0.001µs1200
credit_card/is_card_number/x371413321323331throughput162013770.584op/s165638597.481op/s ± 429132.261op/s165721265.827op/s ± 60242.741op/s165775929.337op/s165856455.900op/s165883885.356op/s165909915.319op/s0.11%-5.55434.5280.26%30344.233op/s1200
credit_card/is_card_number_no_luhn/execution_time3.892µs3.911µs ± 0.003µs3.911µs ± 0.001µs3.912µs3.915µs3.919µs3.923µs0.30%-0.69513.7060.07%0.000µs1200
credit_card/is_card_number_no_luhn/throughput254939439.171op/s255697414.344op/s ± 172442.412op/s255713821.333op/s ± 78648.903op/s255791074.414op/s255882401.932op/s255918260.658op/s256920810.616op/s0.47%0.72613.8780.07%12193.520op/s1200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005execution_time65.027µs65.422µs ± 0.045µs65.422µs ± 0.021µs65.443µs65.480µs65.511µs65.621µs0.30%-2.80430.0770.07%0.003µs1200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005throughput15239025.611op/s15285434.494op/s ± 10510.322op/s15285462.761op/s ± 5015.621op/s15290510.328op/s15296025.634op/s15299284.096op/s15378224.414op/s0.61%2.85430.5220.07%743.192op/s1200
credit_card/is_card_number_no_luhn/ 378282246310005execution_time52.955µs53.031µs ± 0.030µs53.033µs ± 0.018µs53.047µs53.081µs53.103µs53.140µs0.20%0.2080.7290.06%0.002µs1200
credit_card/is_card_number_no_luhn/ 378282246310005throughput18818159.823op/s18856787.411op/s ± 10765.547op/s18856262.898op/s ± 6324.564op/s18862786.081op/s18875029.751op/s18881777.501op/s18883975.059op/s0.15%-0.2030.7230.06%761.239op/s1200
credit_card/is_card_number_no_luhn/37828224631execution_time3.895µs3.911µs ± 0.003µs3.911µs ± 0.001µs3.912µs3.915µs3.917µs3.918µs0.18%-0.8687.5820.06%0.000µs1200
credit_card/is_card_number_no_luhn/37828224631throughput255236415.726op/s255695809.707op/s ± 165490.851op/s255705670.370op/s ± 76756.290op/s255776504.972op/s255933610.743op/s255985402.668op/s256754702.925op/s0.41%0.8867.6870.06%11701.970op/s1200
credit_card/is_card_number_no_luhn/378282246310005execution_time49.733µs49.790µs ± 0.031µs49.784µs ± 0.018µs49.803µs49.851µs49.881µs49.930µs0.29%1.1501.9520.06%0.002µs1200
credit_card/is_card_number_no_luhn/378282246310005throughput20028149.015op/s20084455.501op/s ± 12431.868op/s20086581.159op/s ± 7275.504op/s20093483.183op/s20099639.116op/s20105385.852op/s20107276.823op/s0.10%-1.1451.9330.06%879.066op/s1200
credit_card/is_card_number_no_luhn/37828224631000521389798execution_time44.700µs45.099µs ± 0.134µs45.114µs ± 0.095µs45.197µs45.306µs45.370µs45.383µs0.60%-0.236-0.4180.30%0.009µs1200
credit_card/is_card_number_no_luhn/37828224631000521389798throughput22034857.557op/s22173459.771op/s ± 65880.455op/s22166265.169op/s ± 46475.408op/s22222946.316op/s22284005.358op/s22319862.965op/s22371193.320op/s0.92%0.249-0.4070.30%4658.452op/s1200
credit_card/is_card_number_no_luhn/x371413321323331execution_time6.027µs6.036µs ± 0.009µs6.035µs ± 0.003µs6.037µs6.041µs6.100µs6.109µs1.23%6.14243.5560.15%0.001µs1200
credit_card/is_card_number_no_luhn/x371413321323331throughput163692588.677op/s165682734.275op/s ± 249521.895op/s165699701.747op/s ± 72236.748op/s165780212.762op/s165884312.412op/s165911709.317op/s165929015.227op/s0.14%-6.10643.2070.15%17643.862op/s1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
credit_card/is_card_number/execution_time[3.910µs; 3.911µs] or [-0.009%; +0.009%]NoneNoneNone
credit_card/is_card_number/throughput[255682858.804op/s; 255728652.538op/s] or [-0.009%; +0.009%]NoneNoneNone
credit_card/is_card_number/ 3782-8224-6310-005execution_time[77.727µs; 77.958µs] or [-0.148%; +0.148%]NoneNoneNone
credit_card/is_card_number/ 3782-8224-6310-005throughput[12829214.928op/s; 12866469.271op/s] or [-0.145%; +0.145%]NoneNoneNone
credit_card/is_card_number/ 378282246310005execution_time[71.068µs; 71.152µs] or [-0.059%; +0.059%]NoneNoneNone
credit_card/is_card_number/ 378282246310005throughput[14054693.287op/s; 14071145.212op/s] or [-0.058%; +0.058%]NoneNoneNone
credit_card/is_card_number/37828224631execution_time[3.912µs; 3.912µs] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number/37828224631throughput[255599048.067op/s; 255648989.981op/s] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number/378282246310005execution_time[67.895µs; 67.998µs] or [-0.076%; +0.076%]NoneNoneNone
credit_card/is_card_number/378282246310005throughput[14706832.093op/s; 14729015.033op/s] or [-0.075%; +0.075%]NoneNoneNone
credit_card/is_card_number/37828224631000521389798execution_time[45.095µs; 45.140µs] or [-0.049%; +0.049%]NoneNoneNone
credit_card/is_card_number/37828224631000521389798throughput[22153800.515op/s; 22175511.297op/s] or [-0.049%; +0.049%]NoneNoneNone
credit_card/is_card_number/x371413321323331execution_time[6.035µs; 6.039µs] or [-0.036%; +0.036%]NoneNoneNone
credit_card/is_card_number/x371413321323331throughput[165579123.877op/s; 165698071.085op/s] or [-0.036%; +0.036%]NoneNoneNone
credit_card/is_card_number_no_luhn/execution_time[3.911µs; 3.911µs] or [-0.009%; +0.009%]NoneNoneNone
credit_card/is_card_number_no_luhn/throughput[255673515.484op/s; 255721313.204op/s] or [-0.009%; +0.009%]NoneNoneNone
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005execution_time[65.416µs; 65.428µs] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005throughput[15283977.864op/s; 15286891.123op/s] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number_no_luhn/ 378282246310005execution_time[53.027µs; 53.036µs] or [-0.008%; +0.008%]NoneNoneNone
credit_card/is_card_number_no_luhn/ 378282246310005throughput[18855295.409op/s; 18858279.412op/s] or [-0.008%; +0.008%]NoneNoneNone
credit_card/is_card_number_no_luhn/37828224631execution_time[3.911µs; 3.911µs] or [-0.009%; +0.009%]NoneNoneNone
credit_card/is_card_number_no_luhn/37828224631throughput[255672874.266op/s; 255718745.147op/s] or [-0.009%; +0.009%]NoneNoneNone
credit_card/is_card_number_no_luhn/378282246310005execution_time[49.785µs; 49.794µs] or [-0.009%; +0.009%]NoneNoneNone
credit_card/is_card_number_no_luhn/378282246310005throughput[20082732.563op/s; 20086178.438op/s] or [-0.009%; +0.009%]NoneNoneNone
credit_card/is_card_number_no_luhn/37828224631000521389798execution_time[45.081µs; 45.118µs] or [-0.041%; +0.041%]NoneNoneNone
credit_card/is_card_number_no_luhn/37828224631000521389798throughput[22164329.374op/s; 22182590.169op/s] or [-0.041%; +0.041%]NoneNoneNone
credit_card/is_card_number_no_luhn/x371413321323331execution_time[6.034µs; 6.037µs] or [-0.021%; +0.021%]NoneNoneNone
credit_card/is_card_number_no_luhn/x371413321323331throughput[165648152.940op/s; 165717315.610op/s] or [-0.021%; +0.021%]NoneNoneNone

Group 4

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
receiver_entry_point/report/2597execution_time6.199ms6.269ms ± 0.060ms6.254ms ± 0.017ms6.280ms6.362ms6.404ms6.854ms9.60%5.21645.1510.95%0.004ms1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
receiver_entry_point/report/2597execution_time[6.260ms; 6.277ms] or [-0.132%; +0.132%]NoneNoneNone

Group 5

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
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.471µs185.960µs ± 0.477µs185.883µs ± 0.152µs186.045µs186.394µs188.121µs190.849µs2.67%6.46057.5270.26%0.034µs1200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo...throughput5239745.196op/s5377534.216op/s ± 13582.913op/s5379734.259op/s ± 4394.749op/s5383739.673op/s5388478.919op/s5389773.489op/s5391674.123op/s0.22%-6.32655.5700.25%960.457op/s1200
normalization/normalize_name/normalize_name/bad-nameexecution_time17.195µs17.420µs ± 0.137µs17.404µs ± 0.092µs17.514µs17.675µs17.810µs17.849µs2.56%0.6650.0190.78%0.010µs1200
normalization/normalize_name/normalize_name/bad-namethroughput56026881.698op/s57407606.879op/s ± 447870.258op/s57458399.532op/s ± 306781.178op/s57762393.195op/s58013413.803op/s58132224.153op/s58157962.843op/s1.22%-0.629-0.0510.78%31669.210op/s1200
normalization/normalize_name/normalize_name/goodexecution_time9.802µs9.844µs ± 0.078µs9.810µs ± 0.004µs9.845µs9.985µs10.205µs10.430µs6.33%3.76619.3120.79%0.006µs1200
normalization/normalize_name/normalize_name/goodthroughput95873137.152op/s101595850.788op/s ± 784754.092op/s101941558.694op/s ± 36583.732op/s101965918.476op/s102000144.992op/s102019523.983op/s102021902.779op/s0.08%-3.60617.5850.77%55490.494op/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.894µs; 186.026µs] or [-0.036%; +0.036%]NoneNoneNone
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo...throughput[5375651.755op/s; 5379416.677op/s] or [-0.035%; +0.035%]NoneNoneNone
normalization/normalize_name/normalize_name/bad-nameexecution_time[17.401µs; 17.439µs] or [-0.109%; +0.109%]NoneNoneNone
normalization/normalize_name/normalize_name/bad-namethroughput[57345536.369op/s; 57469677.390op/s] or [-0.108%; +0.108%]NoneNoneNone
normalization/normalize_name/normalize_name/goodexecution_time[9.833µs; 9.854µs] or [-0.110%; +0.110%]NoneNoneNone
normalization/normalize_name/normalize_name/goodthroughput[101487091.418op/s; 101704610.157op/s] or [-0.107%; +0.107%]NoneNoneNone

Group 6

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
tags/replace_trace_tagsexecution_time2.325µs2.374µs ± 0.021µs2.369µs ± 0.004µs2.381µs2.402µs2.412µs2.588µs9.22%5.45154.7070.87%0.001µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
tags/replace_trace_tagsexecution_time[2.371µs; 2.377µs] or [-0.121%; +0.121%]NoneNoneNone

Group 7

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
ip_address/quantize_peer_ip_address_benchmarkexecution_time4.941µs5.020µs ± 0.045µs5.028µs ± 0.050µs5.050µs5.087µs5.093µs5.094µs1.32%0.141-1.4110.90%0.003µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
ip_address/quantize_peer_ip_address_benchmarkexecution_time[5.014µs; 5.027µs] or [-0.125%; +0.125%]NoneNoneNone

Group 8

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
sql/obfuscate_sql_stringexecution_time88.990µs89.231µs ± 0.161µs89.215µs ± 0.088µs89.306µs89.409µs89.645µs90.677µs1.64%4.13132.3180.18%0.011µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
sql/obfuscate_sql_stringexecution_time[89.209µs; 89.254µs] or [-0.025%; +0.025%]NoneNoneNone

Group 9

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
two way interfaceexecution_time17.326µs24.950µs ± 10.165µs17.519µs ± 0.099µs34.681µs44.581µs54.216µs73.377µs318.85%1.2281.57140.64%0.719µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
two way interfaceexecution_time[23.542µs; 26.359µs] or [-5.646%; +5.646%]NoneNoneNone

Group 10

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
write only interfaceexecution_time1.241µs3.246µs ± 1.484µs3.029µs ± 0.022µs3.050µs3.690µs14.024µs15.871µs423.97%7.43156.32845.59%0.105µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
write only interfaceexecution_time[3.040µs; 3.452µs] or [-6.335%; +6.335%]NoneNoneNone

Group 11

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
normalization/normalize_trace/test_traceexecution_time239.319ns248.620ns ± 12.082ns243.986ns ± 3.103ns248.578ns273.759ns291.953ns292.118ns19.73%2.1233.7704.85%0.854ns1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
normalization/normalize_trace/test_traceexecution_time[246.946ns; 250.295ns] or [-0.673%; +0.673%]NoneNoneNone

Group 12

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
benching serializing traces from their internal representation to msgpackexecution_time14.817ms14.849ms ± 0.030ms14.843ms ± 0.009ms14.854ms14.895ms14.972ms15.077ms1.58%3.91920.4710.20%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.845ms; 14.853ms] or [-0.028%; +0.028%]NoneNoneNone

Group 13

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...execution_time534.245µs535.078µs ± 0.440µs535.040µs ± 0.254µs535.300µs535.730µs536.159µs538.353µs0.62%2.21814.0340.08%0.031µs1200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...throughput1857516.265op/s1868888.820op/s ± 1535.105op/s1869020.166op/s ± 886.348op/s1869834.856op/s1871009.192op/s1871374.644op/s1871801.628op/s0.15%-2.19113.7850.08%108.548op/s1200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰ててexecution_time379.766µs380.536µs ± 1.173µs380.358µs ± 0.194µs380.616µs381.114µs388.949µs390.083µs2.56%7.14753.3370.31%0.083µs1200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰ててthroughput2563558.987op/s2627894.439op/s ± 7928.611op/s2629105.062op/s ± 1339.995op/s2630280.961op/s2632053.290op/s2632998.549op/s2633202.856op/s0.16%-7.10752.9150.30%560.637op/s1200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Charactersexecution_time194.933µs195.305µs ± 0.152µs195.306µs ± 0.103µs195.409µs195.548µs195.641µs195.791µs0.25%0.190-0.1420.08%0.011µs1200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Charactersthroughput5107489.811op/s5120188.809op/s ± 3987.675op/s5120168.330op/s ± 2711.243op/s5122889.181op/s5126499.512op/s5128437.784op/s5129967.040op/s0.19%-0.186-0.1460.08%281.971op/s1200
normalization/normalize_service/normalize_service/[empty string]execution_time37.508µs37.661µs ± 0.057µs37.664µs ± 0.042µs37.704µs37.756µs37.775µs37.811µs0.39%-0.104-0.3720.15%0.004µs1200
normalization/normalize_service/normalize_service/[empty string]throughput26447613.260op/s26552579.925op/s ± 39846.558op/s26550573.232op/s ± 29345.861op/s26580715.027op/s26618700.195op/s26648870.384op/s26660809.752op/s0.42%0.112-0.3690.15%2817.577op/s1200
normalization/normalize_service/normalize_service/test_ASCIIexecution_time45.794µs45.884µs ± 0.050µs45.880µs ± 0.034µs45.913µs45.964µs46.053µs46.081µs0.44%0.9131.4870.11%0.004µs1200
normalization/normalize_service/normalize_service/test_ASCIIthroughput21700948.008op/s21794236.692op/s ± 23725.217op/s21795911.205op/s ± 16054.351op/s21812772.504op/s21825975.760op/s21834316.493op/s21836932.013op/s0.19%-0.9041.4580.11%1677.626op/s1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...execution_time[535.017µs; 535.139µs] or [-0.011%; +0.011%]NoneNoneNone
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...throughput[1868676.069op/s; 1869101.571op/s] or [-0.011%; +0.011%]NoneNoneNone
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰ててexecution_time[380.374µs; 380.699µs] or [-0.043%; +0.043%]NoneNoneNone
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰ててthroughput[2626795.610op/s; 2628993.268op/s] or [-0.042%; +0.042%]NoneNoneNone
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Charactersexecution_time[195.284µs; 195.326µs] or [-0.011%; +0.011%]NoneNoneNone
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Charactersthroughput[5119636.156op/s; 5120741.462op/s] or [-0.011%; +0.011%]NoneNoneNone
normalization/normalize_service/normalize_service/[empty string]execution_time[37.653µs; 37.669µs] or [-0.021%; +0.021%]NoneNoneNone
normalization/normalize_service/normalize_service/[empty string]throughput[26547057.575op/s; 26558102.274op/s] or [-0.021%; +0.021%]NoneNoneNone
normalization/normalize_service/normalize_service/test_ASCIIexecution_time[45.877µs; 45.891µs] or [-0.015%; +0.015%]NoneNoneNone
normalization/normalize_service/normalize_service/test_ASCIIthroughput[21790948.605op/s; 21797524.779op/s] or [-0.015%; +0.015%]NoneNoneNone

Group 14

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
redis/obfuscate_redis_stringexecution_time33.837µs34.492µs ± 1.135µs33.964µs ± 0.071µs34.139µs36.889µs36.940µs38.508µs13.38%1.7311.2023.28%0.080µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
redis/obfuscate_redis_stringexecution_time[34.335µs; 34.649µs] or [-0.456%; +0.456%]NoneNoneNone

Group 15

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzd77157c1758032199dsn/otel-proto
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
concentrator/add_spans_to_concentratorexecution_time8.250ms8.267ms ± 0.010ms8.265ms ± 0.005ms8.272ms8.287ms8.305ms8.315ms0.61%1.7644.7470.13%0.001ms1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
concentrator/add_spans_to_concentratorexecution_time[8.265ms; 8.268ms] or [-0.018%; +0.018%]NoneNoneNone

Baseline

Omitted due to size.

@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1bot commentedAug 14, 2025
edited
Loading

✅ Tests

🎉 All green!

❄️ No newflaky tests detected
🧪 Alltests passed

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

@codecov-commenter
Copy link

codecov-commenter commentedAug 14, 2025
edited
Loading

Codecov Report

❌ Patch coverage is97.24771% with24 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.96%. Comparing base (4e1d7bb) to head (d77157c).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@##             main    #1181      +/-   ##==========================================+ Coverage   71.61%   71.96%   +0.34%==========================================  Files         354      362       +8       Lines       55939    56838     +899     ==========================================+ Hits        40063    40903     +840- Misses      15876    15935      +59
ComponentsCoverage Δ
datadog-crashtracker49.30% <ø> (-0.03%)⬇️
datadog-crashtracker-ffi5.93% <ø> (ø)
datadog-alloc98.73% <ø> (ø)
data-pipeline90.21% <ø> (ø)
data-pipeline-ffi88.19% <ø> (ø)
ddcommon84.29% <ø> (ø)
ddcommon-ffi73.84% <ø> (ø)
ddtelemetry59.98% <ø> (ø)
ddtelemetry-ffi21.24% <ø> (ø)
dogstatsd-client83.26% <ø> (ø)
datadog-ipc82.39% <ø> (ø)
datadog-profiling79.38% <97.35%> (+2.48%)⬆️
datadog-profiling-ffi62.07% <0.00%> (-0.05%)⬇️
datadog-sidecar36.64% <ø> (-0.42%)⬇️
datdog-sidecar-ffi9.26% <ø> (-2.01%)⬇️
spawn-worker55.35% <ø> (ø)
tinybytes92.22% <ø> (ø)
datadog-trace-normalization98.24% <ø> (ø)
datadog-trace-obfuscation94.17% <ø> (ø)
datadog-trace-protobuf77.10% <ø> (ø)
datadog-trace-utils89.78% <ø> (ø)
datadog-tracer-flare53.15% <ø> (-2.94%)⬇️
datadog-log76.31% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Member

@ivoanjoivoanjo left a comment

Choose a reason for hiding this comment

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

I've given it a pass! Overall seems quite reasonable, but I have two big comments I'd like to leave on the overall thing:

  • I think we should really really keep somewhere in the crate a list of all the gaps that currently exist and things that would get us to a 100% great implementation. I fear there's too many things lost in small "TODO this" "missing that", and especially on the efficiency side -- serializing everything in-memory first, not streaming; the duplication of samples, etc, those are things that can easily get lost if the code seems to work fine, so I think it's mega-important for us to clearly record them, even though we may not address them in this PR

  • I think this PR would benefit from a trimming down of AI output verbosity. More tests + more comments aren't actually always good, and there's so much trivial stuff and duplication that it was really hard + a huge slog to actually go through this PR and find the important parts (while making sure the other parts were sane).

Comment on lines 502 to 533
fn test_sample_conversion_with_labels() {
// Create an internal profile with sample types
let sample_types = [crate::api::ValueType::new("cpu", "nanoseconds")];
let mut internal_profile = InternalProfile::new(&sample_types, None);

// Add a function and location
let function = crate::api::Function {
name: "test_function",
system_name: "test_system",
filename: "test_file.rs",
};
let _function_id = internal_profile.add_function(&function);

// Add a mapping
let mapping = crate::api::Mapping {
memory_start: 0x1000,
memory_limit: 0x2000,
file_offset: 0,
filename: "test_binary",
build_id: "test_build_id",
};
let _mapping_id = internal_profile.add_mapping(&mapping);

let location = crate::api::Location {
mapping,
function,
address: 0x1000,
line: 42,
};
let location_id = internal_profile.add_location(&location).unwrap();

let _stack_trace_id = internal_profile.add_stacktrace(vec![location_id]);
Copy link
Member

Choose a reason for hiding this comment

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

This is more of a test design choice, but I find that with such a complex file with some many tests, we would benefit from deduplicating common test setup code. Each test case is costing us 30+ lines of code just to get to the interesting bits, and thus it makes it really hard to follow what's actually being tested from the boring always-the-same details.

Copy link
ContributorAuthor

Choose a reason for hiding this comment

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

Took a first pass at doing so

@gyuheon0h
Copy link
Contributor

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
ArtifactBaselineCommitChange
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a70.47 MB86.25 MB+22.39% (+15.78 MB) 🚨
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so6.75 MB7.00 MB+3.69% (+256.00 KB)⚠️
aarch64-unknown-linux-gnu
ArtifactBaselineCommitChange
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a82.75 MB99.24 MB+19.92% (+16.48 MB) 🚨
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so8.80 MB9.08 MB+3.27% (+295.19 KB)⚠️
libdatadog-x64-windows
ArtifactBaselineCommitChange
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll17.89 MB18.88 MB+5.54% (+1016.00 KB) 🚨
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib65.01 KB65.01 KB0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb124.63 MB128.14 MB+2.81% (+3.50 MB)⚠️
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib647.28 MB657.56 MB+1.58% (+10.28 MB)⚠️
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll5.55 MB5.93 MB+6.92% (+393.50 KB) 🚨
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib65.01 KB65.01 KB0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb17.23 MB18.69 MB+8.47% (+1.46 MB) 🚨
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib31.57 MB38.09 MB+20.63% (+6.51 MB) 🚨
libdatadog-x86-windows
ArtifactBaselineCommitChange
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll15.23 MB15.94 MB+4.65% (+726.00 KB)⚠️
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib66.01 KB66.01 KB0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb126.82 MB130.41 MB+2.83% (+3.59 MB)⚠️
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib637.65 MB647.35 MB+1.52% (+9.69 MB)⚠️
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll4.23 MB4.53 MB+7.14% (+310.00 KB) 🚨
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib66.01 KB66.01 KB0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb18.35 MB19.84 MB+8.12% (+1.49 MB) 🚨
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib29.68 MB35.67 MB+20.18% (+5.99 MB) 🚨
x86_64-alpine-linux-musl
ArtifactBaselineCommitChange
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a63.02 MB73.85 MB+17.19% (+10.83 MB) 🚨
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so8.06 MB8.36 MB+3.77% (+312.00 KB)⚠️
x86_64-unknown-linux-gnu
ArtifactBaselineCommitChange
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a77.38 MB93.67 MB+21.05% (+16.29 MB) 🚨
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so9.40 MB9.72 MB+3.44% (+331.44 KB)⚠️

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

Reviewers

@ivoanjoivoanjoivoanjo left review comments

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

Assignees

No one assigned

Labels

profilingRelates to the profiling* modules.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

5 participants

@danielsn@codecov-commenter@gyuheon0h@ivoanjo

[8]ページ先頭

©2009-2025 Movatter.jp