Start Serverless Mini Agent for Azure Functions on Linux Non-Consumption Plans (#5792 -> v2)#5986
Conversation
…Functions to cover linux server cases
…eSettings.cs Co-authored-by: Lucas Pimentel <[email protected]>
…pServiceSettingsTests.cs Co-authored-by: Andrew Lock <[email protected]>
ed3a20c to
948030f
Compare
Datadog ReportBranch report: ✅ 0 Failed, 350021 Passed, 1800 Skipped, 14h 27m 12.94s Total Time |
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 (5986) - mean (73ms) : 65, 82
. : milestone, 73,
master - mean (70ms) : 67, 74
. : milestone, 70,
section CallTarget+Inlining+NGEN
This PR (5986) - mean (1,031ms) : 1012, 1050
. : milestone, 1031,
master - mean (1,080ms) : 1058, 1103
. : milestone, 1080,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5986) - mean (110ms) : 105, 114
. : milestone, 110,
master - mean (110ms) : 106, 115
. : milestone, 110,
section CallTarget+Inlining+NGEN
This PR (5986) - mean (725ms) : 684, 767
. : milestone, 725,
master - mean (762ms) : 735, 790
. : milestone, 762,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5986) - mean (92ms) : 89, 94
. : milestone, 92,
master - mean (93ms) : 90, 95
. : milestone, 93,
section CallTarget+Inlining+NGEN
This PR (5986) - mean (671ms) : 650, 692
. : milestone, 671,
master - mean (708ms) : 685, 731
. : milestone, 708,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5986) - mean (190ms) : 186, 194
. : milestone, 190,
master - mean (190ms) : 187, 193
. : milestone, 190,
section CallTarget+Inlining+NGEN
This PR (5986) - mean (1,113ms) : 1094, 1133
. : milestone, 1113,
master - mean (1,162ms) : 1131, 1193
. : milestone, 1162,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5986) - mean (276ms) : 271, 281
. : milestone, 276,
master - mean (276ms) : 271, 281
. : milestone, 276,
section CallTarget+Inlining+NGEN
This PR (5986) - mean (884ms) : 859, 910
. : milestone, 884,
master - mean (916ms) : 899, 932
. : milestone, 916,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5986) - mean (265ms) : 260, 270
. : milestone, 265,
master - mean (265ms) : 261, 269
. : milestone, 265,
section CallTarget+Inlining+NGEN
This PR (5986) - mean (876ms) : 846, 906
. : milestone, 876,
master - mean (904ms) : 885, 922
. : milestone, 904,
|
Benchmarks Report for tracer 🐌Benchmarks for #5986 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.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.SpanBenchmark - Slower
|
| Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 | 1.174 | 393.39 | 461.89 |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StartFinishSpan |
net6.0 | 393ns | 0.373ns | 1.44ns | 0.0081 | 0 | 0 | 576 B |
| master | StartFinishSpan |
netcoreapp3.1 | 585ns | 0.662ns | 2.56ns | 0.0076 | 0 | 0 | 576 B |
| master | StartFinishSpan |
net472 | 563ns | 0.173ns | 0.669ns | 0.0916 | 0 | 0 | 578 B |
| master | StartFinishScope |
net6.0 | 481ns | 0.419ns | 1.62ns | 0.00979 | 0 | 0 | 696 B |
| master | StartFinishScope |
netcoreapp3.1 | 714ns | 0.494ns | 1.91ns | 0.00965 | 0 | 0 | 696 B |
| master | StartFinishScope |
net472 | 818ns | 0.768ns | 2.97ns | 0.104 | 0 | 0 | 658 B |
| #5986 | StartFinishSpan |
net6.0 | 461ns | 0.38ns | 1.47ns | 0.00812 | 0 | 0 | 576 B |
| #5986 | StartFinishSpan |
netcoreapp3.1 | 586ns | 0.374ns | 1.45ns | 0.00776 | 0 | 0 | 576 B |
| #5986 | StartFinishSpan |
net472 | 599ns | 0.544ns | 2.11ns | 0.0916 | 0 | 0 | 578 B |
| #5986 | StartFinishScope |
net6.0 | 534ns | 0.346ns | 1.29ns | 0.0097 | 0 | 0 | 696 B |
| #5986 | StartFinishScope |
netcoreapp3.1 | 651ns | 1ns | 3.88ns | 0.00919 | 0 | 0 | 696 B |
| #5986 | StartFinishScope |
net472 | 845ns | 0.934ns | 3.62ns | 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 | 614ns | 0.368ns | 1.42ns | 0.00987 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
netcoreapp3.1 | 972ns | 0.994ns | 3.72ns | 0.00923 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
net472 | 1.04μs | 0.674ns | 2.61ns | 0.104 | 0 | 0 | 658 B |
| #5986 | RunOnMethodBegin |
net6.0 | 619ns | 0.833ns | 3.23ns | 0.0099 | 0 | 0 | 696 B |
| #5986 | RunOnMethodBegin |
netcoreapp3.1 | 918ns | 0.932ns | 3.61ns | 0.00925 | 0 | 0 | 696 B |
| #5986 | RunOnMethodBegin |
net472 | 1.06μs | 1.33ns | 5.14ns | 0.104 | 0 | 0 | 658 B |
## Summary of changes - Try to make the code-freeze PR not block - Try to prevent timeouts in gitlab jobs ## Reason for change The auto-pass code freeze check [doesn't seem to be working for PRs](#5986) to non-master for some reason. Also the gitlab job that waits for artifacts to be ready before trying to download frequently times out. ## Implementation details Try to force the auto-check to work. It should _already_ be working AFAICT based on the docs, so this is a stab in the dark 🤞 For the gitlab job, wait for longer
Summary of changes
Start Serverless Mini Agent for Azure Functions on Linux Non-Consumption (Basic/Standard/Premium) Plans.
Reason for change
Customers with this setup asking for beta.
Implementation details
Test coverage
Unit Tests ✅
Manually tested the cases below.
Regression Tests:
Windows / Premium Plan -> mini agent not started ✅
Windows / Consumption Plan -> mini agent started ✅
Linux / Consumption Plan -> mini agent started ✅
Behavior added in this PR:
Linux / Premium Plan -> mini agent started ✅
Other details
Follows #5792