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

[ASM][ATO] user id collection on authenticated request #6431

Draft
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

anna-git
Copy link
Contributor

Summary of changes

Reason for change

Implementation details

Test coverage

Other details

Copy link
Contributor

github-actions bot commented Dec 12, 2024

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.

3 occurrences of :

+      _dd.appsec.fp.http.header: hdr-0000000100-3626b5f8-2-da57b738,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _dd.appsec.fp.session: ssn-7bcd1c9f---,

@datadog-ddstaging
Copy link

datadog-ddstaging bot commented Dec 12, 2024

Datadog Report

Branch report: anna/asm/userid-monitoring
Commit report: cb7e8a7
Test service: dd-trace-dotnet

❌ 364 Failed (0 Known Flaky), 461103 Passed, 3513 Skipped, 28h 9m 0.08s Total Time

❌ Failed Tests (364)

This report shows up to 5 failed tests.

  • TestAuthenticatedRequest - Datadog.Trace.Security.IntegrationTests.AspNetCore5AutoUserEventsAnonModeSecurityEnabled - Details

    Expand for error
     Results do not match.
     Differences:
     Received: Security.AspNetCore5AutoUserEvents.SecurityOn.anonmode-TestAuthenticatedRequest.received.txt
     Verified: Security.AspNetCore5AutoUserEvents.SecurityOn.anonmode-TestAuthenticatedRequest.verified.txt
     Received Content:
     [
       {
         TraceId: Id_1,
         SpanId: Id_2,
         Name: aspnet_core.request,
     ...
    
  • TestAuthenticatedRequest - Datadog.Trace.Security.IntegrationTests.AspNetCore5AutoUserEventsAnonModeSecurityEnabled - Details

    Expand for error
     Results do not match.
     Differences:
     Received: Security.AspNetCore5AutoUserEvents.SecurityOn.anonmode-TestAuthenticatedRequest.received.txt
     Verified: Security.AspNetCore5AutoUserEvents.SecurityOn.anonmode-TestAuthenticatedRequest.verified.txt
     Received Content:
     [
       {
         TraceId: Id_1,
         SpanId: Id_2,
         Name: aspnet_core.request,
     ...
    
  • TestAuthenticatedRequest - Datadog.Trace.Security.IntegrationTests.AspNetCore5AutoUserEventsAnonModeSecurityEnabled - Details

    Expand for error
     Results do not match.
     Differences:
     Received: Security.AspNetCore5AutoUserEvents.SecurityOn.anonmode-TestAuthenticatedRequest.received.txt
     Verified: Security.AspNetCore5AutoUserEvents.SecurityOn.anonmode-TestAuthenticatedRequest.verified.txt
     Received Content:
     [
       {
         TraceId: Id_1,
         SpanId: Id_2,
         Name: aspnet_core.request,
     ...
    
  • TestAuthenticatedRequest - Datadog.Trace.Security.IntegrationTests.AspNetCore5AutoUserEventsAnonModeSecurityEnabled - Details

    Expand for error
     Results do not match.
     Differences:
     Received: Security.AspNetCore5AutoUserEvents.SecurityOn.anonmode-TestAuthenticatedRequest.received.txt
     Verified: Security.AspNetCore5AutoUserEvents.SecurityOn.anonmode-TestAuthenticatedRequest.verified.txt
     Received Content:
     [
       {
         TraceId: Id_1,
         SpanId: Id_2,
         Name: aspnet_core.request,
     ...
    
  • TestAuthenticatedRequest - Datadog.Trace.Security.IntegrationTests.AspNetCore5AutoUserEventsAnonModeSecurityEnabled - Details

    Expand for error
     Results do not match.
     Differences:
     Received: Security.AspNetCore5AutoUserEvents.SecurityOn.anonmode-TestAuthenticatedRequest.received.txt
     Verified: Security.AspNetCore5AutoUserEvents.SecurityOn.anonmode-TestAuthenticatedRequest.verified.txt
     Received Content:
     [
       {
         TraceId: Id_1,
         SpanId: Id_2,
         Name: aspnet_core.request,
     ...
    

@andrewlock
Copy link
Member

andrewlock commented Dec 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 (6431) - mean (69ms)  : 66, 72
     .   : milestone, 69,
    master - mean (68ms)  : 65, 71
     .   : milestone, 68,

    section CallTarget+Inlining+NGEN
    This PR (6431) - mean (976ms)  : 951, 1000
     .   : milestone, 976,
    master - mean (979ms)  : 954, 1003
     .   : milestone, 979,

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

    section CallTarget+Inlining+NGEN
    This PR (6431) - mean (671ms)  : 657, 685
     .   : milestone, 671,
    master - mean (678ms)  : 663, 693
     .   : milestone, 678,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6431) - mean (90ms)  : 88, 92
     .   : milestone, 90,
    master - mean (91ms)  : 89, 93
     .   : milestone, 91,

    section CallTarget+Inlining+NGEN
    This PR (6431) - mean (630ms)  : 614, 646
     .   : milestone, 630,
    master - mean (633ms)  : 618, 647
     .   : milestone, 633,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6431) - mean (193ms)  : 189, 197
     .   : milestone, 193,
    master - mean (195ms)  : 190, 200
     .   : milestone, 195,

    section CallTarget+Inlining+NGEN
    This PR (6431) - mean (1,098ms)  : 1064, 1131
     .   : milestone, 1098,
    master - mean (1,099ms)  : 1071, 1127
     .   : milestone, 1099,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6431) - mean (279ms)  : 274, 283
     .   : milestone, 279,
    master - mean (278ms)  : 273, 283
     .   : milestone, 278,

    section CallTarget+Inlining+NGEN
    This PR (6431) - mean (867ms)  : 836, 897
     .   : milestone, 867,
    master - mean (876ms)  : 839, 912
     .   : milestone, 876,

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

    section CallTarget+Inlining+NGEN
    This PR (6431) - mean (850ms)  : 815, 885
     .   : milestone, 850,
    master - mean (853ms)  : 809, 896
     .   : milestone, 853,

Loading

@andrewlock
Copy link
Member

andrewlock commented Dec 12, 2024

Benchmarks Report for appsec 🐌

Benchmarks for #6431 compared to master:

  • 1 benchmarks are slower, with geometric mean 1.181
  • 7 benchmarks have more 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.Asm.AppSecBodyBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #6431

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑netcoreapp3.1 1.181 191.23 225.75

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 188μs 81.2ns 304ns 2.66 0 0 188.9 KB
master AllCycleSimpleBody netcoreapp3.1 274μs 205ns 793ns 2.6 0 0 196.23 KB
master AllCycleSimpleBody net472 250μs 89.3ns 322ns 35.8 2 0 225.95 KB
master AllCycleMoreComplexBody net6.0 188μs 85.6ns 331ns 2.65 0 0 192.41 KB
master AllCycleMoreComplexBody netcoreapp3.1 295μs 78.4ns 293ns 2.66 0 0 199.65 KB
master AllCycleMoreComplexBody net472 257μs 321ns 1.24μs 36.4 2.04 0 229.46 KB
master ObjectExtractorSimpleBody net6.0 138ns 0.102ns 0.367ns 0.00397 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 191ns 0.14ns 0.503ns 0.00376 0 0 272 B
master ObjectExtractorSimpleBody net472 163ns 0.159ns 0.617ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 2.93μs 1.54ns 5.97ns 0.0527 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 3.74μs 3.68ns 13.8ns 0.0506 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 3.65μs 1.99ns 7.46ns 0.602 0.00554 0 3.8 KB
#6431 AllCycleSimpleBody net6.0 206μs 144ns 519ns 2.61 0.105 0 188.69 KB
#6431 AllCycleSimpleBody netcoreapp3.1 294μs 155ns 579ns 2.63 0 0 196.02 KB
#6431 AllCycleSimpleBody net472 276μs 159ns 594ns 35.9 2.06 0 225.76 KB
#6431 AllCycleMoreComplexBody net6.0 208μs 124ns 464ns 2.7 0 0 192.19 KB
#6431 AllCycleMoreComplexBody netcoreapp3.1 314μs 144ns 540ns 2.67 0 0 199.43 KB
#6431 AllCycleMoreComplexBody net472 278μs 132ns 492ns 36.4 2.08 0 229.27 KB
#6431 ObjectExtractorSimpleBody net6.0 137ns 0.145ns 0.543ns 0.00394 0 0 280 B
#6431 ObjectExtractorSimpleBody netcoreapp3.1 226ns 0.155ns 0.602ns 0.00374 0 0 272 B
#6431 ObjectExtractorSimpleBody net472 160ns 0.169ns 0.654ns 0.0446 0 0 281 B
#6431 ObjectExtractorMoreComplexBody net6.0 2.91μs 2.51ns 9.4ns 0.0526 0 0 3.78 KB
#6431 ObjectExtractorMoreComplexBody netcoreapp3.1 3.82μs 2.31ns 8.95ns 0.0497 0 0 3.69 KB
#6431 ObjectExtractorMoreComplexBody net472 3.71μs 3.74ns 14ns 0.603 0.00555 0 3.8 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 36.9μs 30.9ns 111ns 0.455 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 54μs 20.3ns 76ns 0.43 0 0 32.4 KB
master EncodeArgs net472 66.2μs 31.1ns 116ns 5.14 0.0663 0 32.5 KB
master EncodeLegacyArgs net6.0 74.2μs 55.5ns 215ns 0 0 0 2.14 KB
master EncodeLegacyArgs netcoreapp3.1 108μs 290ns 1.12μs 0 0 0 2.14 KB
master EncodeLegacyArgs net472 155μs 117ns 452ns 0.31 0 0 2.15 KB
#6431 EncodeArgs net6.0 36.4μs 31.4ns 122ns 0.455 0 0 32.4 KB
#6431 EncodeArgs netcoreapp3.1 53.9μs 18.1ns 67.6ns 0.432 0 0 32.4 KB
#6431 EncodeArgs net472 67.3μs 36.1ns 135ns 5.14 0.0672 0 32.5 KB
#6431 EncodeLegacyArgs net6.0 73.4μs 22ns 85.2ns 0.0368 0 0 2.14 KB
#6431 EncodeLegacyArgs netcoreapp3.1 104μs 128ns 497ns 0 0 0 2.14 KB
#6431 EncodeLegacyArgs net472 153μs 87.3ns 338ns 0.306 0 0 2.15 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #6431

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑netcoreapp3.1 1.46 KB 1.53 KB 72 B 4.95%
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑net472 1.48 KB 1.56 KB 73 B 4.92%
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑net6.0 1.47 KB 1.54 KB 72 B 4.89%
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑netcoreapp3.1 2.39 KB 2.47 KB 73 B 3.05%
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑net472 2.46 KB 2.53 KB 73 B 2.97%
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑net6.0 2.44 KB 2.51 KB 72 B 2.95%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 175μs 69.4ns 269ns 0 0 0 2.44 KB
master RunWafRealisticBenchmark netcoreapp3.1 185μs 267ns 1.03μs 0 0 0 2.39 KB
master RunWafRealisticBenchmark net472 199μs 69.7ns 270ns 0.299 0 0 2.46 KB
master RunWafRealisticBenchmarkWithAttack net6.0 115μs 94.6ns 354ns 0 0 0 1.47 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 123μs 114ns 442ns 0 0 0 1.46 KB
master RunWafRealisticBenchmarkWithAttack net472 134μs 120ns 465ns 0.201 0 0 1.48 KB
#6431 RunWafRealisticBenchmark net6.0 173μs 106ns 409ns 0 0 0 2.51 KB
#6431 RunWafRealisticBenchmark netcoreapp3.1 186μs 144ns 540ns 0 0 0 2.47 KB
#6431 RunWafRealisticBenchmark net472 200μs 54.8ns 205ns 0.399 0 0 2.53 KB
#6431 RunWafRealisticBenchmarkWithAttack net6.0 115μs 158ns 613ns 0 0 0 1.54 KB
#6431 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 123μs 145ns 544ns 0 0 0 1.53 KB
#6431 RunWafRealisticBenchmarkWithAttack net472 132μs 60.4ns 234ns 0.197 0 0 1.56 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #6431

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 59.07 KB 62.02 KB 2.95 KB 5.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 59.4μs 779ns 7.79μs 0 0 0 43.44 KB
master StringConcatBenchmark netcoreapp3.1 53.9μs 182ns 657ns 0 0 0 42.64 KB
master StringConcatBenchmark net472 37.6μs 99.8ns 374ns 0 0 0 59.07 KB
master StringConcatAspectBenchmark net6.0 313μs 1.73μs 9.93μs 0 0 0 255.5 KB
master StringConcatAspectBenchmark netcoreapp3.1 355μs 1.93μs 11.6μs 0 0 0 255.51 KB
master StringConcatAspectBenchmark net472 285μs 7.11μs 69μs 0 0 0 278.53 KB
#6431 StringConcatBenchmark net6.0 57μs 688ns 6.84μs 0 0 0 43.44 KB
#6431 StringConcatBenchmark netcoreapp3.1 60.3μs 858ns 8.49μs 0 0 0 42.64 KB
#6431 StringConcatBenchmark net472 36.8μs 107ns 386ns 0 0 0 62.02 KB
#6431 StringConcatAspectBenchmark net6.0 321μs 1.83μs 13.3μs 0 0 0 255.54 KB
#6431 StringConcatAspectBenchmark netcoreapp3.1 346μs 1.9μs 17.1μs 0 0 0 255.95 KB
#6431 StringConcatAspectBenchmark net472 266μs 4.8μs 46μs 0 0 0 278.53 KB

@andrewlock
Copy link
Member

Throughput/Crank Report ⚡

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 (6431) (11.158M)   : 0, 11158228
    master (11.434M)   : 0, 11433823
    benchmarks/2.9.0 (11.033M)   : 0, 11032866

    section Automatic
    This PR (6431) (7.318M)   : 0, 7318390
    master (7.329M)   : 0, 7329326
    benchmarks/2.9.0 (7.786M)   : 0, 7785853

    section Trace stats
    master (7.611M)   : 0, 7611113

    section Manual
    master (11.108M)   : 0, 11107912

    section Manual + Automatic
    This PR (6431) (6.842M)   : 0, 6842127
    master (6.845M)   : 0, 6844945

    section DD_TRACE_ENABLED=0
    master (10.329M)   : 0, 10328733

Loading
gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (6431) (9.512M)   : 0, 9511726
    master (9.534M)   : 0, 9533585
    benchmarks/2.9.0 (9.495M)   : 0, 9494821

    section Automatic
    This PR (6431) (6.335M)   : 0, 6334952
    master (6.293M)   : 0, 6293263

    section Trace stats
    master (6.541M)   : 0, 6541247

    section Manual
    master (9.502M)   : 0, 9502053

    section Manual + Automatic
    This PR (6431) (5.936M)   : 0, 5936063
    master (5.976M)   : 0, 5976365

    section DD_TRACE_ENABLED=0
    master (8.806M)   : 0, 8806055

Loading
gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (6431) (9.679M)   : 0, 9678866
    master (9.968M)   : 0, 9968345
    benchmarks/2.9.0 (10.020M)   : 0, 10019592

    section Automatic
    This PR (6431) (6.254M)   : 0, 6254041
    master (6.506M)   : 0, 6506205
    benchmarks/2.9.0 (7.255M)   : 0, 7255257

    section Trace stats
    master (7.120M)   : 0, 7119839

    section Manual
    master (10.011M)   : 0, 10010780

    section Manual + Automatic
    This PR (6431) (5.825M)   : 0, 5825023
    master (5.923M)   : 0, 5922704

    section DD_TRACE_ENABLED=0
    master (9.290M)   : 0, 9290361

Loading

@andrewlock
Copy link
Member

andrewlock commented Dec 12, 2024

Benchmarks Report for tracer 🐌

Benchmarks for #6431 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.191
  • 3 benchmarks are slower, with geometric mean 1.145
  • 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.15μs 45.7ns 306ns 0.0198 0.00794 0 5.61 KB
master StartStopWithChild netcoreapp3.1 10.3μs 56.5ns 348ns 0.0253 0.0101 0 5.8 KB
master StartStopWithChild net472 16.3μs 40.8ns 158ns 1.03 0.298 0.0968 6.22 KB
#6431 StartStopWithChild net6.0 8.05μs 45.8ns 327ns 0.0202 0.00807 0 5.61 KB
#6431 StartStopWithChild netcoreapp3.1 10μs 54.1ns 315ns 0.0149 0.00496 0 5.81 KB
#6431 StartStopWithChild net472 16.4μs 33.1ns 128ns 1.03 0.3 0.0973 6.21 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 480μs 411ns 1.59μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 659μs 190ns 712ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 855μs 573ns 2.14μs 0.428 0 0 3.3 KB
#6431 WriteAndFlushEnrichedTraces net6.0 482μs 310ns 1.2μs 0 0 0 2.7 KB
#6431 WriteAndFlushEnrichedTraces netcoreapp3.1 644μs 592ns 2.22μs 0 0 0 2.7 KB
#6431 WriteAndFlushEnrichedTraces net472 861μs 798ns 2.76μs 0.431 0 0 3.3 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 157μs 1.01μs 10.1μs 0.147 0 0 14.47 KB
master SendRequest netcoreapp3.1 183μs 1.15μs 11.2μs 0.192 0 0 17.27 KB
master SendRequest net472 0.00354ns 0.00107ns 0.00414ns 0 0 0 0 b
#6431 SendRequest net6.0 171μs 1.38μs 13.5μs 0.18 0 0 14.47 KB
#6431 SendRequest netcoreapp3.1 190μs 1.46μs 14.5μs 0.168 0 0 17.27 KB
#6431 SendRequest net472 0.00447ns 0.00154ns 0.00597ns 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 562μs 2.8μs 15.1μs 0.556 0 0 41.67 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 700μs 3.79μs 26.8μs 0.44 0 0 41.96 KB
master WriteAndFlushEnrichedTraces net472 837μs 3.62μs 16.6μs 8.33 2.5 0.417 53.26 KB
#6431 WriteAndFlushEnrichedTraces net6.0 603μs 3.46μs 26.6μs 0.714 0 0 41.65 KB
#6431 WriteAndFlushEnrichedTraces netcoreapp3.1 691μs 3.87μs 24.5μs 0.355 0 0 41.84 KB
#6431 WriteAndFlushEnrichedTraces net472 855μs 4.29μs 20.1μs 8.22 2.47 0.411 53.26 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.34μs 0.918ns 3.31ns 0.014 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 1.82μs 1.97ns 7.62ns 0.0136 0 0 1.02 KB
master ExecuteNonQuery net472 2.09μs 2.62ns 9.81ns 0.157 0.00104 0 987 B
#6431 ExecuteNonQuery net6.0 1.31μs 1.08ns 4.06ns 0.0141 0 0 1.02 KB
#6431 ExecuteNonQuery netcoreapp3.1 1.84μs 2.83ns 11ns 0.0138 0 0 1.02 KB
#6431 ExecuteNonQuery net472 2.18μs 2.82ns 10.9ns 0.156 0.00108 0 987 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.28μs 0.51ns 1.91ns 0.0135 0 0 976 B
master CallElasticsearch netcoreapp3.1 1.61μs 1.25ns 4.84ns 0.0129 0 0 976 B
master CallElasticsearch net472 2.54μs 2.54ns 9.83ns 0.157 0 0 995 B
master CallElasticsearchAsync net6.0 1.3μs 0.834ns 3.12ns 0.013 0 0 952 B
master CallElasticsearchAsync netcoreapp3.1 1.68μs 1.93ns 7.48ns 0.0134 0 0 1.02 KB
master CallElasticsearchAsync net472 2.62μs 2.87ns 10.7ns 0.166 0 0 1.05 KB
#6431 CallElasticsearch net6.0 1.28μs 0.511ns 1.91ns 0.0136 0 0 976 B
#6431 CallElasticsearch netcoreapp3.1 1.52μs 1.31ns 4.9ns 0.0128 0 0 976 B
#6431 CallElasticsearch net472 2.57μs 3.51ns 13.6ns 0.157 0 0 995 B
#6431 CallElasticsearchAsync net6.0 1.39μs 0.706ns 2.64ns 0.0134 0 0 952 B
#6431 CallElasticsearchAsync netcoreapp3.1 1.75μs 1.05ns 4.05ns 0.014 0 0 1.02 KB
#6431 CallElasticsearchAsync net472 2.67μs 2.42ns 9.37ns 0.167 0 0 1.05 KB
Benchmarks.Trace.GraphQLBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #6431

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑netcoreapp3.1 1.119 1,556.98 1,742.94

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.31μs 3.34ns 12.5ns 0.0131 0 0 952 B
master ExecuteAsync netcoreapp3.1 1.56μs 1.35ns 4.86ns 0.0124 0 0 952 B
master ExecuteAsync net472 1.81μs 0.341ns 1.23ns 0.145 0 0 915 B
#6431 ExecuteAsync net6.0 1.37μs 1ns 3.87ns 0.0131 0 0 952 B
#6431 ExecuteAsync netcoreapp3.1 1.74μs 0.61ns 2.28ns 0.0122 0 0 952 B
#6431 ExecuteAsync net472 1.75μs 0.877ns 3.28ns 0.145 0 0 915 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.46μs 1.75ns 6.77ns 0.031 0 0 2.31 KB
master SendAsync netcoreapp3.1 5.25μs 2.15ns 8.33ns 0.0369 0 0 2.85 KB
master SendAsync net472 7.22μs 1.16ns 4.5ns 0.493 0 0 3.12 KB
#6431 SendAsync net6.0 4.38μs 1.3ns 4.86ns 0.0308 0 0 2.31 KB
#6431 SendAsync netcoreapp3.1 5.29μs 2.45ns 9.17ns 0.0396 0 0 2.85 KB
#6431 SendAsync net472 7.24μs 2.11ns 8.18ns 0.495 0 0 3.12 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.44μs 0.662ns 2.48ns 0.0232 0 0 1.64 KB
master EnrichedLog netcoreapp3.1 2.36μs 1.04ns 3.88ns 0.0212 0 0 1.64 KB
master EnrichedLog net472 2.8μs 1.18ns 4.57ns 0.248 0 0 1.57 KB
#6431 EnrichedLog net6.0 1.48μs 0.715ns 2.77ns 0.023 0 0 1.64 KB
#6431 EnrichedLog netcoreapp3.1 2.34μs 0.556ns 2.08ns 0.0222 0 0 1.64 KB
#6431 EnrichedLog net472 2.67μs 2.4ns 9.28ns 0.249 0 0 1.57 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 117μs 191ns 739ns 0.0586 0 0 4.28 KB
master EnrichedLog netcoreapp3.1 122μs 210ns 757ns 0 0 0 4.28 KB
master EnrichedLog net472 153μs 77.9ns 281ns 0.692 0.231 0 4.46 KB
#6431 EnrichedLog net6.0 117μs 177ns 684ns 0.0588 0 0 4.28 KB
#6431 EnrichedLog netcoreapp3.1 122μs 195ns 755ns 0 0 0 4.28 KB
#6431 EnrichedLog net472 153μs 112ns 420ns 0.686 0.229 0 4.46 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.92μs 0.994ns 3.85ns 0.0307 0 0 2.2 KB
master EnrichedLog netcoreapp3.1 4.39μs 2.02ns 7.82ns 0.0306 0 0 2.2 KB
master EnrichedLog net472 4.9μs 0.713ns 2.57ns 0.319 0 0 2.02 KB
#6431 EnrichedLog net6.0 2.8μs 1.69ns 6.54ns 0.0308 0 0 2.2 KB
#6431 EnrichedLog netcoreapp3.1 4.33μs 2.95ns 11.4ns 0.0304 0 0 2.2 KB
#6431 EnrichedLog net472 4.91μs 1.25ns 4.84ns 0.32 0 0 2.02 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.44μs 0.62ns 2.4ns 0.0159 0 0 1.14 KB
master SendReceive netcoreapp3.1 1.83μs 1.79ns 6.93ns 0.0156 0 0 1.14 KB
master SendReceive net472 2.11μs 1.45ns 5.43ns 0.183 0 0 1.16 KB
#6431 SendReceive net6.0 1.35μs 0.58ns 2.25ns 0.0162 0 0 1.14 KB
#6431 SendReceive netcoreapp3.1 1.79μs 1.13ns 4.38ns 0.0152 0 0 1.14 KB
#6431 SendReceive net472 2.05μs 1.57ns 6.09ns 0.183 0 0 1.16 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.81μs 0.832ns 3.22ns 0.0224 0 0 1.6 KB
master EnrichedLog netcoreapp3.1 3.91μs 1.98ns 7.65ns 0.0215 0 0 1.65 KB
master EnrichedLog net472 4.4μs 3.23ns 12.1ns 0.322 0 0 2.04 KB
#6431 EnrichedLog net6.0 2.64μs 0.883ns 3.42ns 0.0224 0 0 1.6 KB
#6431 EnrichedLog netcoreapp3.1 3.9μs 2.95ns 11.4ns 0.0212 0 0 1.65 KB
#6431 EnrichedLog net472 4.28μs 5.07ns 19.6ns 0.322 0 0 2.04 KB
Benchmarks.Trace.SpanBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #6431

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 1.191 557.92 468.53

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 431ns 0.455ns 1.76ns 0.00811 0 0 576 B
master StartFinishSpan netcoreapp3.1 593ns 0.48ns 1.79ns 0.00793 0 0 576 B
master StartFinishSpan net472 743ns 0.662ns 2.48ns 0.0915 0 0 578 B
master StartFinishScope net6.0 558ns 0.323ns 1.25ns 0.0097 0 0 696 B
master StartFinishScope netcoreapp3.1 679ns 0.428ns 1.6ns 0.00946 0 0 696 B
master StartFinishScope net472 872ns 1.11ns 4.31ns 0.104 0 0 658 B
#6431 StartFinishSpan net6.0 412ns 0.324ns 1.26ns 0.00809 0 0 576 B
#6431 StartFinishSpan netcoreapp3.1 611ns 0.354ns 1.37ns 0.00767 0 0 576 B
#6431 StartFinishSpan net472 701ns 0.52ns 2.01ns 0.0918 0 0 578 B
#6431 StartFinishScope net6.0 469ns 0.407ns 1.52ns 0.00991 0 0 696 B
#6431 StartFinishScope netcoreapp3.1 686ns 0.538ns 2.08ns 0.00965 0 0 696 B
#6431 StartFinishScope net472 926ns 1.6ns 6.22ns 0.104 0 0 658 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #6431

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0 1.194 582.30 695.27
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1 1.123 863.10 969.05

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 582ns 0.426ns 1.65ns 0.00985 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 863ns 0.584ns 2.26ns 0.00926 0 0 696 B
master RunOnMethodBegin net472 1.1μs 1.16ns 4.48ns 0.104 0 0 658 B
#6431 RunOnMethodBegin net6.0 696ns 0.398ns 1.54ns 0.00974 0 0 696 B
#6431 RunOnMethodBegin netcoreapp3.1 968ns 0.872ns 3.38ns 0.0092 0 0 696 B
#6431 RunOnMethodBegin net472 1.19μs 0.826ns 3.2ns 0.105 0 0 658 B

@anna-git anna-git force-pushed the anna/asm/userid-monitoring branch from 6785e01 to b164bc8 Compare December 24, 2024 16:16
@anna-git anna-git force-pushed the anna/asm/userid-monitoring branch from 473f3df to b2453a7 Compare December 26, 2024 12:47
@anna-git anna-git force-pushed the anna/asm/userid-monitoring branch from cab8f96 to 10a0655 Compare December 26, 2024 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants