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

[SLES-1357] set exception on the aws.lambda span #5054

Merged
merged 4 commits into from
Jan 22, 2024

Conversation

joeyzhao2018
Copy link
Contributor

@joeyzhao2018 joeyzhao2018 commented Jan 12, 2024

Fixes #3204

Summary of changes

This is the last missing piece to add error message and status to the aws.lambda span.
Previously, @DylanLovesCoffee already implemented the ending method to send Datadog-Extension(Datadog agent in serverless case) the error messages in this PR. But in order to get the information from the span, we need to first SetException(exception) on the span here.

Test coverage

I first just tested it using one of the available lambda i have and see the aws.lambda span has it.
Screenshot 2024-01-12 at 10 47 38 AM

P.S. I am actually working on a project to rethink how to do integration tests for tracing in aws lambda world. I'll try adding a corresponding test there.

Other details

@joeyzhao2018 joeyzhao2018 requested a review from a team as a code owner January 12, 2024 15:46
@joeyzhao2018 joeyzhao2018 requested a review from a team January 12, 2024 15:46
@datadog-ddstaging
Copy link

datadog-ddstaging bot commented Jan 12, 2024

Datadog Report

Branch report: joey/set-exception
Commit report: e498894
Test service: dd-trace-dotnet

✅ 0 Failed, 305697 Passed, 1530 Skipped, 45m 28.09s Wall Time

@andrewlock
Copy link
Member

andrewlock commented Jan 12, 2024

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 (5054) - mean (72ms)  : 64, 80
     .   : milestone, 72,
    master - mean (71ms)  : 61, 80
     .   : milestone, 71,

    section CallTarget+Inlining+NGEN
    This PR (5054) - mean (949ms)  : 920, 979
     .   : milestone, 949,
    master - mean (947ms)  : 927, 968
     .   : milestone, 947,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5054) - mean (105ms)  : 99, 110
     .   : milestone, 105,
    master - mean (106ms)  : 102, 110
     .   : milestone, 106,

    section CallTarget+Inlining+NGEN
    This PR (5054) - mean (693ms)  : 675, 712
     .   : milestone, 693,
    master - mean (701ms)  : 686, 717
     .   : milestone, 701,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5054) - mean (89ms)  : 86, 93
     .   : milestone, 89,
    master - mean (89ms)  : 85, 93
     .   : milestone, 89,

    section CallTarget+Inlining+NGEN
    This PR (5054) - mean (652ms)  : 631, 673
     .   : milestone, 652,
    master - mean (654ms)  : 635, 673
     .   : milestone, 654,

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

    section CallTarget+Inlining+NGEN
    This PR (5054) - mean (1,071ms)  : 1046, 1095
     .   : milestone, 1071,
    master - mean (1,067ms)  : 1047, 1087
     .   : milestone, 1067,

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

    section CallTarget+Inlining+NGEN
    This PR (5054) - mean (1,050ms)  : 1019, 1080
     .   : milestone, 1050,
    master - mean (1,051ms)  : 1025, 1078
     .   : milestone, 1051,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5054) - mean (262ms)  : 258, 265
     .   : milestone, 262,
    master - mean (261ms)  : 257, 265
     .   : milestone, 261,

    section CallTarget+Inlining+NGEN
    This PR (5054) - mean (1,018ms)  : 990, 1046
     .   : milestone, 1018,
    master - mean (1,019ms)  : 997, 1040
     .   : milestone, 1019,

Loading

@andrewlock
Copy link
Member

andrewlock commented Jan 12, 2024

Benchmarks Report 🐌

Benchmarks for #5054 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.183
  • 3 benchmarks are slower, with geometric mean 1.128
  • 2 benchmarks have fewer 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.77μs 48.5ns 314ns 0.0225 0.00898 0 7.48 KB
master StartStopWithChild netcoreapp3.1 10.9μs 61ns 381ns 0.0326 0.0163 0 7.58 KB
master StartStopWithChild net472 17.2μs 70.3ns 272ns 1.34 0.342 0.111 7.95 KB
#5054 StartStopWithChild net6.0 8.72μs 47.7ns 298ns 0.0222 0.00889 0 7.48 KB
#5054 StartStopWithChild netcoreapp3.1 11μs 55.9ns 256ns 0.04 0.0171 0 7.57 KB
#5054 StartStopWithChild net472 17.2μs 42ns 151ns 1.33 0.355 0.101 7.96 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 455μs 242ns 938ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 629μs 149ns 556ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 815μs 312ns 1.21μs 0.403 0 0 3.3 KB
#5054 WriteAndFlushEnrichedTraces net6.0 460μs 172ns 666ns 0 0 0 2.7 KB
#5054 WriteAndFlushEnrichedTraces netcoreapp3.1 623μs 273ns 1.02μs 0 0 0 2.7 KB
#5054 WriteAndFlushEnrichedTraces net472 803μs 344ns 1.33μs 0.401 0 0 3.3 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #5054

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑net6.0 1.136 145.55 165.32
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑netcoreapp3.1 1.122 214.89 241.19

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 38.8μs 30.9ns 120ns 0.0195 0 0 1.77 KB
master AllCycleSimpleBody netcoreapp3.1 41.3μs 38.2ns 148ns 0.0207 0 0 1.74 KB
master AllCycleSimpleBody net472 44.8μs 18.7ns 72.3ns 0.288 0 0 1.81 KB
master AllCycleMoreComplexBody net6.0 200μs 85.1ns 330ns 0.0995 0 0 9.25 KB
master AllCycleMoreComplexBody netcoreapp3.1 211μs 241ns 932ns 0.106 0 0 9.14 KB
master AllCycleMoreComplexBody net472 225μs 152ns 588ns 1.46 0 0 9.32 KB
master ObjectExtractorSimpleBody net6.0 146ns 0.19ns 0.711ns 0.00396 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 215ns 0.133ns 0.513ns 0.00379 0 0 272 B
master ObjectExtractorSimpleBody net472 165ns 0.316ns 1.22ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 3.05μs 1.79ns 6.44ns 0.0533 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.22μs 1.33ns 4.81ns 0.0506 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 3.81μs 5.91ns 22.1ns 0.602 0.00568 0 3.8 KB
#5054 AllCycleSimpleBody net6.0 38.7μs 49.8ns 193ns 0.0192 0 0 1.77 KB
#5054 AllCycleSimpleBody netcoreapp3.1 41.6μs 33.2ns 120ns 0.0209 0 0 1.74 KB
#5054 AllCycleSimpleBody net472 45.1μs 14.6ns 54.5ns 0.267 0 0 1.81 KB
#5054 AllCycleMoreComplexBody net6.0 200μs 90.9ns 352ns 0.0992 0 0 9.25 KB
#5054 AllCycleMoreComplexBody netcoreapp3.1 213μs 219ns 847ns 0.106 0 0 9.14 KB
#5054 AllCycleMoreComplexBody net472 225μs 64.8ns 251ns 1.45 0 0 9.32 KB
#5054 ObjectExtractorSimpleBody net6.0 165ns 0.139ns 0.54ns 0.00397 0 0 280 B
#5054 ObjectExtractorSimpleBody netcoreapp3.1 241ns 0.184ns 0.714ns 0.00365 0 0 272 B
#5054 ObjectExtractorSimpleBody net472 184ns 0.282ns 1.06ns 0.0446 0 0 281 B
#5054 ObjectExtractorMoreComplexBody net6.0 2.95μs 2.12ns 7.94ns 0.0532 0 0 3.78 KB
#5054 ObjectExtractorMoreComplexBody netcoreapp3.1 4.02μs 1.15ns 4.29ns 0.0502 0 0 3.69 KB
#5054 ObjectExtractorMoreComplexBody net472 3.78μs 2.44ns 9.13ns 0.602 0.00571 0 3.8 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #5054

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWaf(args: NestedMap (100))‑net6.0 1.125 98,131.99 110,436.03

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWaf(args=NestedMap (10)) net6.0 51.9μs 20.3ns 73.1ns 0.208 0 0 16.06 KB
master RunWaf(args=NestedMap (10)) netcoreapp3.1 70.2μs 389ns 2.4μs 0.196 0 0 16.06 KB
master RunWaf(args=NestedMap (10)) net472 95.8μs 29.1ns 113ns 2.55 0.0962 0 16.14 KB
master RunWafTwice(args=NestedMap (10)) net6.0 57.5μs 11.2ns 42.1ns 0.218 0 0 16.6 KB
master RunWafTwice(args=NestedMap (10)) netcoreapp3.1 70.5μs 342ns 1.41μs 0.21 0 0 16.58 KB
master RunWafTwice(args=NestedMap (10)) net472 109μs 309ns 1.16μs 2.65 0.104 0 16.69 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 114μs 232ns 897ns 0.286 0 0 22.41 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 130μs 652ns 2.99μs 0.254 0 0 22.36 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net472 165μs 562ns 2.1μs 3.56 0.162 0 22.7 KB
master RunWaf(args=NestedMap (100)) net6.0 98.1μs 56.8ns 220ns 0.441 0 0 32.76 KB
master RunWaf(args=NestedMap (100)) netcoreapp3.1 131μs 734ns 5.09μs 0.439 0 0 33.33 KB
master RunWaf(args=NestedMap (100)) net472 192μs 847ns 3.28μs 5.34 0.375 0 33.67 KB
master RunWafTwice(args=NestedMap (100)) net6.0 105μs 56.3ns 195ns 0.47 0 0 33.3 KB
master RunWafTwice(args=NestedMap (100)) netcoreapp3.1 137μs 750ns 4.18μs 0.456 0 0 33.86 KB
master RunWafTwice(args=NestedMap (100)) net472 196μs 56.9ns 213ns 5.37 0.391 0 34.23 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) net6.0 160μs 41.4ns 155ns 0.498 0 0 39.1 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) netcoreapp3.1 197μs 99.9ns 346ns 0.507 0 0 39.63 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) net472 257μs 1.12μs 4.33μs 6.31 0.505 0 40.23 KB
master RunWaf(args=NestedMap (20)) net6.0 104μs 596ns 4.42μs 0.443 0 0 32.18 KB
master RunWaf(args=NestedMap (20)) netcoreapp3.1 133μs 724ns 4.22μs 0.413 0 0 32.3 KB
master RunWaf(args=NestedMap (20)) net472 188μs 106ns 412ns 5.19 0.37 0 32.63 KB
master RunWafTwice(args=NestedMap (20)) net6.0 112μs 344ns 1.33μs 0.449 0 0 32.72 KB
master RunWafTwice(args=NestedMap (20)) netcoreapp3.1 133μs 82.5ns 309ns 0.398 0 0 32.82 KB
master RunWafTwice(args=NestedMap (20)) net472 194μs 136ns 527ns 5.25 0.389 0 33.19 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 168μs 63.2ns 228ns 0.559 0 0 38.53 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 203μs 597ns 2.31μs 0.484 0 0 38.6 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net472 255μs 537ns 2.08μs 6.12 0.5 0 39.2 KB
#5054 RunWaf(args=NestedMap (10)) net6.0 54.9μs 10.9ns 40.9ns 0.207 0 0 16.06 KB
#5054 RunWaf(args=NestedMap (10)) netcoreapp3.1 69.5μs 360ns 1.84μs 0.227 0 0 16.06 KB
#5054 RunWaf(args=NestedMap (10)) net472 95.3μs 60.3ns 226ns 2.53 0.0956 0 16.14 KB
#5054 RunWafTwice(args=NestedMap (10)) net6.0 60.3μs 117ns 452ns 0.209 0 0 16.6 KB
#5054 RunWafTwice(args=NestedMap (10)) netcoreapp3.1 72.9μs 414ns 3.07μs 0.224 0 0 16.58 KB
#5054 RunWafTwice(args=NestedMap (10)) net472 105μs 146ns 545ns 2.62 0.105 0 16.69 KB
#5054 RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 108μs 39.3ns 152ns 0.27 0 0 22.41 KB
#5054 RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 127μs 383ns 1.48μs 0.262 0 0 22.36 KB
#5054 RunWafWithAttack(args=Neste(...)tack) [22]) net472 160μs 86.8ns 336ns 3.59 0.16 0 22.7 KB
#5054 RunWaf(args=NestedMap (100)) net6.0 110μs 42.3ns 164ns 0.438 0 0 32.76 KB
#5054 RunWaf(args=NestedMap (100)) netcoreapp3.1 131μs 701ns 3.84μs 0.438 0 0 33.33 KB
#5054 RunWaf(args=NestedMap (100)) net472 185μs 99.3ns 372ns 5.31 0.373 0 33.67 KB
#5054 RunWafTwice(args=NestedMap (100)) net6.0 110μs 593ns 3.3μs 0.455 0 0 33.3 KB
#5054 RunWafTwice(args=NestedMap (100)) netcoreapp3.1 140μs 292ns 1.01μs 0.471 0 0 33.86 KB
#5054 RunWafTwice(args=NestedMap (100)) net472 204μs 974ns 3.77μs 5.43 0.388 0 34.23 KB
#5054 RunWafWithAttack(args=Neste(...)tack) [23]) net6.0 168μs 88ns 341ns 0.501 0 0 39.1 KB
#5054 RunWafWithAttack(args=Neste(...)tack) [23]) netcoreapp3.1 206μs 1.06μs 5.09μs 0.492 0 0 39.63 KB
#5054 RunWafWithAttack(args=Neste(...)tack) [23]) net472 259μs 1.26μs 5.34μs 6.31 0.505 0 40.23 KB
#5054 RunWaf(args=NestedMap (20)) net6.0 110μs 634ns 5.19μs 0.468 0 0 32.18 KB
#5054 RunWaf(args=NestedMap (20)) netcoreapp3.1 133μs 718ns 3.93μs 0.401 0 0 32.3 KB
#5054 RunWaf(args=NestedMap (20)) net472 184μs 95ns 355ns 5.13 0.367 0 32.63 KB
#5054 RunWafTwice(args=NestedMap (20)) net6.0 111μs 55.4ns 215ns 0.457 0 0 32.72 KB
#5054 RunWafTwice(args=NestedMap (20)) netcoreapp3.1 139μs 703ns 3.3μs 0.415 0 0 32.82 KB
#5054 RunWafTwice(args=NestedMap (20)) net472 193μs 147ns 569ns 5.22 0.387 0 33.19 KB
#5054 RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 170μs 123ns 476ns 0.507 0 0 38.53 KB
#5054 RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 198μs 1.04μs 5.42μs 0.499 0 0 38.6 KB
#5054 RunWafWithAttack(args=Neste(...)tack) [22]) net472 259μs 1.07μs 4.14μs 6.16 0.503 0 39.2 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 173μs 187ns 723ns 0.26 0 0 18.25 KB
master SendRequest netcoreapp3.1 197μs 1.09μs 6.52μs 0.193 0 0 20.41 KB
master SendRequest net472 0.000465ns 0.000189ns 0.000733ns 0 0 0 0 b
#5054 SendRequest net6.0 174μs 228ns 884ns 0.262 0 0 18.25 KB
#5054 SendRequest netcoreapp3.1 194μs 441ns 1.71μs 0.194 0 0 20.41 KB
#5054 SendRequest net472 0ns 0ns 0ns 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 547μs 1μs 3.88μs 0.534 0 0 41.85 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 657μs 951ns 3.68μs 0.334 0 0 41.71 KB
master WriteAndFlushEnrichedTraces net472 839μs 2.91μs 11.3μs 8.28 2.48 0.414 53.25 KB
#5054 WriteAndFlushEnrichedTraces net6.0 554μs 1.75μs 6.77μs 0.53 0 0 41.8 KB
#5054 WriteAndFlushEnrichedTraces netcoreapp3.1 650μs 623ns 2.41μs 0.324 0 0 41.76 KB
#5054 WriteAndFlushEnrichedTraces net472 846μs 3.46μs 13.4μs 8.41 2.4 0.401 53.23 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.05μs 0.274ns 0.988ns 0.0106 0 0 768 B
master ExecuteNonQuery netcoreapp3.1 1.47μs 0.732ns 2.83ns 0.0103 0 0 768 B
master ExecuteNonQuery net472 1.8μs 0.71ns 2.56ns 0.116 0 0 730 B
#5054 ExecuteNonQuery net6.0 1.13μs 0.432ns 1.67ns 0.0107 0 0 768 B
#5054 ExecuteNonQuery netcoreapp3.1 1.54μs 1.06ns 4.09ns 0.00999 0 0 768 B
#5054 ExecuteNonQuery net472 1.7μs 1.26ns 4.71ns 0.115 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.21μs 1.18ns 4.56ns 0.013 0 0 936 B
master CallElasticsearch netcoreapp3.1 1.56μs 1.72ns 6.45ns 0.0126 0 0 936 B
master CallElasticsearch net472 2.5μs 0.735ns 2.85ns 0.151 0 0 955 B
master CallElasticsearchAsync net6.0 1.3μs 0.558ns 2.16ns 0.0124 0 0 912 B
master CallElasticsearchAsync netcoreapp3.1 1.54μs 0.486ns 1.88ns 0.0131 0 0 984 B
master CallElasticsearchAsync net472 2.77μs 1.15ns 4.44ns 0.16 0 0 1.01 KB
#5054 CallElasticsearch net6.0 1.26μs 0.472ns 1.83ns 0.0133 0 0 936 B
#5054 CallElasticsearch netcoreapp3.1 1.52μs 1.05ns 3.92ns 0.0121 0 0 936 B
#5054 CallElasticsearch net472 2.63μs 0.739ns 2.56ns 0.152 0 0 955 B
#5054 CallElasticsearchAsync net6.0 1.24μs 0.804ns 3.01ns 0.0129 0 0 912 B
#5054 CallElasticsearchAsync netcoreapp3.1 1.69μs 2.38ns 9.21ns 0.0135 0 0 984 B
#5054 CallElasticsearchAsync net472 2.77μs 0.619ns 2.32ns 0.16 0 0 1.01 KB
Benchmarks.Trace.GraphQLBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #5054

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net6.0 1.183 1,479.68 1,251.23

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.48μs 0.646ns 2.24ns 0.0126 0 0 912 B
master ExecuteAsync netcoreapp3.1 1.66μs 1.43ns 5.35ns 0.0124 0 0 912 B
master ExecuteAsync net472 1.83μs 0.483ns 1.81ns 0.139 0 0 875 B
#5054 ExecuteAsync net6.0 1.25μs 0.555ns 2.08ns 0.0125 0 0 912 B
#5054 ExecuteAsync netcoreapp3.1 1.61μs 1.87ns 6.99ns 0.012 0 0 912 B
#5054 ExecuteAsync net472 1.83μs 1.01ns 3.78ns 0.138 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 4.29μs 7.03ns 25.3ns 0.0299 0 0 2.1 KB
master SendAsync netcoreapp3.1 5.06μs 2.05ns 7.68ns 0.0354 0 0 2.63 KB
master SendAsync net472 7.8μs 3ns 11.6ns 0.523 0 0 3.31 KB
#5054 SendAsync net6.0 4.11μs 6.21ns 24ns 0.0286 0 0 2.1 KB
#5054 SendAsync netcoreapp3.1 5.01μs 2.62ns 10.1ns 0.0353 0 0 2.63 KB
#5054 SendAsync net472 7.63μs 4.14ns 16ns 0.522 0 0 3.31 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #5054

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 212.85 KB 204.13 KB -8.72 KB -4.10%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 61.93 KB 57.74 KB -4.19 KB -6.77%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 59μs 1.16μs 11.3μs 0 0 0 43.44 KB
master StringConcatBenchmark netcoreapp3.1 54μs 244ns 1.17μs 0 0 0 42.64 KB
master StringConcatBenchmark net472 37.6μs 77.7ns 269ns 0 0 0 61.93 KB
master StringConcatAspectBenchmark net6.0 276μs 6.83μs 66.5μs 0 0 0 212.85 KB
master StringConcatAspectBenchmark netcoreapp3.1 327μs 6.37μs 59.4μs 0 0 0 204.27 KB
master StringConcatAspectBenchmark net472 223μs 962ns 3.47μs 0 0 0 221.18 KB
#5054 StringConcatBenchmark net6.0 60.1μs 1.46μs 14.1μs 0 0 0 43.44 KB
#5054 StringConcatBenchmark netcoreapp3.1 63.7μs 926ns 9.26μs 0 0 0 42.64 KB
#5054 StringConcatBenchmark net472 38.6μs 81.8ns 295ns 0 0 0 57.74 KB
#5054 StringConcatAspectBenchmark net6.0 277μs 1.35μs 7.13μs 0 0 0 204.13 KB
#5054 StringConcatAspectBenchmark netcoreapp3.1 302μs 3.95μs 36.4μs 0 0 0 204.11 KB
#5054 StringConcatAspectBenchmark net472 244μs 3.61μs 34.8μs 0 0 0 221.18 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 1.59μs 0.62ns 2.32ns 0.0223 0 0 1.57 KB
master EnrichedLog netcoreapp3.1 2.2μs 1.64ns 6.14ns 0.0208 0 0 1.57 KB
master EnrichedLog net472 2.58μs 1.36ns 5.26ns 0.238 0 0 1.5 KB
#5054 EnrichedLog net6.0 1.45μs 0.852ns 3.3ns 0.0219 0 0 1.57 KB
#5054 EnrichedLog netcoreapp3.1 2.3μs 0.929ns 3.48ns 0.0207 0 0 1.57 KB
#5054 EnrichedLog net472 2.69μs 2.7ns 10.1ns 0.238 0 0 1.5 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 113μs 130ns 487ns 0.0567 0 0 4.21 KB
master EnrichedLog netcoreapp3.1 119μs 108ns 418ns 0.059 0 0 4.21 KB
master EnrichedLog net472 149μs 119ns 447ns 0.668 0.223 0 4.39 KB
#5054 EnrichedLog net6.0 113μs 101ns 377ns 0.0564 0 0 4.21 KB
#5054 EnrichedLog netcoreapp3.1 119μs 131ns 490ns 0.0595 0 0 4.21 KB
#5054 EnrichedLog net472 151μs 116ns 434ns 0.68 0.227 0 4.39 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.99μs 0.867ns 3.36ns 0.0299 0 0 2.13 KB
master EnrichedLog netcoreapp3.1 4.28μs 3.46ns 13.4ns 0.0277 0 0 2.13 KB
master EnrichedLog net472 4.86μs 2.06ns 7.98ns 0.308 0 0 1.95 KB
#5054 EnrichedLog net6.0 2.93μs 1.77ns 6.85ns 0.0294 0 0 2.13 KB
#5054 EnrichedLog netcoreapp3.1 4.2μs 2.59ns 10ns 0.0272 0 0 2.13 KB
#5054 EnrichedLog net472 4.82μs 2.04ns 7.65ns 0.307 0 0 1.95 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.33μs 0.546ns 2.04ns 0.0153 0 0 1.1 KB
master SendReceive netcoreapp3.1 1.69μs 0.803ns 3.01ns 0.0147 0 0 1.1 KB
master SendReceive net472 2.2μs 3.74ns 14.5ns 0.177 0 0 1.12 KB
#5054 SendReceive net6.0 1.46μs 0.559ns 2.17ns 0.0153 0 0 1.1 KB
#5054 SendReceive netcoreapp3.1 1.77μs 0.527ns 1.97ns 0.0149 0 0 1.1 KB
#5054 SendReceive net472 2.17μs 2.18ns 8.14ns 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.72μs 0.774ns 2.9ns 0.0217 0 0 1.53 KB
master EnrichedLog netcoreapp3.1 3.84μs 1.8ns 6.47ns 0.0213 0 0 1.58 KB
master EnrichedLog net472 4.31μs 1.05ns 4.05ns 0.311 0 0 1.97 KB
#5054 EnrichedLog net6.0 2.66μs 0.731ns 2.83ns 0.0213 0 0 1.53 KB
#5054 EnrichedLog netcoreapp3.1 4.02μs 1.62ns 6.27ns 0.0219 0 0 1.58 KB
#5054 EnrichedLog net472 4.32μs 1.25ns 4.83ns 0.312 0 0 1.97 KB
Benchmarks.Trace.SpanBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 462ns 0.13ns 0.504ns 0.00742 0 0 536 B
master StartFinishSpan netcoreapp3.1 753ns 0.697ns 2.61ns 0.00719 0 0 536 B
master StartFinishSpan net472 751ns 0.758ns 2.93ns 0.0854 0 0 538 B
master StartFinishScope net6.0 538ns 0.121ns 0.467ns 0.00905 0 0 656 B
master StartFinishScope netcoreapp3.1 926ns 0.686ns 2.66ns 0.00853 0 0 656 B
master StartFinishScope net472 949ns 0.37ns 1.28ns 0.098 0 0 618 B
#5054 StartFinishSpan net6.0 490ns 0.166ns 0.62ns 0.00754 0 0 536 B
#5054 StartFinishSpan netcoreapp3.1 690ns 0.581ns 2.1ns 0.00712 0 0 536 B
#5054 StartFinishSpan net472 734ns 0.378ns 1.46ns 0.0853 0 0 538 B
#5054 StartFinishScope net6.0 542ns 0.159ns 0.595ns 0.00924 0 0 656 B
#5054 StartFinishScope netcoreapp3.1 870ns 0.366ns 1.42ns 0.00875 0 0 656 B
#5054 StartFinishScope net472 945ns 0.439ns 1.7ns 0.0979 0 0 618 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 726ns 0.26ns 1.01ns 0.00903 0 0 656 B
master RunOnMethodBegin netcoreapp3.1 1.01μs 0.786ns 2.84ns 0.00901 0 0 656 B
master RunOnMethodBegin net472 1.11μs 0.388ns 1.5ns 0.098 0 0 618 B
#5054 RunOnMethodBegin net6.0 656ns 0.369ns 1.43ns 0.00914 0 0 656 B
#5054 RunOnMethodBegin netcoreapp3.1 955ns 1.09ns 4.24ns 0.00857 0 0 656 B
#5054 RunOnMethodBegin net472 1.15μs 0.406ns 1.57ns 0.0981 0 0 618 B

@andrewlock
Copy link
Member

andrewlock commented Jan 13, 2024

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 (5054) (11.166M)   : 0, 11166045
    master (11.460M)   : 0, 11459873
    benchmarks/2.9.0 (11.706M)   : 0, 11706061

    section Automatic
    This PR (5054) (7.587M)   : 0, 7586763
    master (7.953M)   : 0, 7952899
    benchmarks/2.9.0 (8.435M)   : 0, 8435290

    section Trace stats
    This PR (5054) (7.847M)   : 0, 7847164
    master (8.256M)   : 0, 8255704

    section Manual
    This PR (5054) (9.706M)   : 0, 9705666
    master (9.954M)   : 0, 9954060

    section Manual + Automatic
    This PR (5054) (7.123M)   : crit ,0, 7123380
    master (7.498M)   : 0, 7498475

    section Version Conflict
    This PR (5054) (6.466M)   : 0, 6466017
    master (6.784M)   : 0, 6784101

Loading
gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (5054) (9.499M)   : 0, 9498985
    master (9.242M)   : 0, 9241956
    benchmarks/2.9.0 (9.499M)   : 0, 9498887

    section Automatic
    This PR (5054) (6.445M)   : 0, 6444809
    master (6.603M)   : 0, 6602563

    section Trace stats
    This PR (5054) (6.905M)   : 0, 6905216
    master (6.895M)   : 0, 6894560

    section Manual
    This PR (5054) (8.278M)   : 0, 8277838
    master (8.330M)   : 0, 8330087

    section Manual + Automatic
    This PR (5054) (6.259M)   : 0, 6258731
    master (6.156M)   : 0, 6155707

    section Version Conflict
    This PR (5054) (5.673M)   : 0, 5673218
    master (5.646M)   : 0, 5645657

Loading
gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (5054) (10.306M)   : 0, 10305621
    master (10.410M)   : 0, 10410090
    benchmarks/2.9.0 (10.016M)   : 0, 10016245

    section Automatic
    This PR (5054) (7.005M)   : 0, 7004932
    master (7.128M)   : 0, 7128223
    benchmarks/2.9.0 (7.585M)   : 0, 7584638

    section Trace stats
    This PR (5054) (7.413M)   : 0, 7412956
    master (7.525M)   : 0, 7525120

    section Manual
    This PR (5054) (8.861M)   : 0, 8860871
    master (8.884M)   : 0, 8884351

    section Manual + Automatic
    This PR (5054) (6.743M)   : 0, 6743134
    master (5.998M)   : 0, 5998100

    section Version Conflict
    This PR (5054) (6.079M)   : 0, 6079449
    master (6.333M)   : 0, 6332697

Loading
gantt
    title Throughput Linux x64 (ASM) (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    master (7.494M)   : 0, 7494117
    benchmarks/2.9.0 (7.825M)   : 0, 7824687

    section No attack
    master (1.795M)   : 0, 1794847
    benchmarks/2.9.0 (3.207M)   : 0, 3206910

    section Attack
    master (1.416M)   : 0, 1415922
    benchmarks/2.9.0 (2.494M)   : 0, 2494104

    section Blocking
    master (3.163M)   : 0, 3163253

    section IAST default
    master (6.458M)   : 0, 6458456

    section IAST full
    master (5.690M)   : 0, 5689858

    section Base vuln
    master (0.953M)   : 0, 953433

    section IAST vuln
    master (0.886M)   : 0, 885851

Loading

Copy link
Contributor

Snapshots difference summary

The following differences have been observed in committed snapshots. It is meant to help the reviewer.
The diff is simplistic, so please check some files anyway while we improve it.

6 occurrences of :

+      error.msg: Cannot assign requested address,
+      error.stack: Cannot assign requested address (SocketException),
+      error.type: System.Net.WebException,

@joeyzhao2018 joeyzhao2018 merged commit 3d41a6b into master Jan 22, 2024
54 of 57 checks passed
@joeyzhao2018 joeyzhao2018 deleted the joey/set-exception branch January 22, 2024 18:22
@github-actions github-actions bot added this to the vNext milestone Jan 22, 2024
This pull request was closed.
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.

SetException on automatic spans not working
4 participants