dd-trace-dotnet icon indicating copy to clipboard operation
dd-trace-dotnet copied to clipboard

Single-span web spans PoC

Open andrewlock opened this issue 2 years ago • 4 comments

Summary of changes

Reason for change

Implementation details

Test coverage

Other details

andrewlock avatar Dec 04 '23 15:12 andrewlock

Datadog Report

Branch report: andrew/single-span-aspnetcore-v2 Commit report: 12ebce6

:x: dd-trace-dotnet: 24 Failed (0 Known Flaky), 0 New Flaky, 232043 Passed, 952 Skipped, 30m 50.37s Wall Time

:x: Failed Tests (24)

This report shows up to 5 failed tests.

  • AllConfigurationValuesAreRegisteredWithIntake - Datadog.Trace.Tests.Telemetry.ConfigurationTests - Details

    Expand for error
    xpected collection to be empty because Keys should be listed in config_norm_rules or block_prefixes, but found {"DD_TRACE_SINGLE_WEB_SPAN_ENABLED"}.
    
  • AllConfigurationValuesAreRegisteredWithIntake - Datadog.Trace.Tests.Telemetry.ConfigurationTests - Details

    Expand for error
    xpected collection to be empty because Keys should be listed in config_norm_rules or block_prefixes, but found {"DD_TRACE_SINGLE_WEB_SPAN_ENABLED"}.
    
  • AllConfigurationValuesAreRegisteredWithIntake - Datadog.Trace.Tests.Telemetry.ConfigurationTests - Details

    Expand for error
    xpected collection to be empty because Keys should be listed in config_norm_rules or block_prefixes, but found {"DD_TRACE_SINGLE_WEB_SPAN_ENABLED"}.
    
  • AllConfigurationValuesAreRegisteredWithIntake - Datadog.Trace.Tests.Telemetry.ConfigurationTests - Details

    Expand for error
    xpected collection to be empty because Keys should be listed in config_norm_rules or block_prefixes, but found {"DD_TRACE_SINGLE_WEB_SPAN_ENABLED"}.
    
  • AllConfigurationValuesAreRegisteredWithIntake - Datadog.Trace.Tests.Telemetry.ConfigurationTests - Details

    Expand for error
    xpected collection to be empty because Keys should be listed in config_norm_rules or block_prefixes, but found {"DD_TRACE_SINGLE_WEB_SPAN_ENABLED"}.
    

datadog-ddstaging[bot] avatar Dec 04 '23 15:12 datadog-ddstaging[bot]

Execution-Time Benchmarks Report :stopwatch:

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 (4952) - mean (71ms)  : 57, 85
     .   : milestone, 71,
    master - mean (71ms)  : 61, 82
     .   : milestone, 71,

    section CallTarget+Inlining+NGEN
    This PR (4952) - mean (995ms)  : 977, 1013
     .   : milestone, 995,
    master - mean (995ms)  : 974, 1015
     .   : milestone, 995,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4952) - mean (106ms)  : 103, 110
     .   : milestone, 106,
    master - mean (106ms)  : 101, 110
     .   : milestone, 106,

    section CallTarget+Inlining+NGEN
    This PR (4952) - mean (690ms)  : 668, 712
     .   : milestone, 690,
    master - mean (685ms)  : 670, 700
     .   : milestone, 685,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4952) - mean (89ms)  : 84, 94
     .   : milestone, 89,
    master - mean (89ms)  : 85, 92
     .   : milestone, 89,

    section CallTarget+Inlining+NGEN
    This PR (4952) - mean (657ms)  : 632, 682
     .   : milestone, 657,
    master - mean (661ms)  : 636, 685
     .   : milestone, 661,

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

    section CallTarget+Inlining+NGEN
    This PR (4952) - mean (1,136ms)  : 1114, 1158
     .   : milestone, 1136,
    master - mean (1,128ms)  : 1102, 1153
     .   : milestone, 1128,

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

    section CallTarget+Inlining+NGEN
    This PR (4952) - mean (1,092ms)  : 1069, 1115
     .   : milestone, 1092,
    master - mean (1,086ms)  : 1062, 1110
     .   : milestone, 1086,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4952) - mean (263ms)  : 258, 267
     .   : milestone, 263,
    master - mean (261ms)  : 256, 265
     .   : milestone, 261,

    section CallTarget+Inlining+NGEN
    This PR (4952) - mean (1,062ms)  : 1040, 1085
     .   : milestone, 1062,
    master - mean (1,052ms)  : 1022, 1083
     .   : milestone, 1052,

andrewlock avatar Dec 04 '23 15:12 andrewlock

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 (4952) (11.196M)   : 0, 11195552
    master (11.505M)   : 0, 11505134
    benchmarks/2.9.0 (11.328M)   : 0, 11327845

    section Automatic
    This PR (4952) (7.644M)   : 0, 7644344
    master (7.925M)   : 0, 7925371
    benchmarks/2.9.0 (8.136M)   : 0, 8136367

    section Trace stats
    This PR (4952) (7.878M)   : 0, 7878249
    master (8.252M)   : 0, 8252272

    section Manual
    This PR (4952) (9.657M)   : crit ,0, 9657439
    master (10.268M)   : 0, 10267641

    section Manual + Automatic
    This PR (4952) (7.323M)   : 0, 7323256
    master (7.626M)   : 0, 7625964

    section Version Conflict
    This PR (4952) (6.731M)   : 0, 6731415
    master (6.753M)   : 0, 6753191

gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4952) (9.379M)   : 0, 9378832
    master (9.647M)   : 0, 9646939
    benchmarks/2.9.0 (9.420M)   : 0, 9419924

    section Automatic
    This PR (4952) (6.582M)   : 0, 6582474
    master (6.678M)   : 0, 6678457

    section Trace stats
    This PR (4952) (6.859M)   : 0, 6859318
    master (6.997M)   : 0, 6996775

    section Manual
    This PR (4952) (8.341M)   : 0, 8340930
    master (8.278M)   : 0, 8278115

    section Manual + Automatic
    This PR (4952) (5.987M)   : 0, 5987179
    master (6.263M)   : 0, 6262921

    section Version Conflict
    This PR (4952) (5.609M)   : 0, 5609338
    master (5.683M)   : 0, 5683430

gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4952) (10.947M)   : 0, 10947327
    master (10.787M)   : 0, 10786582
    benchmarks/2.9.0 (9.398M)   : 0, 9397967

    section Automatic
    This PR (4952) (7.779M)   : 0, 7778855
    master (7.628M)   : 0, 7627579
    benchmarks/2.9.0 (6.738M)   : 0, 6737745

    section Trace stats
    This PR (4952) (8.067M)   : 0, 8067171
    master (8.001M)   : 0, 8001331

    section Manual
    This PR (4952) (9.562M)   : 0, 9561539
    master (9.474M)   : 0, 9474180

    section Manual + Automatic
    This PR (4952) (7.376M)   : 0, 7375961
    master (7.327M)   : 0, 7327407

    section Version Conflict
    This PR (4952) (6.607M)   : 0, 6607041
    master (6.521M)   : 0, 6520823

gantt
    title Throughput Linux x64 (ASM) (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    master (7.289M)   : 0, 7289454
    benchmarks/2.9.0 (7.548M)   : 0, 7547683

    section No attack
    master (1.947M)   : 0, 1946652
    benchmarks/2.9.0 (3.158M)   : 0, 3158374

    section Attack
    master (1.575M)   : 0, 1574815
    benchmarks/2.9.0 (2.521M)   : 0, 2520552

    section Blocking
    master (3.280M)   : 0, 3279583

    section IAST default
    master (6.471M)   : 0, 6471414

    section IAST full
    master (5.779M)   : 0, 5779195

    section Base vuln
    master (0.951M)   : 0, 951315

    section IAST vuln
    master (0.880M)   : 0, 879518

andrewlock avatar Dec 04 '23 16:12 andrewlock

Benchmarks Report :snail:

Benchmarks for #4952 compared to master:

  • 4 benchmarks are faster, with geometric mean 1.180
  • 3 benchmarks are slower, with geometric mean 1.186
  • 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 :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 8.76μs 49ns 321ns 0.0312 0.0134 0 7.48 KB
master StartStopWithChild netcoreapp3.1 10.8μs 58ns 338ns 0.0312 0.0156 0 7.57 KB
master StartStopWithChild net472 17μs 26.1ns 97.6ns 1.33 0.353 0.12 7.95 KB
#4952 StartStopWithChild net6.0 8.74μs 41.7ns 208ns 0.0258 0.0129 0 7.48 KB
#4952 StartStopWithChild netcoreapp3.1 10.6μs 53.1ns 237ns 0.0305 0.0153 0 7.57 KB
#4952 StartStopWithChild net472 17.2μs 65.4ns 253ns 1.33 0.37 0.101 7.96 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 457μs 90ns 312ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 666μs 208ns 806ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 771μs 335ns 1.25μs 0.386 0 0 3.3 KB
#4952 WriteAndFlushEnrichedTraces net6.0 480μs 180ns 649ns 0 0 0 2.7 KB
#4952 WriteAndFlushEnrichedTraces netcoreapp3.1 626μs 292ns 1.13μs 0 0 0 2.7 KB
#4952 WriteAndFlushEnrichedTraces net472 813μs 162ns 585ns 0.406 0 0 3.3 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #4952

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑netcoreapp3.1 1.246 184.62 229.98

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 43.7μs 51.1ns 191ns 0.0216 0 0 1.77 KB
master AllCycleSimpleBody netcoreapp3.1 46.5μs 110ns 426ns 0 0 0 1.74 KB
master AllCycleSimpleBody net472 49.9μs 12.6ns 48.8ns 0.268 0 0 1.81 KB
master AllCycleMoreComplexBody net6.0 215μs 65.2ns 253ns 0.106 0 0 9.25 KB
master AllCycleMoreComplexBody netcoreapp3.1 225μs 190ns 736ns 0.112 0 0 9.14 KB
master AllCycleMoreComplexBody net472 238μs 40.9ns 153ns 1.44 0 0 9.32 KB
master ObjectExtractorSimpleBody net6.0 135ns 0.0487ns 0.182ns 0.00394 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 185ns 0.164ns 0.636ns 0.00371 0 0 272 B
master ObjectExtractorSimpleBody net472 151ns 0.0595ns 0.23ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 2.82μs 1.58ns 6.13ns 0.0533 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 3.64μs 1.25ns 4.85ns 0.0492 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 3.44μs 1.66ns 6.42ns 0.602 0.00514 0 3.8 KB
#4952 AllCycleSimpleBody net6.0 44.1μs 52.3ns 203ns 0.0222 0 0 1.77 KB
#4952 AllCycleSimpleBody netcoreapp3.1 46.5μs 50.8ns 197ns 0.0233 0 0 1.74 KB
#4952 AllCycleSimpleBody net472 50.2μs 18.1ns 70ns 0.27 0 0 1.81 KB
#4952 AllCycleMoreComplexBody net6.0 214μs 114ns 411ns 0 0 0 9.25 KB
#4952 AllCycleMoreComplexBody netcoreapp3.1 226μs 306ns 1.15μs 0.113 0 0 9.14 KB
#4952 AllCycleMoreComplexBody net472 238μs 108ns 419ns 1.43 0 0 9.32 KB
#4952 ObjectExtractorSimpleBody net6.0 137ns 0.0629ns 0.244ns 0.00394 0 0 280 B
#4952 ObjectExtractorSimpleBody netcoreapp3.1 230ns 0.0947ns 0.367ns 0.0037 0 0 272 B
#4952 ObjectExtractorSimpleBody net472 152ns 0.0995ns 0.385ns 0.0446 0 0 281 B
#4952 ObjectExtractorMoreComplexBody net6.0 2.8μs 1.38ns 4.96ns 0.0534 0 0 3.78 KB
#4952 ObjectExtractorMoreComplexBody netcoreapp3.1 3.77μs 1.26ns 4.73ns 0.049 0 0 3.69 KB
#4952 ObjectExtractorMoreComplexBody net472 3.42μs 1.2ns 4.65ns 0.602 0.00515 0 3.8 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #4952

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWaf(args: NestedMap (10))‑net6.0 1.117 48,662.29 54,362.78

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWaf(args=NestedMap (10)) net6.0 48.7μs 16.2ns 60.8ns 0.219 0 0 16.06 KB
master RunWaf(args=NestedMap (10)) netcoreapp3.1 69.8μs 394ns 2.61μs 0.214 0 0 16.06 KB
master RunWaf(args=NestedMap (10)) net472 93.6μs 114ns 395ns 2.52 0.0934 0 16.14 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 112μs 44.6ns 173ns 0.297 0 0 22.41 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 139μs 355ns 1.33μs 0.281 0 0 22.36 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net472 165μs 235ns 911ns 3.53 0.164 0 22.7 KB
master RunWaf(args=NestedMap (100)) net6.0 104μs 223ns 864ns 0.427 0 0 32.76 KB
master RunWaf(args=NestedMap (100)) netcoreapp3.1 124μs 300ns 1.04μs 0.438 0 0 33.33 KB
master RunWaf(args=NestedMap (100)) net472 182μs 119ns 459ns 5.28 0.364 0 33.67 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) net6.0 172μs 311ns 1.46μs 0.515 0 0 39.1 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) netcoreapp3.1 206μs 506ns 1.82μs 0.495 0 0 39.63 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) net472 266μs 1.17μs 4.54μs 6.29 0.513 0 40.23 KB
master RunWaf(args=NestedMap (20)) net6.0 105μs 568ns 3.41μs 0.419 0 0 32.18 KB
master RunWaf(args=NestedMap (20)) netcoreapp3.1 129μs 701ns 4.21μs 0.397 0 0 32.3 KB
master RunWaf(args=NestedMap (20)) net472 185μs 858ns 3.32μs 5.1 0.364 0 32.63 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 164μs 52.5ns 203ns 0.491 0 0 38.53 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 206μs 974ns 4.02μs 0.501 0 0 38.6 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net472 261μs 1.1μs 4.26μs 6.17 0.514 0 39.2 KB
#4952 RunWaf(args=NestedMap (10)) net6.0 53.6μs 293ns 1.76μs 0.218 0 0 16.06 KB
#4952 RunWaf(args=NestedMap (10)) netcoreapp3.1 68.9μs 383ns 2.79μs 0.194 0 0 16.06 KB
#4952 RunWaf(args=NestedMap (10)) net472 93.6μs 39.6ns 137ns 2.53 0.0937 0 16.14 KB
#4952 RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 114μs 61.1ns 237ns 0.299 0 0 22.41 KB
#4952 RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 132μs 605ns 2.34μs 0.274 0 0 22.36 KB
#4952 RunWafWithAttack(args=Neste(...)tack) [22]) net472 167μs 401ns 1.55μs 3.6 0.164 0 22.7 KB
#4952 RunWaf(args=NestedMap (100)) net6.0 103μs 87.5ns 339ns 0.463 0 0 32.76 KB
#4952 RunWaf(args=NestedMap (100)) netcoreapp3.1 126μs 386ns 1.45μs 0.384 0 0 33.33 KB
#4952 RunWaf(args=NestedMap (100)) net472 189μs 66.4ns 257ns 5.28 0.364 0 33.67 KB
#4952 RunWafWithAttack(args=Neste(...)tack) [23]) net6.0 166μs 54.8ns 205ns 0.494 0 0 39.1 KB
#4952 RunWafWithAttack(args=Neste(...)tack) [23]) netcoreapp3.1 210μs 898ns 5.16μs 0.518 0 0 39.63 KB
#4952 RunWafWithAttack(args=Neste(...)tack) [23]) net472 263μs 102ns 354ns 6.28 0.523 0 40.23 KB
#4952 RunWaf(args=NestedMap (20)) net6.0 106μs 40ns 150ns 0.423 0 0 32.18 KB
#4952 RunWaf(args=NestedMap (20)) netcoreapp3.1 136μs 534ns 2.07μs 0.382 0 0 32.3 KB
#4952 RunWaf(args=NestedMap (20)) net472 182μs 79.9ns 309ns 5.16 0.362 0 32.63 KB
#4952 RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 163μs 50.7ns 197ns 0.519 0 0 38.53 KB
#4952 RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 210μs 971ns 3.89μs 0.502 0 0 38.6 KB
#4952 RunWafWithAttack(args=Neste(...)tack) [22]) net472 268μs 110ns 413ns 6.15 0.512 0 39.2 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 171μs 114ns 442ns 0.171 0 0 18.25 KB
master SendRequest netcoreapp3.1 192μs 226ns 874ns 0.193 0 0 20.41 KB
master SendRequest net472 0.000876ns 0.000361ns 0.00125ns 0 0 0 0 b
#4952 SendRequest net6.0 176μs 914ns 4.48μs 0.174 0 0 18.25 KB
#4952 SendRequest netcoreapp3.1 195μs 364ns 1.41μs 0.194 0 0 20.41 KB
#4952 SendRequest net472 0.00109ns 0.000391ns 0.00146ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 545μs 639ns 2.21μs 0.541 0 0 41.74 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 659μs 1.2μs 4.65μs 0.324 0 0 41.58 KB
master WriteAndFlushEnrichedTraces net472 808μs 3.99μs 16.9μs 8.12 2.44 0.406 53.25 KB
#4952 WriteAndFlushEnrichedTraces net6.0 541μs 217ns 840ns 0.539 0 0 41.78 KB
#4952 WriteAndFlushEnrichedTraces netcoreapp3.1 642μs 794ns 3.07μs 0.342 0 0 41.74 KB
#4952 WriteAndFlushEnrichedTraces net472 819μs 3.16μs 12.2μs 8.12 2.44 0.406 53.25 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1.1μs 0.47ns 1.7ns 0.0104 0 0 768 B
master ExecuteNonQuery netcoreapp3.1 1.51μs 0.687ns 2.66ns 0.0104 0 0 768 B
master ExecuteNonQuery net472 1.77μs 0.829ns 3.1ns 0.116 0 0 730 B
#4952 ExecuteNonQuery net6.0 1.19μs 0.96ns 3.72ns 0.0107 0 0 768 B
#4952 ExecuteNonQuery netcoreapp3.1 1.49μs 0.64ns 2.48ns 0.0104 0 0 768 B
#4952 ExecuteNonQuery net472 1.75μs 1.52ns 5.47ns 0.116 0 0 730 B
Benchmarks.Trace.ElasticsearchBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.19μs 0.926ns 3.46ns 0.0131 0 0 936 B
master CallElasticsearch netcoreapp3.1 1.49μs 0.796ns 2.98ns 0.0122 0 0 936 B
master CallElasticsearch net472 2.49μs 1.08ns 4.2ns 0.151 0 0 955 B
master CallElasticsearchAsync net6.0 1.34μs 1.75ns 6.79ns 0.0128 0 0 912 B
master CallElasticsearchAsync netcoreapp3.1 1.64μs 0.557ns 2.08ns 0.0134 0 0 984 B
master CallElasticsearchAsync net472 2.6μs 0.806ns 3.02ns 0.16 0 0 1.01 KB
#4952 CallElasticsearch net6.0 1.24μs 1.69ns 6.53ns 0.013 0 0 936 B
#4952 CallElasticsearch netcoreapp3.1 1.48μs 0.645ns 2.5ns 0.012 0 0 936 B
#4952 CallElasticsearch net472 2.57μs 1.28ns 4.96ns 0.151 0 0 955 B
#4952 CallElasticsearchAsync net6.0 1.32μs 0.639ns 2.39ns 0.0125 0 0 912 B
#4952 CallElasticsearchAsync netcoreapp3.1 1.71μs 0.658ns 2.46ns 0.0128 0 0 984 B
#4952 CallElasticsearchAsync net472 2.7μs 1.3ns 4.86ns 0.16 0.00135 0 1.01 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.3μs 1.02ns 3.81ns 0.0124 0 0 912 B
master ExecuteAsync netcoreapp3.1 1.58μs 0.628ns 2.26ns 0.0121 0 0 912 B
master ExecuteAsync net472 1.94μs 0.964ns 3.61ns 0.139 0 0 875 B
#4952 ExecuteAsync net6.0 1.17μs 0.728ns 2.82ns 0.0129 0 0 912 B
#4952 ExecuteAsync netcoreapp3.1 1.6μs 0.632ns 2.45ns 0.0119 0 0 912 B
#4952 ExecuteAsync net472 1.84μs 1.05ns 3.92ns 0.139 0.00092 0 875 B
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 4.14μs 1.49ns 5.77ns 0.029 0 0 2.1 KB
master SendAsync netcoreapp3.1 4.86μs 1.2ns 4.33ns 0.0341 0 0 2.63 KB
master SendAsync net472 7.6μs 3.18ns 12.3ns 0.523 0.00382 0 3.31 KB
#4952 SendAsync net6.0 4.07μs 4.23ns 15.8ns 0.0303 0 0 2.1 KB
#4952 SendAsync netcoreapp3.1 4.91μs 2.1ns 7.88ns 0.0343 0 0 2.63 KB
#4952 SendAsync net472 7.67μs 5.43ns 20.3ns 0.522 0.00384 0 3.31 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark(parameters=Syste(...)ring] [48]) net6.0 61.7μs 843ns 8.43μs 0 0 0 43.44 KB
master StringConcatBenchmark(parameters=Syste(...)ring] [48]) netcoreapp3.1 61.4μs 907ns 9.07μs 0 0 0 42.64 KB
master StringConcatBenchmark(parameters=Syste(...)ring] [48]) net472 38.3μs 129ns 464ns 0 0 0 59.59 KB
master StringConcatAspectBenchmark(parameters=Syste(...)ring] [48]) net6.0 97.1μs 2.43μs 24.3μs 0 0 0 43.29 KB
master StringConcatAspectBenchmark(parameters=Syste(...)ring] [48]) netcoreapp3.1 101μs 2.92μs 29.2μs 0 0 0 42.64 KB
master StringConcatAspectBenchmark(parameters=Syste(...)ring] [48]) net472 62.5μs 201ns 725ns 0 0 0 57.34 KB
#4952 StringConcatBenchmark(parameters=Syste(...)ring] [48]) net6.0 63.9μs 875ns 8.67μs 0 0 0 43.44 KB
#4952 StringConcatBenchmark(parameters=Syste(...)ring] [48]) netcoreapp3.1 63.8μs 957ns 9.57μs 0 0 0 42.64 KB
#4952 StringConcatBenchmark(parameters=Syste(...)ring] [48]) net472 38μs 171ns 662ns 0 0 0 59.7 KB
#4952 StringConcatAspectBenchmark(parameters=Syste(...)ring] [48]) net6.0 103μs 2.65μs 26.5μs 0 0 0 43.29 KB
#4952 StringConcatAspectBenchmark(parameters=Syste(...)ring] [48]) netcoreapp3.1 71μs 298ns 1.11μs 0 0 0 42.64 KB
#4952 StringConcatAspectBenchmark(parameters=Syste(...)ring] [48]) net472 61.4μs 288ns 1.15μs 0 0 0 57.34 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 1.51μs 0.596ns 2.23ns 0.0219 0 0 1.57 KB
master EnrichedLog netcoreapp3.1 2.26μs 1.29ns 5ns 0.0214 0 0 1.57 KB
master EnrichedLog net472 2.64μs 2.51ns 9.73ns 0.237 0 0 1.5 KB
#4952 EnrichedLog net6.0 1.49μs 0.527ns 2.04ns 0.0224 0 0 1.57 KB
#4952 EnrichedLog netcoreapp3.1 2.19μs 0.663ns 2.48ns 0.0215 0 0 1.57 KB
#4952 EnrichedLog net472 2.51μs 2.72ns 10.2ns 0.238 0 0 1.5 KB
Benchmarks.Trace.Log4netBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 112μs 185ns 718ns 0 0 0 4.21 KB
master EnrichedLog netcoreapp3.1 117μs 131ns 473ns 0 0 0 4.21 KB
master EnrichedLog net472 149μs 103ns 401ns 0.665 0.222 0 4.39 KB
#4952 EnrichedLog net6.0 115μs 274ns 1.06μs 0.0575 0 0 4.21 KB
#4952 EnrichedLog netcoreapp3.1 118μs 166ns 642ns 0.0591 0 0 4.21 KB
#4952 EnrichedLog net472 147μs 106ns 397ns 0.659 0.22 0 4.39 KB
Benchmarks.Trace.NLogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.98μs 0.935ns 3.5ns 0.0297 0 0 2.13 KB
master EnrichedLog netcoreapp3.1 4.15μs 0.729ns 2.73ns 0.0291 0 0 2.13 KB
master EnrichedLog net472 4.78μs 3.09ns 12ns 0.309 0 0 1.95 KB
#4952 EnrichedLog net6.0 3.18μs 1.66ns 6.45ns 0.0289 0 0 2.13 KB
#4952 EnrichedLog netcoreapp3.1 4.19μs 1.04ns 4.02ns 0.0273 0 0 2.13 KB
#4952 EnrichedLog net472 4.84μs 3.09ns 12ns 0.309 0 0 1.95 KB
Benchmarks.Trace.RedisBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #4952

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.RedisBenchmark.SendReceive‑net6.0 1.119 1,409.92 1,260.46

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 1.41μs 0.893ns 3.46ns 0.0155 0 0 1.1 KB
master SendReceive netcoreapp3.1 1.69μs 1.28ns 4.94ns 0.0143 0 0 1.1 KB
master SendReceive net472 2.14μs 1.59ns 6.16ns 0.176 0 0 1.12 KB
#4952 SendReceive net6.0 1.26μs 0.987ns 3.82ns 0.0157 0 0 1.1 KB
#4952 SendReceive netcoreapp3.1 1.78μs 0.665ns 2.57ns 0.0151 0 0 1.1 KB
#4952 SendReceive net472 2.17μs 1.2ns 4.49ns 0.176 0 0 1.12 KB
Benchmarks.Trace.SerilogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.56μs 0.742ns 2.77ns 0.0205 0 0 1.53 KB
master EnrichedLog netcoreapp3.1 3.95μs 1.51ns 5.44ns 0.0198 0 0 1.58 KB
master EnrichedLog net472 4.43μs 1.03ns 3.87ns 0.312 0 0 1.97 KB
#4952 EnrichedLog net6.0 2.7μs 1.13ns 3.91ns 0.0218 0 0 1.53 KB
#4952 EnrichedLog netcoreapp3.1 3.86μs 1.38ns 5.35ns 0.0212 0 0 1.58 KB
#4952 EnrichedLog net472 4.19μs 1.93ns 7.47ns 0.312 0 0 1.97 KB
Benchmarks.Trace.SpanBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #4952

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 1.199 636.19 762.94

Faster :tada: in #4952

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 1.278 870.22 680.82
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 1.220 596.63 489.09

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 597ns 0.162ns 0.628ns 0.00752 0 0 536 B
master StartFinishSpan netcoreapp3.1 638ns 0.947ns 3.67ns 0.00725 0 0 536 B
master StartFinishSpan net472 870ns 0.196ns 0.761ns 0.0854 0 0 538 B
master StartFinishScope net6.0 576ns 0.377ns 1.46ns 0.00922 0 0 656 B
master StartFinishScope netcoreapp3.1 842ns 0.38ns 1.47ns 0.00903 0 0 656 B
master StartFinishScope net472 947ns 0.407ns 1.58ns 0.0979 0 0 618 B
#4952 StartFinishSpan net6.0 489ns 0.173ns 0.649ns 0.00751 0 0 536 B
#4952 StartFinishSpan netcoreapp3.1 763ns 0.417ns 1.62ns 0.00748 0 0 536 B
#4952 StartFinishSpan net472 681ns 0.374ns 1.45ns 0.0852 0 0 538 B
#4952 StartFinishScope net6.0 522ns 0.111ns 0.402ns 0.00927 0 0 656 B
#4952 StartFinishScope netcoreapp3.1 831ns 0.37ns 1.38ns 0.00914 0 0 656 B
#4952 StartFinishScope net472 1.01μs 0.524ns 2.03ns 0.0981 0 0 618 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #4952

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1 1.113 977.41 878.51

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 652ns 0.261ns 1.01ns 0.00913 0 0 656 B
master RunOnMethodBegin netcoreapp3.1 978ns 0.553ns 2.14ns 0.00881 0 0 656 B
master RunOnMethodBegin net472 1.14μs 0.698ns 2.7ns 0.0978 0 0 618 B
#4952 RunOnMethodBegin net6.0 650ns 0.315ns 1.18ns 0.00922 0 0 656 B
#4952 RunOnMethodBegin netcoreapp3.1 879ns 0.247ns 0.926ns 0.00886 0 0 656 B
#4952 RunOnMethodBegin net472 1.07μs 0.357ns 1.38ns 0.0982 0 0 618 B

andrewlock avatar Dec 04 '23 16:12 andrewlock