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] Standalone Billing (part 2: Propagation) #5743

Merged
merged 5 commits into from
Jul 17, 2024

Conversation

e-n-0
Copy link
Member

@e-n-0 e-n-0 commented Jun 26, 2024

Summary of changes

Part 2 of the implementation of Standalone ASM billing.
Part 1 was #5565

This PR adds the propagated span tag _dd.p.appsec: 1 allowing to propagate to downstream services the information that the current distributed trace is containing at least one ASM security event.

Test coverage

This fully pass the system tests for ASM Standalone.

@e-n-0 e-n-0 force-pushed the flavien/asm/asm/standalone-billing-part2 branch from 1838696 to 1b69b2b Compare June 26, 2024 13:39
@datadog-ddstaging
Copy link

datadog-ddstaging bot commented Jun 26, 2024

Datadog Report

Branch report: flavien/asm/asm/standalone-billing-part2
Commit report: c444a73
Test service: dd-trace-dotnet

✅ 0 Failed, 347142 Passed, 1790 Skipped, 14h 48m 48.13s Total Time

@e-n-0 e-n-0 force-pushed the flavien/asm/asm/standalone-billing-part2 branch from 1b69b2b to 39278c7 Compare June 27, 2024 11:44
@andrewlock
Copy link
Member

andrewlock commented Jun 27, 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 (5743) - mean (75ms)  : 65, 85
     .   : milestone, 75,
    master - mean (74ms)  : 67, 81
     .   : milestone, 74,

    section CallTarget+Inlining+NGEN
    This PR (5743) - mean (1,039ms)  : 1015, 1063
     .   : milestone, 1039,
    master - mean (1,040ms)  : 1019, 1060
     .   : milestone, 1040,

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

    section CallTarget+Inlining+NGEN
    This PR (5743) - mean (728ms)  : 702, 753
     .   : milestone, 728,
    master - mean (724ms)  : 704, 745
     .   : milestone, 724,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5743) - mean (94ms)  : 90, 98
     .   : milestone, 94,
    master - mean (94ms)  : 91, 97
     .   : milestone, 94,

    section CallTarget+Inlining+NGEN
    This PR (5743) - mean (685ms)  : 661, 709
     .   : milestone, 685,
    master - mean (678ms)  : 656, 700
     .   : milestone, 678,

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

    section CallTarget+Inlining+NGEN
    This PR (5743) - mean (1,136ms)  : 1110, 1162
     .   : milestone, 1136,
    master - mean (1,137ms)  : 1111, 1163
     .   : milestone, 1137,

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

    section CallTarget+Inlining+NGEN
    This PR (5743) - mean (912ms)  : 891, 933
     .   : milestone, 912,
    master - mean (911ms)  : 882, 939
     .   : milestone, 911,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5743) - mean (265ms)  : 259, 272
     .   : milestone, 265,
    master - mean (264ms)  : 261, 268
     .   : milestone, 264,

    section CallTarget+Inlining+NGEN
    This PR (5743) - mean (888ms)  : 862, 913
     .   : milestone, 888,
    master - mean (892ms)  : 865, 920
     .   : milestone, 892,

Loading

@andrewlock
Copy link
Member

andrewlock commented Jun 27, 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 (5743) (11.459M)   : 0, 11458753
    master (11.744M)   : 0, 11744450
    benchmarks/2.9.0 (11.793M)   : 0, 11792634

    section Automatic
    This PR (5743) (7.671M)   : 0, 7670553
    master (7.833M)   : 0, 7832972
    benchmarks/2.9.0 (8.209M)   : 0, 8209122

    section Trace stats
    master (8.203M)   : 0, 8202879

    section Manual
    This PR (5743) (9.621M)   : 0, 9620973
    master (10.106M)   : 0, 10105512

    section Manual + Automatic
    This PR (5743) (7.093M)   : crit ,0, 7093030
    master (7.477M)   : 0, 7477218

    section Version Conflict
    master (6.559M)   : 0, 6558558

Loading
gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (5743) (9.293M)   : 0, 9292584
    master (9.421M)   : 0, 9420811

    section Automatic
    This PR (5743) (6.600M)   : 0, 6599992
    master (6.585M)   : 0, 6584615

    section Trace stats
    master (6.804M)   : 0, 6804437

    section Manual
    This PR (5743) (8.350M)   : 0, 8349554
    master (8.071M)   : 0, 8071012

    section Manual + Automatic
    This PR (5743) (6.178M)   : 0, 6177779
    master (6.108M)   : 0, 6107645

    section Version Conflict
    master (5.506M)   : 0, 5505834

Loading
gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (5743) (10.210M)   : 0, 10210017
    benchmarks/2.9.0 (10.296M)   : 0, 10295769

    section Automatic
    This PR (5743) (7.217M)   : 0, 7217120
    benchmarks/2.9.0 (7.267M)   : 0, 7266503

    section Manual
    This PR (5743) (8.925M)   : 0, 8924910

    section Manual + Automatic
    This PR (5743) (6.982M)   : 0, 6981895

Loading

@andrewlock
Copy link
Member

andrewlock commented Jun 27, 2024

Benchmarks Report for tracer 🐌

Benchmarks for #5743 compared to master:

  • 1 benchmarks are slower, with geometric mean 1.244
  • 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 7.78μs 43.5ns 285ns 0.0157 0.00786 0 5.43 KB
master StartStopWithChild netcoreapp3.1 9.89μs 54.8ns 333ns 0.0242 0.0145 0.00484 5.61 KB
master StartStopWithChild net472 16.8μs 67.8ns 254ns 1.02 0.31 0.1 6.07 KB
#5743 StartStopWithChild net6.0 7.74μs 44.4ns 323ns 0.0146 0.00728 0 5.43 KB
#5743 StartStopWithChild netcoreapp3.1 10.2μs 54.7ns 314ns 0.0156 0.00519 0 5.62 KB
#5743 StartStopWithChild net472 17.1μs 53.3ns 206ns 1.02 0.304 0.0928 6.07 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 479μs 865ns 3.35μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 659μs 301ns 1.16μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 833μs 223ns 772ns 0.414 0 0 3.3 KB
#5743 WriteAndFlushEnrichedTraces net6.0 473μs 164ns 635ns 0 0 0 2.7 KB
#5743 WriteAndFlushEnrichedTraces netcoreapp3.1 631μs 228ns 883ns 0 0 0 2.7 KB
#5743 WriteAndFlushEnrichedTraces net472 840μs 565ns 2.19μs 0.419 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 170μs 212ns 822ns 0.253 0 0 18.45 KB
master SendRequest netcoreapp3.1 193μs 390ns 1.51μs 0.192 0 0 20.61 KB
master SendRequest net472 0.00667ns 0.00199ns 0.00771ns 0 0 0 0 b
#5743 SendRequest net6.0 172μs 286ns 1.11μs 0.171 0 0 18.45 KB
#5743 SendRequest netcoreapp3.1 193μs 426ns 1.65μs 0.192 0 0 20.61 KB
#5743 SendRequest net472 0.000335ns 0.000166ns 0.000597ns 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 543μs 2.62μs 10.1μs 0.558 0 0 41.44 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 649μs 1.42μs 5.48μs 0.324 0 0 41.83 KB
master WriteAndFlushEnrichedTraces net472 848μs 3.45μs 13.3μs 8.28 2.48 0.414 53.24 KB
#5743 WriteAndFlushEnrichedTraces net6.0 553μs 391ns 1.46μs 0.534 0 0 41.62 KB
#5743 WriteAndFlushEnrichedTraces netcoreapp3.1 642μs 809ns 2.92μs 0.319 0 0 41.7 KB
#5743 WriteAndFlushEnrichedTraces net472 844μs 3.24μs 12.6μs 8.13 2.57 0.428 53.22 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.19μs 0.495ns 1.92ns 0.0143 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 1.71μs 1.2ns 4.64ns 0.0136 0 0 1.02 KB
master ExecuteNonQuery net472 1.98μs 1.37ns 5.29ns 0.156 0 0 987 B
#5743 ExecuteNonQuery net6.0 1.2μs 0.64ns 2.48ns 0.0143 0 0 1.02 KB
#5743 ExecuteNonQuery netcoreapp3.1 1.77μs 1.07ns 4ns 0.0135 0 0 1.02 KB
#5743 ExecuteNonQuery net472 2.01μs 2.06ns 8ns 0.156 0 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.13μs 0.313ns 1.17ns 0.0137 0 0 976 B
master CallElasticsearch netcoreapp3.1 1.58μs 0.538ns 2.01ns 0.0134 0 0 976 B
master CallElasticsearch net472 2.54μs 1.12ns 4.34ns 0.158 0 0 995 B
master CallElasticsearchAsync net6.0 1.35μs 0.566ns 2.12ns 0.0131 0 0 952 B
master CallElasticsearchAsync netcoreapp3.1 1.65μs 0.695ns 2.51ns 0.014 0 0 1.02 KB
master CallElasticsearchAsync net472 2.58μs 1.52ns 5.89ns 0.167 0 0 1.05 KB
#5743 CallElasticsearch net6.0 1.15μs 0.674ns 2.52ns 0.0139 0 0 976 B
#5743 CallElasticsearch netcoreapp3.1 1.48μs 0.635ns 2.2ns 0.0133 0 0 976 B
#5743 CallElasticsearch net472 2.53μs 1.97ns 7.64ns 0.158 0 0 995 B
#5743 CallElasticsearchAsync net6.0 1.26μs 0.443ns 1.72ns 0.0133 0 0 952 B
#5743 CallElasticsearchAsync netcoreapp3.1 1.58μs 0.646ns 2.33ns 0.0135 0 0 1.02 KB
#5743 CallElasticsearchAsync net472 2.67μs 2.35ns 9.09ns 0.166 0.00133 0 1.05 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.441ns 1.71ns 0.0134 0 0 952 B
master ExecuteAsync netcoreapp3.1 1.58μs 4.67ns 18.1ns 0.0125 0 0 952 B
master ExecuteAsync net472 1.81μs 0.899ns 3.48ns 0.145 0.000909 0 915 B
#5743 ExecuteAsync net6.0 1.27μs 0.258ns 0.93ns 0.0132 0 0 952 B
#5743 ExecuteAsync netcoreapp3.1 1.61μs 0.408ns 1.53ns 0.0126 0 0 952 B
#5743 ExecuteAsync net472 1.76μs 0.957ns 3.71ns 0.145 0.000878 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.28μs 2.08ns 7.78ns 0.03 0 0 2.22 KB
master SendAsync netcoreapp3.1 5.06μs 3.65ns 14.1ns 0.0353 0 0 2.76 KB
master SendAsync net472 7.78μs 1.81ns 7ns 0.499 0 0 3.15 KB
#5743 SendAsync net6.0 4.3μs 1.22ns 4.56ns 0.0302 0 0 2.22 KB
#5743 SendAsync netcoreapp3.1 5.21μs 1.89ns 7.32ns 0.0364 0 0 2.76 KB
#5743 SendAsync net472 7.83μs 1.26ns 4.88ns 0.498 0 0 3.15 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.51μs 0.651ns 2.44ns 0.0231 0 0 1.64 KB
master EnrichedLog netcoreapp3.1 2.28μs 1.1ns 4.13ns 0.0216 0 0 1.64 KB
master EnrichedLog net472 2.59μs 1.21ns 4.68ns 0.249 0 0 1.57 KB
#5743 EnrichedLog net6.0 1.53μs 4.94ns 19.1ns 0.0229 0 0 1.64 KB
#5743 EnrichedLog netcoreapp3.1 2.32μs 1.71ns 6.16ns 0.022 0 0 1.64 KB
#5743 EnrichedLog net472 2.62μs 2.61ns 10.1ns 0.25 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 114μs 188ns 729ns 0.0567 0 0 4.28 KB
master EnrichedLog netcoreapp3.1 119μs 115ns 431ns 0 0 0 4.28 KB
master EnrichedLog net472 152μs 181ns 702ns 0.678 0.226 0 4.46 KB
#5743 EnrichedLog net6.0 115μs 57.1ns 221ns 0.0575 0 0 4.28 KB
#5743 EnrichedLog netcoreapp3.1 120μs 116ns 434ns 0.0595 0 0 4.28 KB
#5743 EnrichedLog net472 150μs 73.8ns 286ns 0.676 0.225 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 3.04μs 1.11ns 4.3ns 0.0305 0 0 2.2 KB
master EnrichedLog netcoreapp3.1 4.23μs 1.16ns 4.49ns 0.0298 0 0 2.2 KB
master EnrichedLog net472 4.91μs 1.01ns 3.63ns 0.32 0 0 2.02 KB
#5743 EnrichedLog net6.0 2.91μs 0.851ns 3.3ns 0.0305 0 0 2.2 KB
#5743 EnrichedLog netcoreapp3.1 4.31μs 1.4ns 5.23ns 0.0302 0 0 2.2 KB
#5743 EnrichedLog net472 4.8μs 0.806ns 3.02ns 0.319 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.26μs 0.817ns 3.16ns 0.0157 0 0 1.14 KB
master SendReceive netcoreapp3.1 1.73μs 1.02ns 3.94ns 0.0157 0 0 1.14 KB
master SendReceive net472 2.17μs 0.899ns 3.37ns 0.183 0 0 1.16 KB
#5743 SendReceive net6.0 1.26μs 1.47ns 5.68ns 0.0157 0 0 1.14 KB
#5743 SendReceive netcoreapp3.1 1.78μs 0.868ns 3.36ns 0.0152 0 0 1.14 KB
#5743 SendReceive net472 2.02μs 1.07ns 3.99ns 0.183 0.00103 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.68μs 0.866ns 3.35ns 0.0228 0 0 1.6 KB
master EnrichedLog netcoreapp3.1 3.86μs 1.68ns 6.52ns 0.0211 0 0 1.65 KB
master EnrichedLog net472 4.46μs 1.95ns 6.77ns 0.323 0 0 2.04 KB
#5743 EnrichedLog net6.0 2.68μs 0.595ns 2.23ns 0.0215 0 0 1.6 KB
#5743 EnrichedLog netcoreapp3.1 3.88μs 2.4ns 9.29ns 0.0214 0 0 1.65 KB
#5743 EnrichedLog net472 4.33μs 2.42ns 8.74ns 0.324 0 0 2.04 KB
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #5743

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 1.244 398.32 495.35

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 398ns 0.128ns 0.478ns 0.00799 0 0 576 B
master StartFinishSpan netcoreapp3.1 628ns 3.45ns 21ns 0.00775 0 0 576 B
master StartFinishSpan net472 646ns 0.311ns 1.21ns 0.0918 0 0 578 B
master StartFinishScope net6.0 475ns 0.149ns 0.557ns 0.00962 0 0 696 B
master StartFinishScope netcoreapp3.1 740ns 0.521ns 2.02ns 0.00947 0 0 696 B
master StartFinishScope net472 844ns 0.321ns 1.2ns 0.104 0 0 658 B
#5743 StartFinishSpan net6.0 495ns 0.0915ns 0.354ns 0.00813 0 0 576 B
#5743 StartFinishSpan netcoreapp3.1 597ns 0.391ns 1.46ns 0.00777 0 0 576 B
#5743 StartFinishSpan net472 666ns 0.344ns 1.33ns 0.0917 0 0 578 B
#5743 StartFinishScope net6.0 490ns 0.17ns 0.637ns 0.00982 0 0 696 B
#5743 StartFinishScope netcoreapp3.1 748ns 0.78ns 3.02ns 0.0094 0 0 696 B
#5743 StartFinishScope net472 895ns 0.359ns 1.34ns 0.104 0 0 658 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 623ns 0.185ns 0.716ns 0.00965 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 990ns 0.457ns 1.77ns 0.00947 0 0 696 B
master RunOnMethodBegin net472 1.13μs 0.453ns 1.76ns 0.104 0 0 658 B
#5743 RunOnMethodBegin net6.0 623ns 0.176ns 0.682ns 0.00976 0 0 696 B
#5743 RunOnMethodBegin netcoreapp3.1 1.02μs 0.688ns 2.67ns 0.00902 0 0 696 B
#5743 RunOnMethodBegin net472 1.06μs 0.464ns 1.8ns 0.104 0 0 658 B

@andrewlock
Copy link
Member

andrewlock commented Jun 27, 2024

Benchmarks Report for appsec 🐌

Benchmarks for #5743 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.178
  • 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.Asm.AppSecBodyBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #5743

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorMoreComplexBody‑net472 1.178 4,528.12 3,843.18

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 73.8μs 114ns 440ns 0.0741 0 0 6.01 KB
master AllCycleSimpleBody netcoreapp3.1 63.8μs 95.1ns 368ns 0.0952 0 0 6.95 KB
master AllCycleSimpleBody net472 48.1μs 42.4ns 164ns 1.3 0 0 8.34 KB
master AllCycleMoreComplexBody net6.0 79.7μs 98ns 367ns 0.12 0 0 9.51 KB
master AllCycleMoreComplexBody netcoreapp3.1 69.1μs 119ns 461ns 0.136 0 0 10.37 KB
master AllCycleMoreComplexBody net472 55.3μs 72ns 270ns 1.87 0.0275 0 11.85 KB
master ObjectExtractorSimpleBody net6.0 145ns 0.333ns 1.29ns 0.00397 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 200ns 0.395ns 1.53ns 0.00374 0 0 272 B
master ObjectExtractorSimpleBody net472 163ns 0.0954ns 0.344ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 3.1μs 1.7ns 5.89ns 0.0528 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.1μs 3.16ns 12.2ns 0.0498 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 4.53μs 2.09ns 7.83ns 0.601 0.00454 0 3.8 KB
#5743 AllCycleSimpleBody net6.0 73μs 85.5ns 331ns 0.073 0 0 6 KB
#5743 AllCycleSimpleBody netcoreapp3.1 62.3μs 92.7ns 347ns 0.0936 0 0 6.95 KB
#5743 AllCycleSimpleBody net472 48.3μs 74.7ns 289ns 1.3 0 0 8.33 KB
#5743 AllCycleMoreComplexBody net6.0 79μs 122ns 474ns 0.12 0 0 9.51 KB
#5743 AllCycleMoreComplexBody netcoreapp3.1 69.4μs 140ns 543ns 0.138 0 0 10.37 KB
#5743 AllCycleMoreComplexBody net472 55.9μs 39ns 141ns 1.87 0.0279 0 11.85 KB
#5743 ObjectExtractorSimpleBody net6.0 143ns 0.274ns 1.06ns 0.00394 0 0 280 B
#5743 ObjectExtractorSimpleBody netcoreapp3.1 196ns 0.219ns 0.758ns 0.00372 0 0 272 B
#5743 ObjectExtractorSimpleBody net472 166ns 0.186ns 0.721ns 0.0446 0 0 281 B
#5743 ObjectExtractorMoreComplexBody net6.0 3.01μs 3.11ns 12ns 0.0538 0 0 3.78 KB
#5743 ObjectExtractorMoreComplexBody netcoreapp3.1 3.94μs 2.27ns 8.5ns 0.0497 0 0 3.69 KB
#5743 ObjectExtractorMoreComplexBody net472 3.84μs 3.3ns 12.8ns 0.601 0.00575 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.6μs 20.7ns 80.2ns 0.459 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 54.3μs 22.6ns 84.7ns 0.434 0 0 32.4 KB
master EncodeArgs net472 64.9μs 34ns 132ns 5.14 0.0646 0 32.5 KB
master EncodeLegacyArgs net6.0 73.6μs 30.7ns 119ns 0 0 0 2.14 KB
master EncodeLegacyArgs netcoreapp3.1 104μs 134ns 519ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 152μs 76.2ns 295ns 0.304 0 0 2.15 KB
#5743 EncodeArgs net6.0 37.2μs 15.2ns 57ns 0.467 0 0 32.4 KB
#5743 EncodeArgs netcoreapp3.1 54.1μs 19.3ns 69.7ns 0.432 0 0 32.4 KB
#5743 EncodeArgs net472 64.7μs 35.9ns 139ns 5.14 0.0647 0 32.5 KB
#5743 EncodeLegacyArgs net6.0 80.4μs 17.3ns 64.9ns 0 0 0 2.14 KB
#5743 EncodeLegacyArgs netcoreapp3.1 112μs 48.1ns 186ns 0 0 0 2.14 KB
#5743 EncodeLegacyArgs net472 152μs 55.8ns 216ns 0.302 0 0 2.15 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 RunWafRealisticBenchmark net6.0 182μs 114ns 441ns 0 0 0 2.42 KB
master RunWafRealisticBenchmark netcoreapp3.1 193μs 207ns 801ns 0 0 0 2.37 KB
master RunWafRealisticBenchmark net472 207μs 56ns 209ns 0.31 0 0 2.43 KB
master RunWafRealisticBenchmarkWithAttack net6.0 121μs 14.7ns 50.9ns 0 0 0 1.46 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 130μs 224ns 869ns 0 0 0 1.45 KB
master RunWafRealisticBenchmarkWithAttack net472 138μs 25.9ns 97.1ns 0.207 0 0 1.48 KB
#5743 RunWafRealisticBenchmark net6.0 182μs 91.2ns 353ns 0 0 0 2.42 KB
#5743 RunWafRealisticBenchmark netcoreapp3.1 195μs 385ns 1.49μs 0 0 0 2.37 KB
#5743 RunWafRealisticBenchmark net472 206μs 116ns 451ns 0.309 0 0 2.43 KB
#5743 RunWafRealisticBenchmarkWithAttack net6.0 121μs 47.7ns 185ns 0 0 0 1.46 KB
#5743 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 129μs 209ns 808ns 0 0 0 1.45 KB
#5743 RunWafRealisticBenchmarkWithAttack net472 139μs 95.7ns 371ns 0.207 0 0 1.48 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #5743

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 255.3 KB 253.55 KB -1.74 KB -0.68%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 59.19 KB 57.34 KB -1.85 KB -3.12%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 52μs 262ns 1.2μs 0 0 0 43.44 KB
master StringConcatBenchmark netcoreapp3.1 54.6μs 261ns 1.67μs 0 0 0 42.64 KB
master StringConcatBenchmark net472 38μs 160ns 577ns 0 0 0 59.19 KB
master StringConcatAspectBenchmark net6.0 303μs 1.22μs 6.44μs 0 0 0 255.3 KB
master StringConcatAspectBenchmark netcoreapp3.1 330μs 1.61μs 6.65μs 0 0 0 253.92 KB
master StringConcatAspectBenchmark net472 289μs 5.62μs 55.1μs 0 0 0 278.53 KB
#5743 StringConcatBenchmark net6.0 58.3μs 726ns 7.08μs 0 0 0 43.44 KB
#5743 StringConcatBenchmark netcoreapp3.1 61.6μs 881ns 8.76μs 0 0 0 42.64 KB
#5743 StringConcatBenchmark net472 38.4μs 164ns 696ns 0 0 0 57.34 KB
#5743 StringConcatAspectBenchmark net6.0 291μs 1.41μs 9.47μs 0 0 0 253.55 KB
#5743 StringConcatAspectBenchmark netcoreapp3.1 340μs 1.71μs 9.66μs 0 0 0 253.85 KB
#5743 StringConcatAspectBenchmark net472 295μs 7.2μs 69.8μs 0 0 0 278.53 KB

@e-n-0 e-n-0 force-pushed the flavien/asm/asm/standalone-billing-part2 branch 15 times, most recently from 68e58b9 to d62d1ce Compare July 4, 2024 20:07
@e-n-0 e-n-0 force-pushed the flavien/asm/asm/standalone-billing-part2 branch 6 times, most recently from 7d6876d to 12b18f8 Compare July 15, 2024 08:48
@e-n-0 e-n-0 force-pushed the flavien/asm/asm/standalone-billing-part2 branch from 12b18f8 to 1adc855 Compare July 15, 2024 12:42
@DataDog DataDog deleted a comment from github-actions bot Jul 15, 2024
@e-n-0 e-n-0 marked this pull request as ready for review July 15, 2024 12:46
@e-n-0 e-n-0 requested review from a team as code owners July 15, 2024 12:46
@e-n-0 e-n-0 self-assigned this Jul 15, 2024
@e-n-0 e-n-0 changed the title [ASM] Standalone Billing Propagation [ASM] Standalone Billing (part 2: Propagation) Jul 15, 2024
@e-n-0 e-n-0 requested a review from lucaspimentel July 17, 2024 12:21
@lucaspimentel lucaspimentel requested a review from a team July 17, 2024 13:29
@e-n-0 e-n-0 requested a review from lucaspimentel July 17, 2024 13:52
Copy link
Contributor

@daniel-romano-DD daniel-romano-DD left a comment

Choose a reason for hiding this comment

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

Nice. Thanks a lot for this

@e-n-0 e-n-0 merged commit 935deec into master Jul 17, 2024
56 of 58 checks passed
@e-n-0 e-n-0 deleted the flavien/asm/asm/standalone-billing-part2 branch July 17, 2024 17:08
@github-actions github-actions bot added this to the vNext-v2 milestone Jul 17, 2024
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.

4 participants