Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Serverless] [Fix PR-4535] EndInvocationAsync should be awaited. #4752

Merged
merged 6 commits into from
Oct 25, 2023

Conversation

joeyzhao2018
Copy link
Contributor

Summary of changes

Bugfix for PR-4535. The EndInvocationAsync calls should be awaited.

Reason for change

Implementation details

Test coverage

Other details

@andrewlock
Copy link
Member

andrewlock commented Oct 23, 2023

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4752) - mean (71ms)  : 64, 79
     .   : milestone, 71,
    master - mean (72ms)  : 61, 82
     .   : milestone, 72,

    section CallTarget+Inlining+NGEN
    This PR (4752) - mean (1,016ms)  : 996, 1035
     .   : milestone, 1016,
    master - mean (1,011ms)  : 983, 1040
     .   : milestone, 1011,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4752) - mean (106ms)  : 103, 108
     .   : milestone, 106,
    master - mean (106ms)  : 104, 109
     .   : milestone, 106,

    section CallTarget+Inlining+NGEN
    This PR (4752) - mean (717ms)  : 694, 741
     .   : milestone, 717,
    master - mean (709ms)  : 695, 723
     .   : milestone, 709,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4752) - mean (90ms)  : 86, 95
     .   : milestone, 90,
    master - mean (90ms)  : 87, 92
     .   : milestone, 90,

    section CallTarget+Inlining+NGEN
    This PR (4752) - mean (684ms)  : 660, 708
     .   : milestone, 684,
    master - mean (677ms)  : 655, 700
     .   : milestone, 677,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4752) - mean (188ms)  : 183, 193
     .   : milestone, 188,
    master - mean (188ms)  : 185, 192
     .   : milestone, 188,

    section CallTarget+Inlining+NGEN
    This PR (4752) - mean (1,142ms)  : 1067, 1218
     .   : milestone, 1142,
    master - mean (1,135ms)  : 1109, 1161
     .   : milestone, 1135,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4752) - mean (272ms)  : 268, 277
     .   : milestone, 272,
    master - mean (272ms)  : 268, 276
     .   : milestone, 272,

    section CallTarget+Inlining+NGEN
    This PR (4752) - mean (1,091ms)  : 1067, 1114
     .   : milestone, 1091,
    master - mean (1,092ms)  : 1073, 1111
     .   : milestone, 1092,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4752) - mean (263ms)  : 257, 268
     .   : milestone, 263,
    master - mean (261ms)  : 255, 267
     .   : milestone, 261,

    section CallTarget+Inlining+NGEN
    This PR (4752) - mean (1,057ms)  : 1024, 1090
     .   : milestone, 1057,
    master - mean (1,053ms)  : 1021, 1086
     .   : milestone, 1053,

Loading

@datadog-ddstaging
Copy link

datadog-ddstaging bot commented Oct 23, 2023

Datadog Report

Branch report: joey/pr-4535-fix
Commit report: 8c7b852

dd-trace-dotnet: 1 Failed (0 Known Flaky), 0 New Flaky, 304950 Passed, 1135 Skipped, 36m 50.45s Wall Time

❌ Failed Tests (1)

  • CheckProfilesSentThroughNamedPipe - Datadog.Profiler.IntegrationTests.WindowsOnly.NamedPipeTestcs - Details

    Expand for error
     Found error message in the log file D:\a\1\s\profiler\build_data\NamedPipeTestcs\CheckProfilesSentThroughNamedPipe\net45\logs\DD-DotNet-Profiler-Native-Samples.Computer01-4692.log
     Expected: False
     Actual:   True
    

@andrewlock
Copy link
Member

andrewlock commented Oct 23, 2023

Benchmarks Report 🐌

Benchmarks for #4752 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.379
  • 4 benchmarks are slower, with geometric mean 1.140
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

  • Mann–Whitney U test with statistical test for significance of 5%
  • Only results indicating a difference greater than 10% and 0.3 ns are considered.

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.ActivityBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 8.13μs 41.3ns 234ns 0.0197 0.00789 0 7.28 KB
master StartStopWithChild netcoreapp3.1 10.1μs 49.2ns 203ns 0.0345 0.0148 0 7.39 KB
master StartStopWithChild net472 15.5μs 55.2ns 214ns 1.29 0.322 0.0997 7.66 KB
#4752 StartStopWithChild net6.0 8.34μs 44.2ns 242ns 0.0168 0.0084 0 7.29 KB
#4752 StartStopWithChild netcoreapp3.1 9.88μs 53.2ns 291ns 0.0241 0.00963 0 7.39 KB
#4752 StartStopWithChild net472 15.6μs 42ns 163ns 1.3 0.322 0.118 7.66 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 472μs 199ns 770ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 643μs 133ns 479ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 797μs 238ns 923ns 0.398 0 0 3.3 KB
#4752 WriteAndFlushEnrichedTraces net6.0 493μs 241ns 901ns 0 0 0 2.7 KB
#4752 WriteAndFlushEnrichedTraces netcoreapp3.1 647μs 1.41μs 5.45μs 0 0 0 2.7 KB
#4752 WriteAndFlushEnrichedTraces net472 794μs 300ns 1.16μs 0.396 0 0 3.3 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #4752

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑net6.0 1.379 166.33 120.58

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 43.4μs 151ns 583ns 0.022 0 0 2.03 KB
master AllCycleSimpleBody netcoreapp3.1 44.6μs 99.4ns 372ns 0.0227 0 0 2.01 KB
master AllCycleSimpleBody net472 46.9μs 97.3ns 377ns 0.326 0 0 2.08 KB
master AllCycleMoreComplexBody net6.0 229μs 92ns 356ns 0.114 0 0 8.63 KB
master AllCycleMoreComplexBody netcoreapp3.1 233μs 147ns 571ns 0.117 0 0 8.52 KB
master AllCycleMoreComplexBody net472 237μs 109ns 424ns 1.3 0 0 8.7 KB
master ObjectExtractorSimpleBody net6.0 166ns 0.0456ns 0.177ns 0.00397 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 176ns 0.14ns 0.504ns 0.0037 0 0 272 B
master ObjectExtractorSimpleBody net472 149ns 0.0555ns 0.208ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 3.06μs 1.01ns 3.91ns 0.0551 0 0 3.88 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.03μs 1.74ns 6.49ns 0.0503 0 0 3.78 KB
master ObjectExtractorMoreComplexBody net472 4.1μs 2.99ns 11.2ns 0.618 0.0062 0 3.89 KB
#4752 AllCycleSimpleBody net6.0 43.7μs 74.8ns 290ns 0.0219 0 0 2.03 KB
#4752 AllCycleSimpleBody netcoreapp3.1 45.7μs 115ns 444ns 0.0227 0 0 2.01 KB
#4752 AllCycleSimpleBody net472 46.7μs 26.1ns 97.6ns 0.329 0 0 2.08 KB
#4752 AllCycleMoreComplexBody net6.0 228μs 127ns 493ns 0.114 0 0 8.63 KB
#4752 AllCycleMoreComplexBody netcoreapp3.1 233μs 106ns 411ns 0.117 0 0 8.52 KB
#4752 AllCycleMoreComplexBody net472 239μs 133ns 514ns 1.31 0 0 8.7 KB
#4752 ObjectExtractorSimpleBody net6.0 121ns 0.0842ns 0.315ns 0.00396 0 0 280 B
#4752 ObjectExtractorSimpleBody netcoreapp3.1 180ns 0.0656ns 0.254ns 0.00368 0 0 272 B
#4752 ObjectExtractorSimpleBody net472 146ns 0.0842ns 0.326ns 0.0446 0 0 281 B
#4752 ObjectExtractorMoreComplexBody net6.0 3.07μs 1.21ns 4.53ns 0.0539 0 0 3.88 KB
#4752 ObjectExtractorMoreComplexBody netcoreapp3.1 4.1μs 1.88ns 7.29ns 0.0515 0 0 3.78 KB
#4752 ObjectExtractorMoreComplexBody net472 4.11μs 1.85ns 7.16ns 0.618 0.00616 0 3.89 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWaf(args=NestedMap (10)) net6.0 13μs 3.13ns 11.7ns 0.13 0 0 9.42 KB
master RunWaf(args=NestedMap (10)) netcoreapp3.1 19.5μs 3.94ns 14.2ns 0.127 0 0 9.42 KB
master RunWaf(args=NestedMap (10)) net472 28.7μs 11.8ns 45.9ns 1.49 0 0 9.48 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 76.7μs 20ns 75ns 0.192 0 0 15.77 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 86.8μs 143ns 556ns 0.219 0 0 15.72 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net472 100μs 53.2ns 206ns 2.54 0 0 16.04 KB
master RunWaf(args=NestedMap (100)) net6.0 25.3μs 11.5ns 43.2ns 0.277 0 0 19.66 KB
master RunWaf(args=NestedMap (100)) netcoreapp3.1 38.6μs 11.3ns 40.8ns 0.27 0 0 20.42 KB
master RunWaf(args=NestedMap (100)) net472 54.6μs 33ns 124ns 3.28 0.0273 0 20.63 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) net6.0 92.3μs 30.8ns 119ns 0.363 0 0 26.01 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) netcoreapp3.1 110μs 48.5ns 175ns 0.331 0 0 26.72 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) net472 134μs 68.3ns 264ns 4.31 0.0673 0 27.19 KB
master RunWaf(args=NestedMap (20)) net6.0 25.2μs 10.8ns 41.7ns 0.266 0 0 19.4 KB
master RunWaf(args=NestedMap (20)) netcoreapp3.1 38.4μs 20.3ns 78.6ns 0.267 0 0 19.84 KB
master RunWaf(args=NestedMap (20)) net472 53.8μs 13.8ns 51.6ns 3.16 0.0536 0 20.04 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 91.1μs 191ns 741ns 0.322 0 0 25.74 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 109μs 286ns 1.07μs 0.322 0 0 26.14 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net472 130μs 244ns 945ns 4.2 0.0657 0 26.6 KB
#4752 RunWaf(args=NestedMap (10)) net6.0 12.8μs 3.35ns 12.5ns 0.133 0 0 9.42 KB
#4752 RunWaf(args=NestedMap (10)) netcoreapp3.1 19.4μs 14.9ns 55.7ns 0.126 0 0 9.42 KB
#4752 RunWaf(args=NestedMap (10)) net472 28.2μs 5.08ns 18.3ns 1.51 0 0 9.48 KB
#4752 RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 78.3μs 117ns 437ns 0.193 0 0 15.77 KB
#4752 RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 87.1μs 319ns 1.24μs 0.173 0 0 15.72 KB
#4752 RunWafWithAttack(args=Neste(...)tack) [22]) net472 98.4μs 74.1ns 287ns 2.53 0 0 16.04 KB
#4752 RunWaf(args=NestedMap (100)) net6.0 24.5μs 5.52ns 20.7ns 0.269 0 0 19.66 KB
#4752 RunWaf(args=NestedMap (100)) netcoreapp3.1 38μs 13.1ns 47.1ns 0.267 0 0 20.42 KB
#4752 RunWaf(args=NestedMap (100)) net472 55.4μs 19.2ns 74.5ns 3.26 0.0276 0 20.63 KB
#4752 RunWafWithAttack(args=Neste(...)tack) [23]) net6.0 92.6μs 51.8ns 201ns 0.324 0 0 26.01 KB
#4752 RunWafWithAttack(args=Neste(...)tack) [23]) netcoreapp3.1 108μs 127ns 490ns 0.326 0 0 26.72 KB
#4752 RunWafWithAttack(args=Neste(...)tack) [23]) net472 132μs 46.6ns 181ns 4.28 0.0659 0 27.19 KB
#4752 RunWaf(args=NestedMap (20)) net6.0 23.9μs 10.6ns 39.5ns 0.274 0 0 19.4 KB
#4752 RunWaf(args=NestedMap (20)) netcoreapp3.1 37.2μs 10.1ns 34.9ns 0.26 0 0 19.84 KB
#4752 RunWaf(args=NestedMap (20)) net472 53.8μs 16.9ns 65.6ns 3.17 0.0537 0 20.04 KB
#4752 RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 90.9μs 39ns 151ns 0.363 0 0 25.74 KB
#4752 RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 110μs 111ns 415ns 0.326 0 0 26.14 KB
#4752 RunWafWithAttack(args=Neste(...)tack) [22]) net472 131μs 78.9ns 306ns 4.21 0.0648 0 26.6 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 169μs 120ns 465ns 0.17 0 0 18.04 KB
master SendRequest netcoreapp3.1 190μs 358ns 1.39μs 0.189 0 0 20.2 KB
master SendRequest net472 0.00129ns 0.000303ns 0.00113ns 0 0 0 0 b
#4752 SendRequest net6.0 167μs 154ns 595ns 0.167 0 0 18.04 KB
#4752 SendRequest netcoreapp3.1 190μs 317ns 1.23μs 0.19 0 0 20.21 KB
#4752 SendRequest net472 0.000656ns 0.000337ns 0.0013ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 544μs 1.05μs 4.07μs 0.556 0 0 41.77 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 665μs 1.16μs 4.5μs 0.336 0 0 41.7 KB
master WriteAndFlushEnrichedTraces net472 838μs 3.7μs 14.3μs 8.28 2.48 0.414 53.23 KB
#4752 WriteAndFlushEnrichedTraces net6.0 550μs 2.25μs 8.72μs 0.541 0 0 41.84 KB
#4752 WriteAndFlushEnrichedTraces netcoreapp3.1 671μs 911ns 3.41μs 0.338 0 0 41.72 KB
#4752 WriteAndFlushEnrichedTraces net472 861μs 3.33μs 12.9μs 8.13 2.57 0.428 53.24 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1μs 0.561ns 2.17ns 0.0106 0 0 768 B
master ExecuteNonQuery netcoreapp3.1 1.36μs 0.763ns 2.96ns 0.0104 0 0 768 B
master ExecuteNonQuery net472 1.73μs 0.821ns 2.96ns 0.116 0 0 730 B
#4752 ExecuteNonQuery net6.0 1.11μs 0.412ns 1.49ns 0.0105 0 0 768 B
#4752 ExecuteNonQuery netcoreapp3.1 1.35μs 0.484ns 1.87ns 0.0101 0 0 768 B
#4752 ExecuteNonQuery net472 1.63μs 3.59ns 13ns 0.116 0 0 730 B
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.13μs 0.567ns 2.2ns 0.013 0 0 936 B
master CallElasticsearch netcoreapp3.1 1.48μs 0.808ns 3.03ns 0.0126 0 0 936 B
master CallElasticsearch net472 2.4μs 0.835ns 3.01ns 0.151 0 0 955 B
master CallElasticsearchAsync net6.0 1.23μs 0.527ns 2.04ns 0.0124 0 0 912 B
master CallElasticsearchAsync netcoreapp3.1 1.49μs 0.974ns 3.65ns 0.0134 0 0 984 B
master CallElasticsearchAsync net472 2.53μs 1.26ns 4.87ns 0.16 0 0 1.01 KB
#4752 CallElasticsearch net6.0 1.21μs 0.535ns 2.07ns 0.0129 0 0 936 B
#4752 CallElasticsearch netcoreapp3.1 1.36μs 0.566ns 2.12ns 0.0123 0 0 936 B
#4752 CallElasticsearch net472 2.27μs 1.09ns 4.08ns 0.151 0 0 955 B
#4752 CallElasticsearchAsync net6.0 1.3μs 0.416ns 1.55ns 0.013 0 0 912 B
#4752 CallElasticsearchAsync netcoreapp3.1 1.5μs 0.696ns 2.6ns 0.0134 0 0 984 B
#4752 CallElasticsearchAsync net472 2.55μs 1.2ns 4.48ns 0.16 0 0 1.01 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.28μs 0.986ns 3.69ns 0.0129 0 0 912 B
master ExecuteAsync netcoreapp3.1 1.5μs 0.616ns 2.39ns 0.0121 0 0 912 B
master ExecuteAsync net472 1.71μs 0.903ns 3.5ns 0.138 0.000849 0 875 B
#4752 ExecuteAsync net6.0 1.16μs 1.25ns 4.85ns 0.0128 0 0 912 B
#4752 ExecuteAsync netcoreapp3.1 1.58μs 1.07ns 4.14ns 0.0118 0 0 912 B
#4752 ExecuteAsync net472 1.68μs 1.33ns 5.15ns 0.139 0 0 875 B
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 3.76μs 2.28ns 8.81ns 0.0266 0 0 1.9 KB
master SendAsync netcoreapp3.1 4.41μs 1.59ns 6.16ns 0.0331 0 0 2.43 KB
master SendAsync net472 7.06μs 4.25ns 16.4ns 0.475 0 0 2.99 KB
#4752 SendAsync net6.0 3.76μs 0.896ns 3.35ns 0.0263 0 0 1.9 KB
#4752 SendAsync netcoreapp3.1 4.38μs 1.53ns 5.94ns 0.0328 0 0 2.43 KB
#4752 SendAsync net472 7.02μs 1.16ns 4.5ns 0.473 0 0 2.99 KB
Benchmarks.Trace.ILoggerBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #4752

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑netcoreapp3.1 1.160 1,795.17 2,082.15

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 1.33μs 0.94ns 3.52ns 0.0222 0 0 1.57 KB
master EnrichedLog netcoreapp3.1 1.81μs 4.84ns 18.7ns 0.0215 0 0 1.57 KB
master EnrichedLog net472 2.24μs 2.01ns 7.24ns 0.236 0 0 1.49 KB
#4752 EnrichedLog net6.0 1.4μs 0.663ns 2.48ns 0.0216 0 0 1.57 KB
#4752 EnrichedLog netcoreapp3.1 2.08μs 1.23ns 4.59ns 0.0219 0 0 1.57 KB
#4752 EnrichedLog net472 2.35μs 1.74ns 6.29ns 0.236 0 0 1.49 KB
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 112μs 114ns 441ns 0.0556 0 0 4.21 KB
master EnrichedLog netcoreapp3.1 117μs 142ns 551ns 0 0 0 4.21 KB
master EnrichedLog net472 146μs 122ns 439ns 0.658 0.219 0 4.38 KB
#4752 EnrichedLog net6.0 112μs 79.1ns 306ns 0.0555 0 0 4.21 KB
#4752 EnrichedLog netcoreapp3.1 117μs 220ns 851ns 0 0 0 4.21 KB
#4752 EnrichedLog net472 147μs 101ns 377ns 0.663 0.221 0 4.38 KB
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.88μs 0.903ns 3.26ns 0.0301 0 0 2.13 KB
master EnrichedLog netcoreapp3.1 3.98μs 1.59ns 6.17ns 0.0278 0 0 2.13 KB
master EnrichedLog net472 4.65μs 2.1ns 8.14ns 0.307 0 0 1.93 KB
#4752 EnrichedLog net6.0 2.84μs 0.895ns 3.46ns 0.0297 0 0 2.13 KB
#4752 EnrichedLog netcoreapp3.1 3.99μs 1.6ns 6.21ns 0.0279 0 0 2.13 KB
#4752 EnrichedLog net472 4.57μs 1.74ns 6.52ns 0.306 0 0 1.93 KB
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 1.25μs 0.403ns 1.45ns 0.0156 0 0 1.1 KB
master SendReceive netcoreapp3.1 1.55μs 0.371ns 1.39ns 0.0147 0 0 1.1 KB
master SendReceive net472 2.01μs 1.97ns 7.63ns 0.177 0 0 1.12 KB
#4752 SendReceive net6.0 1.22μs 0.711ns 2.66ns 0.0152 0 0 1.1 KB
#4752 SendReceive netcoreapp3.1 1.63μs 2.42ns 9.37ns 0.0147 0 0 1.1 KB
#4752 SendReceive net472 1.91μs 1.25ns 4.7ns 0.177 0 0 1.12 KB
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.71μs 0.725ns 2.71ns 0.0204 0 0 1.53 KB
master EnrichedLog netcoreapp3.1 3.49μs 0.945ns 3.66ns 0.021 0 0 1.58 KB
master EnrichedLog net472 3.97μs 1.83ns 7.1ns 0.311 0 0 1.96 KB
#4752 EnrichedLog net6.0 2.47μs 0.916ns 3.55ns 0.0211 0 0 1.53 KB
#4752 EnrichedLog netcoreapp3.1 3.6μs 1.22ns 4.24ns 0.0199 0 0 1.58 KB
#4752 EnrichedLog net472 4.04μs 1.66ns 5.99ns 0.31 0 0 1.96 KB
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #4752

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 1.161 520.30 604.28
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 1.118 473.70 529.83

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 402ns 0.776ns 3ns 0.00741 0 0 536 B
master StartFinishSpan netcoreapp3.1 520ns 0.672ns 2.42ns 0.00719 0 0 536 B
master StartFinishSpan net472 619ns 0.0864ns 0.335ns 0.0853 0 0 538 B
master StartFinishScope net6.0 474ns 0.118ns 0.458ns 0.0092 0 0 656 B
master StartFinishScope netcoreapp3.1 700ns 1.32ns 5.1ns 0.00908 0 0 656 B
master StartFinishScope net472 777ns 1.39ns 4.81ns 0.0981 0 0 618 B
#4752 StartFinishSpan net6.0 442ns 0.189ns 0.731ns 0.0075 0 0 536 B
#4752 StartFinishSpan netcoreapp3.1 604ns 0.663ns 2.57ns 0.00738 0 0 536 B
#4752 StartFinishSpan net472 642ns 0.242ns 0.939ns 0.0853 0 0 538 B
#4752 StartFinishScope net6.0 530ns 0.181ns 0.703ns 0.00935 0 0 656 B
#4752 StartFinishScope netcoreapp3.1 720ns 0.652ns 2.53ns 0.00901 0 0 656 B
#4752 StartFinishScope net472 837ns 0.327ns 1.27ns 0.0981 0 0 618 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #4752

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0 1.119 525.81 588.54

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 526ns 0.151ns 0.584ns 0.00926 0 0 656 B
master RunOnMethodBegin netcoreapp3.1 867ns 0.596ns 2.15ns 0.00893 0 0 656 B
master RunOnMethodBegin net472 1.04μs 0.377ns 1.46ns 0.0977 0 0 618 B
#4752 RunOnMethodBegin net6.0 589ns 0.125ns 0.47ns 0.00922 0 0 656 B
#4752 RunOnMethodBegin netcoreapp3.1 861ns 2.03ns 7.85ns 0.00896 0 0 656 B
#4752 RunOnMethodBegin net472 1.07μs 0.249ns 0.966ns 0.0979 0 0 618 B

Copy link
Collaborator

@zacharycmontoya zacharycmontoya left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Member

@tonyredondo tonyredondo left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Member

@andrewlock andrewlock left a comment

Choose a reason for hiding this comment

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

The async bit lgtm, but need to address the metric change

tracer/src/Datadog.Trace/Telemetry/Metrics/MetricTags.cs Outdated Show resolved Hide resolved
Copy link
Member

@andrewlock andrewlock left a comment

Choose a reason for hiding this comment

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

Thanks, LGTM!

@andrewlock
Copy link
Member

andrewlock commented Oct 24, 2023

Throughput/Crank Report:zap:

Throughput results for AspNetCoreSimpleController comparing the following branches/commits:

Cases where throughput results for the PR are worse than latest master (5% drop or greater), results are shown in red.

Note that these results are based on a single point-in-time result for each branch. For full results, see one of the many, many dashboards!

gantt
    title Throughput Linux x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4752) (11.631M)   : 0, 11630634
    master (11.211M)   : 0, 11211102
    benchmarks/2.38.0 (11.867M)   : 0, 11866956
    benchmarks/2.9.0 (10.896M)   : 0, 10896496

    section Automatic
    This PR (4752) (7.913M)   : 0, 7913028
    master (7.742M)   : 0, 7742331
    benchmarks/2.38.0 (8.176M)   : 0, 8175636
    benchmarks/2.9.0 (8.125M)   : 0, 8125054

    section Trace stats
    This PR (4752) (8.278M)   : 0, 8278275
    master (8.202M)   : 0, 8201502
    benchmarks/2.38.0 (8.450M)   : 0, 8450370

    section Manual
    This PR (4752) (10.126M)   : 0, 10126353
    master (10.170M)   : 0, 10169527
    benchmarks/2.38.0 (10.334M)   : 0, 10334368

    section Manual + Automatic
    This PR (4752) (7.573M)   : 0, 7573206
    master (7.564M)   : 0, 7563638
    benchmarks/2.38.0 (7.750M)   : 0, 7750484

    section Version Conflict
    This PR (4752) (6.944M)   : 0, 6944162
    master (6.936M)   : 0, 6935807
    benchmarks/2.38.0 (7.137M)   : 0, 7136691

Loading
gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4752) (9.608M)   : 0, 9608231
    master (9.615M)   : 0, 9614769
    benchmarks/2.38.0 (9.548M)   : 0, 9548121
    benchmarks/2.9.0 (9.477M)   : 0, 9477392

    section Automatic
    This PR (4752) (6.787M)   : 0, 6786546
    master (6.707M)   : 0, 6706891
    benchmarks/2.38.0 (6.747M)   : 0, 6747227

    section Trace stats
    This PR (4752) (6.854M)   : 0, 6854430
    master (6.868M)   : 0, 6867968
    benchmarks/2.38.0 (6.815M)   : 0, 6814846

    section Manual
    This PR (4752) (8.221M)   : 0, 8221487
    master (8.523M)   : 0, 8522840
    benchmarks/2.38.0 (8.263M)   : 0, 8263131

    section Manual + Automatic
    This PR (4752) (6.337M)   : 0, 6336916
    master (6.085M)   : 0, 6084767
    benchmarks/2.38.0 (6.275M)   : 0, 6275411

    section Version Conflict
    This PR (4752) (5.979M)   : 0, 5979173
    master (5.947M)   : 0, 5946576
    benchmarks/2.38.0 (5.670M)   : 0, 5669744

Loading
gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4752) (9.489M)   : 0, 9488897
    master (9.327M)   : 0, 9327438
    benchmarks/2.38.0 (9.007M)   : 0, 9007066
    benchmarks/2.9.0 (9.459M)   : 0, 9458597

    section Automatic
    This PR (4752) (6.778M)   : 0, 6777994
    master (6.719M)   : 0, 6719189
    benchmarks/2.38.0 (6.423M)   : 0, 6422756
    benchmarks/2.9.0 (6.995M)   : 0, 6994572

    section Trace stats
    This PR (4752) (7.073M)   : 0, 7073155
    master (6.902M)   : 0, 6901701
    benchmarks/2.38.0 (6.721M)   : 0, 6720838

    section Manual
    This PR (4752) (8.424M)   : 0, 8424441
    master (8.333M)   : 0, 8333196
    benchmarks/2.38.0 (7.977M)   : 0, 7977494

    section Manual + Automatic
    This PR (4752) (6.629M)   : 0, 6628949
    master (6.445M)   : 0, 6444999
    benchmarks/2.38.0 (6.349M)   : 0, 6349066

    section Version Conflict
    This PR (4752) (6.053M)   : 0, 6052616
    master (5.843M)   : 0, 5843173
    benchmarks/2.38.0 (5.682M)   : 0, 5681654

Loading
gantt
    title Throughput Linux x64 (ASM) (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    master (7.531M)   : 0, 7530734
    benchmarks/2.38.0 (7.578M)   : 0, 7577544
    benchmarks/2.9.0 (7.897M)   : 0, 7897465

    section No attack
    master (2.161M)   : 0, 2160878
    benchmarks/2.38.0 (2.184M)   : 0, 2184279
    benchmarks/2.9.0 (3.208M)   : 0, 3207532

    section Attack
    master (1.708M)   : 0, 1708423
    benchmarks/2.38.0 (1.711M)   : 0, 1710542
    benchmarks/2.9.0 (2.553M)   : 0, 2553477

    section Blocking
    master (3.431M)   : 0, 3430604
    benchmarks/2.38.0 (3.486M)   : 0, 3486124

    section IAST default
    master (6.887M)   : 0, 6887158

    section IAST full
    master (6.163M)   : 0, 6162549

    section Base vuln
    master (0.966M)   : 0, 966408

    section IAST vuln
    master (0.939M)   : 0, 939437

Loading

@joeyzhao2018 joeyzhao2018 merged commit 7db4b8a into master Oct 25, 2023
57 of 59 checks passed
@joeyzhao2018 joeyzhao2018 deleted the joey/pr-4535-fix branch October 25, 2023 10:07
@github-actions github-actions bot added this to the vNext milestone Oct 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants