-
Notifications
You must be signed in to change notification settings - Fork 144
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
Basic smoke tests for .NET chiseled containers #4805
Conversation
Datadog ReportBranch report: ✅ |
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:
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 (4805) - mean (72ms) : 63, 80
. : milestone, 72,
master - mean (71ms) : 62, 79
. : milestone, 71,
section CallTarget+Inlining+NGEN
This PR (4805) - mean (993ms) : 972, 1014
. : milestone, 993,
master - mean (992ms) : 972, 1012
. : milestone, 992,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (4805) - mean (106ms) : 103, 109
. : milestone, 106,
master - mean (106ms) : 102, 109
. : milestone, 106,
section CallTarget+Inlining+NGEN
This PR (4805) - mean (687ms) : 661, 713
. : milestone, 687,
master - mean (680ms) : 666, 694
. : milestone, 680,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (4805) - mean (89ms) : 86, 92
. : milestone, 89,
master - mean (89ms) : 86, 92
. : milestone, 89,
section CallTarget+Inlining+NGEN
This PR (4805) - mean (657ms) : 635, 679
. : milestone, 657,
master - mean (652ms) : 631, 672
. : milestone, 652,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (4805) - mean (188ms) : 185, 191
. : milestone, 188,
master - mean (188ms) : 185, 190
. : milestone, 188,
section CallTarget+Inlining+NGEN
This PR (4805) - mean (1,132ms) : 1115, 1150
. : milestone, 1132,
master - mean (1,140ms) : 1120, 1161
. : milestone, 1140,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (4805) - mean (272ms) : 268, 276
. : milestone, 272,
master - mean (271ms) : 268, 274
. : milestone, 271,
section CallTarget+Inlining+NGEN
This PR (4805) - mean (1,103ms) : 1079, 1128
. : milestone, 1103,
master - mean (1,094ms) : 1068, 1121
. : milestone, 1094,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (4805) - mean (262ms) : 259, 265
. : milestone, 262,
master - mean (262ms) : 259, 265
. : milestone, 262,
section CallTarget+Inlining+NGEN
This PR (4805) - mean (1,068ms) : 1043, 1093
. : milestone, 1068,
master - mean (1,069ms) : 1038, 1101
. : milestone, 1069,
|
Benchmarks Report 🐌Benchmarks for #4805 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.ActivityBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Fewer allocations 🎉
|
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 | 41.87 KB | 41.65 KB | -224 B | -0.53% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | WriteAndFlushEnrichedTraces |
net6.0 | 568μs | 2.11μs | 7.9μs | 0.534 | 0 | 0 | 41.87 KB |
master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 661μs | 1.95μs | 7.57μs | 0.326 | 0 | 0 | 41.81 KB |
master | WriteAndFlushEnrichedTraces |
net472 | 829μs | 3.48μs | 13.5μs | 8.17 | 2.45 | 0.408 | 53.24 KB |
#4805 | WriteAndFlushEnrichedTraces |
net6.0 | 557μs | 210ns | 726ns | 0.553 | 0 | 0 | 41.65 KB |
#4805 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 657μs | 944ns | 3.53μs | 0.329 | 0 | 0 | 41.82 KB |
#4805 | WriteAndFlushEnrichedTraces |
net472 | 831μs | 3.94μs | 16.7μs | 8.28 | 2.48 | 0.414 | 53.21 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.1μs | 0.59ns | 2.29ns | 0.011 | 0 | 0 | 768 B |
master | ExecuteNonQuery |
netcoreapp3.1 | 1.26μs | 1.68ns | 6.52ns | 0.0106 | 0 | 0 | 768 B |
master | ExecuteNonQuery |
net472 | 1.65μs | 0.601ns | 2.33ns | 0.115 | 0 | 0 | 730 B |
#4805 | ExecuteNonQuery |
net6.0 | 1μs | 0.631ns | 2.44ns | 0.0106 | 0 | 0 | 768 B |
#4805 | ExecuteNonQuery |
netcoreapp3.1 | 1.28μs | 0.613ns | 2.3ns | 0.0105 | 0 | 0 | 768 B |
#4805 | ExecuteNonQuery |
net472 | 1.64μs | 1.07ns | 4.15ns | 0.116 | 0 | 0 | 730 B |
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | CallElasticsearch |
net6.0 | 1.14μs | 0.619ns | 2.4ns | 0.0131 | 0 | 0 | 936 B |
master | CallElasticsearch |
netcoreapp3.1 | 1.36μs | 1.05ns | 4.08ns | 0.0123 | 0 | 0 | 936 B |
master | CallElasticsearch |
net472 | 2.33μs | 0.978ns | 3.53ns | 0.151 | 0 | 0 | 955 B |
master | CallElasticsearchAsync |
net6.0 | 1.2μs | 0.452ns | 1.75ns | 0.0126 | 0 | 0 | 912 B |
master | CallElasticsearchAsync |
netcoreapp3.1 | 1.37μs | 0.793ns | 3.07ns | 0.0131 | 0 | 0 | 984 B |
master | CallElasticsearchAsync |
net472 | 2.55μs | 2ns | 7.75ns | 0.16 | 0 | 0 | 1.01 KB |
#4805 | CallElasticsearch |
net6.0 | 1.16μs | 0.752ns | 2.91ns | 0.0133 | 0 | 0 | 936 B |
#4805 | CallElasticsearch |
netcoreapp3.1 | 1.44μs | 3.51ns | 13.1ns | 0.0126 | 0 | 0 | 936 B |
#4805 | CallElasticsearch |
net472 | 2.29μs | 0.561ns | 2.1ns | 0.151 | 0 | 0 | 955 B |
#4805 | CallElasticsearchAsync |
net6.0 | 1.16μs | 0.509ns | 1.91ns | 0.0128 | 0 | 0 | 912 B |
#4805 | CallElasticsearchAsync |
netcoreapp3.1 | 1.47μs | 0.592ns | 2.21ns | 0.0131 | 0 | 0 | 984 B |
#4805 | CallElasticsearchAsync |
net472 | 2.48μs | 1.53ns | 5.92ns | 0.161 | 0 | 0 | 1.01 KB |
Benchmarks.Trace.GraphQLBenchmark - Faster 🎉 Same allocations ✔️
Faster 🎉 in #4805
Benchmark
base/diff
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net6.0
1.225
1,313.94
1,072.77
Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net6.0 | 1.225 | 1,313.94 | 1,072.77 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | ExecuteAsync |
net6.0 | 1.31μs | 0.647ns | 2.42ns | 0.0125 | 0 | 0 | 912 B |
master | ExecuteAsync |
netcoreapp3.1 | 1.47μs | 0.686ns | 2.57ns | 0.0125 | 0 | 0 | 912 B |
master | ExecuteAsync |
net472 | 1.77μs | 1.44ns | 5.56ns | 0.138 | 0 | 0 | 875 B |
#4805 | ExecuteAsync |
net6.0 | 1.07μs | 0.524ns | 1.96ns | 0.0129 | 0 | 0 | 912 B |
#4805 | ExecuteAsync |
netcoreapp3.1 | 1.47μs | 0.943ns | 3.65ns | 0.0125 | 0 | 0 | 912 B |
#4805 | ExecuteAsync |
net472 | 1.61μs | 0.592ns | 2.22ns | 0.139 | 0 | 0 | 875 B |
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | SendAsync |
net6.0 | 3.7μs | 1.07ns | 4.14ns | 0.026 | 0 | 0 | 1.9 KB |
master | SendAsync |
netcoreapp3.1 | 4.55μs | 2.74ns | 10.6ns | 0.0317 | 0 | 0 | 2.43 KB |
master | SendAsync |
net472 | 7.01μs | 1.95ns | 7.57ns | 0.474 | 0 | 0 | 2.99 KB |
#4805 | SendAsync |
net6.0 | 3.74μs | 2.1ns | 8.12ns | 0.0261 | 0 | 0 | 1.9 KB |
#4805 | SendAsync |
netcoreapp3.1 | 4.44μs | 1.4ns | 5.43ns | 0.0313 | 0 | 0 | 2.43 KB |
#4805 | SendAsync |
net472 | 7.04μs | 3.54ns | 13.7ns | 0.475 | 0 | 0 | 2.99 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.36μs | 0.965ns | 3.74ns | 0.0218 | 0 | 0 | 1.57 KB |
master | EnrichedLog |
netcoreapp3.1 | 1.87μs | 0.652ns | 2.53ns | 0.0216 | 0 | 0 | 1.57 KB |
master | EnrichedLog |
net472 | 2.3μs | 2.08ns | 8.05ns | 0.237 | 0 | 0 | 1.49 KB |
#4805 | EnrichedLog |
net6.0 | 1.27μs | 0.411ns | 1.54ns | 0.0224 | 0 | 0 | 1.57 KB |
#4805 | EnrichedLog |
netcoreapp3.1 | 1.9μs | 2.98ns | 11.1ns | 0.0208 | 0 | 0 | 1.57 KB |
#4805 | EnrichedLog |
net472 | 2.26μs | 2.27ns | 8.48ns | 0.236 | 0 | 0 | 1.49 KB |
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | EnrichedLog |
net6.0 | 111μs | 265ns | 1.03μs | 0.0554 | 0 | 0 | 4.21 KB |
master | EnrichedLog |
netcoreapp3.1 | 118μs | 193ns | 749ns | 0.0594 | 0 | 0 | 4.21 KB |
master | EnrichedLog |
net472 | 145μs | 59.1ns | 213ns | 0.658 | 0.219 | 0 | 4.38 KB |
#4805 | EnrichedLog |
net6.0 | 112μs | 130ns | 487ns | 0.0557 | 0 | 0 | 4.21 KB |
#4805 | EnrichedLog |
netcoreapp3.1 | 119μs | 204ns | 789ns | 0 | 0 | 0 | 4.21 KB |
#4805 | EnrichedLog |
net472 | 149μs | 153ns | 594ns | 0.664 | 0.221 | 0 | 4.38 KB |
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | EnrichedLog |
net6.0 | 2.93μs | 1.57ns | 6.09ns | 0.0294 | 0 | 0 | 2.13 KB |
master | EnrichedLog |
netcoreapp3.1 | 3.88μs | 1.71ns | 6.41ns | 0.029 | 0 | 0 | 2.13 KB |
master | EnrichedLog |
net472 | 4.52μs | 1.85ns | 7.17ns | 0.305 | 0 | 0 | 1.93 KB |
#4805 | EnrichedLog |
net6.0 | 2.94μs | 0.826ns | 3.09ns | 0.0295 | 0 | 0 | 2.13 KB |
#4805 | EnrichedLog |
netcoreapp3.1 | 3.82μs | 1.7ns | 6.36ns | 0.0285 | 0 | 0 | 2.13 KB |
#4805 | EnrichedLog |
net472 | 4.45μs | 2.07ns | 7.73ns | 0.307 | 0 | 0 | 1.93 KB |
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | SendReceive |
net6.0 | 1.22μs | 0.333ns | 1.29ns | 0.0153 | 0 | 0 | 1.1 KB |
master | SendReceive |
netcoreapp3.1 | 1.65μs | 4.88ns | 18.9ns | 0.0148 | 0 | 0 | 1.1 KB |
master | SendReceive |
net472 | 1.89μs | 2.18ns | 7.85ns | 0.177 | 0 | 0 | 1.12 KB |
#4805 | SendReceive |
net6.0 | 1.23μs | 0.61ns | 2.36ns | 0.0154 | 0 | 0 | 1.1 KB |
#4805 | SendReceive |
netcoreapp3.1 | 1.63μs | 0.725ns | 2.81ns | 0.0155 | 0 | 0 | 1.1 KB |
#4805 | SendReceive |
net472 | 1.88μs | 2.09ns | 8.11ns | 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.58μs | 2.6ns | 9.02ns | 0.0219 | 0 | 0 | 1.53 KB |
master | EnrichedLog |
netcoreapp3.1 | 3.59μs | 3.31ns | 12.8ns | 0.0212 | 0 | 0 | 1.58 KB |
master | EnrichedLog |
net472 | 4μs | 2.49ns | 9.32ns | 0.311 | 0 | 0 | 1.96 KB |
#4805 | EnrichedLog |
net6.0 | 2.65μs | 0.857ns | 3.32ns | 0.0213 | 0 | 0 | 1.53 KB |
#4805 | EnrichedLog |
netcoreapp3.1 | 3.34μs | 1.18ns | 4.41ns | 0.0201 | 0 | 0 | 1.58 KB |
#4805 | EnrichedLog |
net472 | 4.02μs | 1.35ns | 5.22ns | 0.31 | 0 | 0 | 1.96 KB |
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #4805
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472
1.207
554.29
669.28
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 | 1.207 | 554.29 | 669.28 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StartFinishSpan |
net6.0 | 465ns | 0.147ns | 0.551ns | 0.00745 | 0 | 0 | 536 B |
master | StartFinishSpan |
netcoreapp3.1 | 570ns | 2.08ns | 8.06ns | 0.00728 | 0 | 0 | 536 B |
master | StartFinishSpan |
net472 | 554ns | 0.262ns | 1.01ns | 0.0853 | 0 | 0 | 538 B |
master | StartFinishScope |
net6.0 | 562ns | 0.362ns | 1.35ns | 0.0093 | 0 | 0 | 656 B |
master | StartFinishScope |
netcoreapp3.1 | 711ns | 0.178ns | 0.641ns | 0.00896 | 0 | 0 | 656 B |
master | StartFinishScope |
net472 | 911ns | 0.793ns | 2.97ns | 0.0978 | 0 | 0 | 618 B |
#4805 | StartFinishSpan |
net6.0 | 514ns | 0.148ns | 0.556ns | 0.00747 | 0 | 0 | 536 B |
#4805 | StartFinishSpan |
netcoreapp3.1 | 615ns | 0.912ns | 3.53ns | 0.00726 | 0 | 0 | 536 B |
#4805 | StartFinishSpan |
net472 | 669ns | 0.18ns | 0.673ns | 0.0851 | 0 | 0 | 538 B |
#4805 | StartFinishScope |
net6.0 | 628ns | 1.46ns | 5.65ns | 0.0091 | 0 | 0 | 656 B |
#4805 | StartFinishScope |
netcoreapp3.1 | 765ns | 0.4ns | 1.55ns | 0.00912 | 0 | 0 | 656 B |
#4805 | StartFinishScope |
net472 | 911ns | 0.448ns | 1.73ns | 0.0981 | 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 | 621ns | 0.322ns | 1.25ns | 0.00937 | 0 | 0 | 656 B |
master | RunOnMethodBegin |
netcoreapp3.1 | 779ns | 0.227ns | 0.877ns | 0.00887 | 0 | 0 | 656 B |
master | RunOnMethodBegin |
net472 | 1.01μs | 0.365ns | 1.41ns | 0.098 | 0 | 0 | 618 B |
#4805 | RunOnMethodBegin |
net6.0 | 606ns | 0.213ns | 0.798ns | 0.00909 | 0 | 0 | 656 B |
#4805 | RunOnMethodBegin |
netcoreapp3.1 | 814ns | 3.29ns | 12.3ns | 0.00898 | 0 | 0 | 656 B |
#4805 | RunOnMethodBegin |
net472 | 988ns | 0.457ns | 1.77ns | 0.098 | 0 | 0 | 618 B |
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 (4805) (11.042M) : 0, 11042154
master (11.393M) : 0, 11392757
benchmarks/2.38.0 (11.867M) : 0, 11866956
benchmarks/2.9.0 (10.921M) : 0, 10920504
section Automatic
This PR (4805) (7.540M) : crit ,0, 7540107
master (7.942M) : 0, 7941784
benchmarks/2.38.0 (8.176M) : 0, 8175636
benchmarks/2.9.0 (7.899M) : 0, 7898906
section Trace stats
This PR (4805) (7.950M) : 0, 7950326
master (8.283M) : 0, 8282593
benchmarks/2.38.0 (8.450M) : 0, 8450370
section Manual
This PR (4805) (9.764M) : 0, 9763905
master (10.078M) : 0, 10077955
benchmarks/2.38.0 (10.334M) : 0, 10334368
section Manual + Automatic
This PR (4805) (7.245M) : 0, 7244623
master (7.538M) : 0, 7538297
benchmarks/2.38.0 (7.750M) : 0, 7750484
section Version Conflict
This PR (4805) (6.556M) : crit ,0, 6556353
master (7.019M) : 0, 7018962
benchmarks/2.38.0 (7.137M) : 0, 7136691
gantt
title Throughput Linux arm64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (4805) (9.388M) : 0, 9387868
master (9.602M) : 0, 9601657
benchmarks/2.38.0 (9.548M) : 0, 9548121
benchmarks/2.9.0 (9.696M) : 0, 9695973
section Automatic
This PR (4805) (6.567M) : 0, 6566927
master (6.729M) : 0, 6729327
benchmarks/2.38.0 (6.747M) : 0, 6747227
section Trace stats
This PR (4805) (6.746M) : 0, 6746227
master (6.952M) : 0, 6951660
benchmarks/2.38.0 (6.815M) : 0, 6814846
section Manual
This PR (4805) (8.253M) : 0, 8252515
master (8.462M) : 0, 8461837
benchmarks/2.38.0 (8.263M) : 0, 8263131
section Manual + Automatic
This PR (4805) (6.311M) : 0, 6311352
master (6.179M) : 0, 6179146
benchmarks/2.38.0 (6.275M) : 0, 6275411
section Version Conflict
This PR (4805) (5.613M) : 0, 5613218
master (5.874M) : 0, 5874022
benchmarks/2.38.0 (5.670M) : 0, 5669744
gantt
title Throughput Windows x64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (4805) (9.320M) : 0, 9319558
master (9.200M) : 0, 9199633
benchmarks/2.38.0 (9.007M) : 0, 9007066
benchmarks/2.9.0 (9.586M) : 0, 9585650
section Automatic
This PR (4805) (6.637M) : 0, 6637443
master (6.653M) : 0, 6652769
benchmarks/2.38.0 (6.423M) : 0, 6422756
benchmarks/2.9.0 (7.033M) : 0, 7033199
section Trace stats
This PR (4805) (6.762M) : 0, 6762172
master (6.854M) : 0, 6854485
benchmarks/2.38.0 (6.721M) : 0, 6720838
section Manual
This PR (4805) (8.236M) : 0, 8236044
master (8.182M) : 0, 8181925
benchmarks/2.38.0 (7.977M) : 0, 7977494
section Manual + Automatic
This PR (4805) (6.349M) : 0, 6348717
master (6.404M) : 0, 6404402
benchmarks/2.38.0 (6.349M) : 0, 6349066
section Version Conflict
This PR (4805) (5.840M) : 0, 5839864
master (5.914M) : 0, 5914289
benchmarks/2.38.0 (5.682M) : 0, 5681654
gantt
title Throughput Linux x64 (ASM) (Total requests)
dateFormat X
axisFormat %s
section Baseline
master (7.582M) : 0, 7581636
benchmarks/2.38.0 (7.578M) : 0, 7577544
benchmarks/2.9.0 (8.040M) : 0, 8039615
section No attack
master (2.177M) : 0, 2176500
benchmarks/2.38.0 (2.184M) : 0, 2184279
benchmarks/2.9.0 (3.290M) : 0, 3289982
section Attack
master (1.712M) : 0, 1712498
benchmarks/2.38.0 (1.711M) : 0, 1710542
benchmarks/2.9.0 (2.581M) : 0, 2581167
section Blocking
master (3.456M) : 0, 3456373
benchmarks/2.38.0 (3.486M) : 0, 3486124
section IAST default
master (6.923M) : 0, 6923039
section IAST full
master (6.270M) : 0, 6270368
section Base vuln
master (0.976M) : 0, 975959
section IAST vuln
master (0.930M) : 0, 930321
|
Summary of changes
Adds basic smoke tests on .NET 8 chiseled containers
Reason for change
In .NET 8, Microsoft GA'd their support for chiseled containers (I wrote about them recently). We want to make sure that we can run correctly on chiseled containers
Implementation details
Add additional stages for chiseled containers. Unfortunately, our existing dockerfile build process wouldn't work with them (because you can't
RUN
anything), so it was easiest to create separate tests. This PR addslinux-x64
andlinux-arm64
dd-dotnet
tests (via the tar.gz) forlinux-x64
andlinux-arm64
Theoretically, we should also test:
dd-trace
global tool. It isn't practical use the global tool in production chiseled images, so I don't think this one matters (and don't know how I would do it)dd-trace
standalone tool. This one is interesting. When I try to test it in a .NET 8 chiseled container I get:I think this is the "self-extracting" part of the "self-contained single-file" app failing, so this seems like a fundamental limitation.
Test coverage
Ran a test using binaries from master and it works
Other details
I know... everyone was thinking it... more stages in the pipeline that's definitely what we need