-
Couldn't load subscription status.
- Fork 150
[Docs] Improve docs on troubleshooting CI failures #7707
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
Merged
lucaspimentel
merged 3 commits into
master
from
lpimentel/improve-ci-troubleshooting-docs
Oct 29, 2025
Merged
[Docs] Improve docs on troubleshooting CI failures #7707
lucaspimentel
merged 3 commits into
master
from
lpimentel/improve-ci-troubleshooting-docs
Oct 29, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add new sections to help developers investigate test failures: 1. **Determining If Failures Are Related to Your Changes** - How to compare builds before/after your commit - Commands to list recent master builds and compare failed tasks - Explanation of master-only tests that don't run on PRs 2. **Understanding Test Infrastructure** - Finding test configuration and environment variable setup - Common gotchas (e.g., profiler tests disabling tracer) - Cross-cutting test failures between components - Tracing error messages to source code These additions document investigation techniques used to diagnose profiler test failures after PR #7568, including: - Comparing master builds to determine if failures are new vs pre-existing - Reading test infrastructure code to understand environment setup - Understanding how changes in one component (tracer) can affect tests for another component (profiler) - Using grep to trace error messages back to source code 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…ures Document known intermittent profiler failures on Alpine/musl when walking exception stacks. These failures appear in smoke tests with error codes like E_FAIL (80004005) or CORPROF_E_STACKSNAPSHOT_UNSAFE. The errors are caused by race conditions during stack unwinding on musl-based platforms and can be resolved by retrying the failed job. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Enhanced the CI troubleshooting guide with: - More detailed guidance on finding and analyzing failed jobs - Step-by-step instructions for downloading and examining logs - Common failure patterns and their solutions - Better structure and navigation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
BenchmarksBenchmarks Report for benchmark platform 🐌Benchmarks for #7707 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 ✔️ Fewer allocations 🎉
|
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 | 6.04 KB | 6 KB | -41 B | -0.68% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StartStopWithChild |
net6.0 | 10.9μs | 58.9ns | 328ns | 0 | 0 | 0 | 5.51 KB |
| master | StartStopWithChild |
netcoreapp3.1 | 13.9μs | 72.5ns | 348ns | 0 | 0 | 0 | 5.7 KB |
| master | StartStopWithChild |
net472 | 22.1μs | 120ns | 647ns | 0.996 | 0.442 | 0.111 | 6.04 KB |
| #7707 | StartStopWithChild |
net6.0 | 10.9μs | 60.7ns | 407ns | 0 | 0 | 0 | 5.51 KB |
| #7707 | StartStopWithChild |
netcoreapp3.1 | 13.5μs | 64.4ns | 258ns | 0 | 0 | 0 | 5.71 KB |
| #7707 | StartStopWithChild |
net472 | 21.7μs | 120ns | 738ns | 0.975 | 0.433 | 0.108 | 6 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 | 930μs | 116ns | 402ns | 0 | 0 | 0 | 2.71 KB |
| master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 1.05ms | 512ns | 1.98μs | 0 | 0 | 0 | 2.7 KB |
| master | WriteAndFlushEnrichedTraces |
net472 | 1.18ms | 75.1ns | 271ns | 0 | 0 | 0 | 3.31 KB |
| #7707 | WriteAndFlushEnrichedTraces |
net6.0 | 928μs | 75ns | 291ns | 0 | 0 | 0 | 2.71 KB |
| #7707 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 1.03ms | 145ns | 521ns | 0 | 0 | 0 | 2.7 KB |
| #7707 | WriteAndFlushEnrichedTraces |
net472 | 1.2ms | 847ns | 3.28μs | 0 | 0 | 0 | 3.31 KB |
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Unknown 🤷 Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | AllCycleSimpleBody |
net6.0 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| master | AllCycleSimpleBody |
netcoreapp3.1 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| master | AllCycleSimpleBody |
net472 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| master | AllCycleMoreComplexBody |
net6.0 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| master | AllCycleMoreComplexBody |
netcoreapp3.1 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| master | AllCycleMoreComplexBody |
net472 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| master | ObjectExtractorSimpleBody |
net6.0 | 321ns | 0.422ns | 1.64ns | 0 | 0 | 0 | 280 B |
| master | ObjectExtractorSimpleBody |
netcoreapp3.1 | 403ns | 2.26ns | 14.7ns | 0 | 0 | 0 | 272 B |
| master | ObjectExtractorSimpleBody |
net472 | 296ns | 0.0325ns | 0.117ns | 0.0432 | 0 | 0 | 281 B |
| master | ObjectExtractorMoreComplexBody |
net6.0 | 6.38μs | 2.5ns | 8.67ns | 0 | 0 | 0 | 3.78 KB |
| master | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 7.82μs | 37.3ns | 154ns | 0 | 0 | 0 | 3.69 KB |
| master | ObjectExtractorMoreComplexBody |
net472 | 6.73μs | 1.42ns | 5.32ns | 0.572 | 0 | 0 | 3.8 KB |
| #7707 | AllCycleSimpleBody |
net6.0 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| #7707 | AllCycleSimpleBody |
netcoreapp3.1 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| #7707 | AllCycleSimpleBody |
net472 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| #7707 | AllCycleMoreComplexBody |
net6.0 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| #7707 | AllCycleMoreComplexBody |
netcoreapp3.1 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| #7707 | AllCycleMoreComplexBody |
net472 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| #7707 | ObjectExtractorSimpleBody |
net6.0 | 319ns | 0.44ns | 1.7ns | 0 | 0 | 0 | 280 B |
| #7707 | ObjectExtractorSimpleBody |
netcoreapp3.1 | 404ns | 1.97ns | 8.82ns | 0 | 0 | 0 | 272 B |
| #7707 | ObjectExtractorSimpleBody |
net472 | 298ns | 0.0279ns | 0.101ns | 0.0435 | 0 | 0 | 281 B |
| #7707 | ObjectExtractorMoreComplexBody |
net6.0 | 6.4μs | 4.09ns | 15.8ns | 0 | 0 | 0 | 3.78 KB |
| #7707 | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 7.81μs | 28.2ns | 109ns | 0 | 0 | 0 | 3.69 KB |
| #7707 | ObjectExtractorMoreComplexBody |
net472 | 6.67μs | 2.08ns | 8.06ns | 0.601 | 0 | 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 | 76.7μs | 27ns | 101ns | 0 | 0 | 0 | 32.4 KB |
| master | EncodeArgs |
netcoreapp3.1 | 97.5μs | 254ns | 984ns | 0 | 0 | 0 | 32.4 KB |
| master | EncodeArgs |
net472 | 111μs | 4.08ns | 14.7ns | 5 | 0 | 0 | 32.51 KB |
| master | EncodeLegacyArgs |
net6.0 | 149μs | 27.6ns | 103ns | 0 | 0 | 0 | 2.15 KB |
| master | EncodeLegacyArgs |
netcoreapp3.1 | 197μs | 48.5ns | 181ns | 0 | 0 | 0 | 2.14 KB |
| master | EncodeLegacyArgs |
net472 | 264μs | 31.6ns | 122ns | 0 | 0 | 0 | 2.17 KB |
| #7707 | EncodeArgs |
net6.0 | 76.8μs | 19.5ns | 73.1ns | 0 | 0 | 0 | 32.4 KB |
| #7707 | EncodeArgs |
netcoreapp3.1 | 97.5μs | 282ns | 1.09μs | 0 | 0 | 0 | 32.4 KB |
| #7707 | EncodeArgs |
net472 | 109μs | 19.3ns | 66.7ns | 4.93 | 0 | 0 | 32.51 KB |
| #7707 | EncodeLegacyArgs |
net6.0 | 146μs | 24.3ns | 87.8ns | 0 | 0 | 0 | 2.15 KB |
| #7707 | EncodeLegacyArgs |
netcoreapp3.1 | 197μs | 79.1ns | 285ns | 0 | 0 | 0 | 2.14 KB |
| #7707 | EncodeLegacyArgs |
net472 | 266μs | 177ns | 687ns | 0 | 0 | 0 | 2.16 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 | 392μs | 91ns | 328ns | 0 | 0 | 0 | 4.55 KB |
| master | RunWafRealisticBenchmark |
netcoreapp3.1 | 416μs | 129ns | 481ns | 0 | 0 | 0 | 4.48 KB |
| master | RunWafRealisticBenchmark |
net472 | 426μs | 38.2ns | 148ns | 0 | 0 | 0 | 4.66 KB |
| master | RunWafRealisticBenchmarkWithAttack |
net6.0 | 287μs | 35.3ns | 127ns | 0 | 0 | 0 | 2.24 KB |
| master | RunWafRealisticBenchmarkWithAttack |
netcoreapp3.1 | 694μs | 11.8μs | 117μs | 0 | 0 | 0 | 2.22 KB |
| master | RunWafRealisticBenchmarkWithAttack |
net472 | 309μs | 23.1ns | 89.4ns | 0 | 0 | 0 | 2.29 KB |
| #7707 | RunWafRealisticBenchmark |
net6.0 | 392μs | 126ns | 471ns | 0 | 0 | 0 | 4.56 KB |
| #7707 | RunWafRealisticBenchmark |
netcoreapp3.1 | 407μs | 84.1ns | 303ns | 0 | 0 | 0 | 4.48 KB |
| #7707 | RunWafRealisticBenchmark |
net472 | 427μs | 59.2ns | 229ns | 0 | 0 | 0 | 4.66 KB |
| #7707 | RunWafRealisticBenchmarkWithAttack |
net6.0 | 288μs | 39.1ns | 146ns | 0 | 0 | 0 | 2.24 KB |
| #7707 | RunWafRealisticBenchmarkWithAttack |
netcoreapp3.1 | 677μs | 13.4μs | 134μs | 0 | 0 | 0 | 2.22 KB |
| #7707 | RunWafRealisticBenchmarkWithAttack |
net472 | 309μs | 31.1ns | 120ns | 0 | 0 | 0 | 2.29 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 | 61.5μs | 40.3ns | 140ns | 0 | 0 | 0 | 14.52 KB |
| master | SendRequest |
netcoreapp3.1 | 70.6μs | 90.3ns | 326ns | 0 | 0 | 0 | 17.42 KB |
| master | SendRequest |
net472 | 0.0032ns | 0.00173ns | 0.00671ns | 0 | 0 | 0 | 0 b |
| #7707 | SendRequest |
net6.0 | 61.6μs | 32.1ns | 124ns | 0 | 0 | 0 | 14.52 KB |
| #7707 | SendRequest |
netcoreapp3.1 | 72.6μs | 371ns | 2.03μs | 0 | 0 | 0 | 17.42 KB |
| #7707 | SendRequest |
net472 | 0.00497ns | 0.00186ns | 0.00672ns | 0 | 0 | 0 | 0 b |
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ More allocations ⚠️
More allocations ⚠️ in #7707
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net472
0 b
73 B
73 B
∞
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1
0 b
10 B
10 B
∞
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net472
0 b
51 B
51 B
∞
Fewer allocations 🎉 in #7707
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0
7 B
4 B
-3 B
-42.86%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0
4 B
1 B
-3 B
-75.00%
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net472 | 0 b | 73 B | 73 B | ∞ |
| Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1 | 0 b | 10 B | 10 B | ∞ |
| Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net472 | 0 b | 51 B | 51 B | ∞ |
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 | 7 B | 4 B | -3 B | -42.86% |
| Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 | 4 B | 1 B | -3 B | -75.00% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | OriginalCharSlice |
net6.0 | 1.95ms | 250ns | 935ns | 0 | 0 | 0 | 640.01 KB |
| master | OriginalCharSlice |
netcoreapp3.1 | 2.16ms | 3.17μs | 12.3μs | 0 | 0 | 0 | 640 KB |
| master | OriginalCharSlice |
net472 | 2.68ms | 113ns | 407ns | 100 | 0 | 0 | 641.95 KB |
| master | OptimizedCharSlice |
net6.0 | 1.4ms | 81.5ns | 305ns | 0 | 0 | 0 | 7 B |
| master | OptimizedCharSlice |
netcoreapp3.1 | 1.76ms | 613ns | 2.21μs | 0 | 0 | 0 | 1 B |
| master | OptimizedCharSlice |
net472 | 1.89ms | 310ns | 1.2μs | 0 | 0 | 0 | 0 b |
| master | OptimizedCharSliceWithPool |
net6.0 | 813μs | 16.6ns | 60ns | 0 | 0 | 0 | 4 B |
| master | OptimizedCharSliceWithPool |
netcoreapp3.1 | 879μs | 126ns | 487ns | 0 | 0 | 0 | 0 b |
| master | OptimizedCharSliceWithPool |
net472 | 1.16ms | 73ns | 283ns | 0 | 0 | 0 | 0 b |
| #7707 | OriginalCharSlice |
net6.0 | 2.03ms | 2.31μs | 8.63μs | 0 | 0 | 0 | 640.01 KB |
| #7707 | OriginalCharSlice |
netcoreapp3.1 | 2.07ms | 6.89μs | 25.8μs | 0 | 0 | 0 | 640 KB |
| #7707 | OriginalCharSlice |
net472 | 2.65ms | 231ns | 831ns | 100 | 0 | 0 | 641.95 KB |
| #7707 | OptimizedCharSlice |
net6.0 | 1.41ms | 402ns | 1.56μs | 0 | 0 | 0 | 4 B |
| #7707 | OptimizedCharSlice |
netcoreapp3.1 | 1.76ms | 132ns | 492ns | 0 | 0 | 0 | 1 B |
| #7707 | OptimizedCharSlice |
net472 | 2.01ms | 394ns | 1.53μs | 0 | 0 | 0 | 73 B |
| #7707 | OptimizedCharSliceWithPool |
net6.0 | 806μs | 79.7ns | 309ns | 0 | 0 | 0 | 1 B |
| #7707 | OptimizedCharSliceWithPool |
netcoreapp3.1 | 810μs | 189ns | 730ns | 0 | 0 | 0 | 10 B |
| #7707 | OptimizedCharSliceWithPool |
net472 | 1.16ms | 97.4ns | 377ns | 0 | 0 | 0 | 51 B |
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Slower ⚠️ More allocations ⚠️
Slower ⚠️ in #7707
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0
1.157
656,701.25
759,768.33
More allocations ⚠️ in #7707
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472
56.08 KB
56.42 KB
341 B
0.61%
| Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 | 1.157 | 656,701.25 | 759,768.33 |
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 | 56.08 KB | 56.42 KB | 341 B | 0.61% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | WriteAndFlushEnrichedTraces |
net6.0 | 656μs | 967ns | 3.62μs | 0 | 0 | 0 | 41.71 KB |
| master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 699μs | 4.07μs | 34.3μs | 0 | 0 | 0 | 41.9 KB |
| master | WriteAndFlushEnrichedTraces |
net472 | 883μs | 3.31μs | 12.8μs | 8.33 | 0 | 0 | 56.08 KB |
| #7707 | WriteAndFlushEnrichedTraces |
net6.0 | 760μs | 599ns | 2.24μs | 0 | 0 | 0 | 41.7 KB |
| #7707 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 663μs | 968ns | 3.35μs | 0 | 0 | 0 | 41.98 KB |
| #7707 | WriteAndFlushEnrichedTraces |
net472 | 852μs | 3.14μs | 11.8μs | 8.33 | 0 | 0 | 56.42 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.87μs | 8.17ns | 30.6ns | 0 | 0 | 0 | 1.02 KB |
| master | ExecuteNonQuery |
netcoreapp3.1 | 2.64μs | 5.14ns | 19.9ns | 0 | 0 | 0 | 1.02 KB |
| master | ExecuteNonQuery |
net472 | 2.9μs | 2.84ns | 11ns | 0.146 | 0.0146 | 0 | 987 B |
| #7707 | ExecuteNonQuery |
net6.0 | 1.92μs | 2.1ns | 8.13ns | 0 | 0 | 0 | 1.02 KB |
| #7707 | ExecuteNonQuery |
netcoreapp3.1 | 2.57μs | 9.75ns | 37.8ns | 0 | 0 | 0 | 1.02 KB |
| #7707 | ExecuteNonQuery |
net472 | 2.77μs | 3.4ns | 12.7ns | 0.151 | 0.0138 | 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.79μs | 8.28ns | 32.1ns | 0 | 0 | 0 | 1.03 KB |
| master | CallElasticsearch |
netcoreapp3.1 | 2.19μs | 7.12ns | 27.6ns | 0 | 0 | 0 | 1.03 KB |
| master | CallElasticsearch |
net472 | 3.75μs | 2.4ns | 8.99ns | 0.149 | 0 | 0 | 1.04 KB |
| master | CallElasticsearchAsync |
net6.0 | 1.85μs | 9.3ns | 41.6ns | 0 | 0 | 0 | 1.01 KB |
| master | CallElasticsearchAsync |
netcoreapp3.1 | 2.32μs | 10.2ns | 39.5ns | 0 | 0 | 0 | 1.08 KB |
| master | CallElasticsearchAsync |
net472 | 3.62μs | 4.66ns | 18ns | 0.162 | 0 | 0 | 1.1 KB |
| #7707 | CallElasticsearch |
net6.0 | 1.71μs | 9.29ns | 54.2ns | 0 | 0 | 0 | 1.03 KB |
| #7707 | CallElasticsearch |
netcoreapp3.1 | 2.17μs | 10.8ns | 44.4ns | 0 | 0 | 0 | 1.03 KB |
| #7707 | CallElasticsearch |
net472 | 3.57μs | 8.11ns | 31.4ns | 0.159 | 0 | 0 | 1.04 KB |
| #7707 | CallElasticsearchAsync |
net6.0 | 1.8μs | 9.22ns | 40.2ns | 0 | 0 | 0 | 1.01 KB |
| #7707 | CallElasticsearchAsync |
netcoreapp3.1 | 2.33μs | 10.1ns | 39ns | 0 | 0 | 0 | 1.08 KB |
| #7707 | CallElasticsearchAsync |
net472 | 3.62μs | 3.29ns | 12.3ns | 0.163 | 0 | 0 | 1.1 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.91μs | 9.2ns | 39ns | 0 | 0 | 0 | 952 B |
| master | ExecuteAsync |
netcoreapp3.1 | 2.55μs | 11.6ns | 46.6ns | 0 | 0 | 0 | 952 B |
| master | ExecuteAsync |
net472 | 2.71μs | 1.65ns | 6.38ns | 0.135 | 0 | 0 | 915 B |
| #7707 | ExecuteAsync |
net6.0 | 1.82μs | 5.8ns | 21.7ns | 0 | 0 | 0 | 952 B |
| #7707 | ExecuteAsync |
netcoreapp3.1 | 2.47μs | 2.56ns | 9.23ns | 0 | 0 | 0 | 952 B |
| #7707 | ExecuteAsync |
net472 | 2.63μs | 0.801ns | 3.1ns | 0.132 | 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 | 6.96μs | 21.8ns | 81.4ns | 0 | 0 | 0 | 2.36 KB |
| master | SendAsync |
netcoreapp3.1 | 8.76μs | 16ns | 62ns | 0 | 0 | 0 | 2.9 KB |
| master | SendAsync |
net472 | 12.4μs | 8.03ns | 31.1ns | 0.495 | 0 | 0 | 3.18 KB |
| #7707 | SendAsync |
net6.0 | 7.05μs | 5.88ns | 21.2ns | 0 | 0 | 0 | 2.36 KB |
| #7707 | SendAsync |
netcoreapp3.1 | 8.56μs | 12.4ns | 48ns | 0 | 0 | 0 | 2.9 KB |
| #7707 | SendAsync |
net472 | 12.4μs | 13.5ns | 52.1ns | 0.495 | 0 | 0 | 3.18 KB |
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️
More allocations ⚠️ in #7707
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0
43.44 KB
43.73 KB
288 B
0.66%
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 | 43.44 KB | 43.73 KB | 288 B | 0.66% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StringConcatBenchmark |
net6.0 | 43.3μs | 167ns | 579ns | 0 | 0 | 0 | 43.44 KB |
| master | StringConcatBenchmark |
netcoreapp3.1 | 48.7μs | 261ns | 1.95μs | 0 | 0 | 0 | 42.94 KB |
| master | StringConcatBenchmark |
net472 | 57.4μs | 224ns | 840ns | 0 | 0 | 0 | 65.54 KB |
| master | StringConcatAspectBenchmark |
net6.0 | 468μs | 1.25μs | 4.5μs | 0 | 0 | 0 | 274.9 KB |
| master | StringConcatAspectBenchmark |
netcoreapp3.1 | 503μs | 1.8μs | 7.22μs | 0 | 0 | 0 | 274.75 KB |
| master | StringConcatAspectBenchmark |
net472 | 401μs | 2.16μs | 12.2μs | 0 | 0 | 0 | 278.53 KB |
| #7707 | StringConcatBenchmark |
net6.0 | 41.1μs | 187ns | 673ns | 0 | 0 | 0 | 43.73 KB |
| #7707 | StringConcatBenchmark |
netcoreapp3.1 | 49.6μs | 271ns | 1.86μs | 0 | 0 | 0 | 42.74 KB |
| #7707 | StringConcatBenchmark |
net472 | 56.9μs | 222ns | 801ns | 0 | 0 | 0 | 65.54 KB |
| #7707 | StringConcatAspectBenchmark |
net6.0 | 460μs | 1.48μs | 5.13μs | 0 | 0 | 0 | 276.12 KB |
| #7707 | StringConcatAspectBenchmark |
netcoreapp3.1 | 537μs | 2.48μs | 9.27μs | 0 | 0 | 0 | 273.9 KB |
| #7707 | StringConcatAspectBenchmark |
net472 | 402μs | 2.27μs | 15.6μs | 0 | 0 | 0 | 278.53 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 | 2.65μs | 0.546ns | 2.12ns | 0 | 0 | 0 | 1.7 KB |
| master | EnrichedLog |
netcoreapp3.1 | 3.68μs | 15.5ns | 60.1ns | 0 | 0 | 0 | 1.7 KB |
| master | EnrichedLog |
net472 | 3.82μs | 2.46ns | 9.53ns | 0.248 | 0 | 0 | 1.64 KB |
| #7707 | EnrichedLog |
net6.0 | 2.58μs | 12.1ns | 49.9ns | 0 | 0 | 0 | 1.7 KB |
| #7707 | EnrichedLog |
netcoreapp3.1 | 3.62μs | 14.4ns | 55.6ns | 0 | 0 | 0 | 1.7 KB |
| #7707 | EnrichedLog |
net472 | 3.8μs | 2.91ns | 10.9ns | 0.246 | 0 | 0 | 1.64 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 | 126μs | 183ns | 685ns | 0 | 0 | 0 | 4.31 KB |
| master | EnrichedLog |
netcoreapp3.1 | 129μs | 63.2ns | 219ns | 0 | 0 | 0 | 4.31 KB |
| master | EnrichedLog |
net472 | 170μs | 50.8ns | 197ns | 0 | 0 | 0 | 4.52 KB |
| #7707 | EnrichedLog |
net6.0 | 122μs | 50.7ns | 183ns | 0 | 0 | 0 | 4.31 KB |
| #7707 | EnrichedLog |
netcoreapp3.1 | 129μs | 142ns | 552ns | 0 | 0 | 0 | 4.31 KB |
| #7707 | EnrichedLog |
net472 | 167μs | 91.7ns | 343ns | 0 | 0 | 0 | 4.51 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 | 4.88μs | 3.37ns | 12.6ns | 0 | 0 | 0 | 2.26 KB |
| master | EnrichedLog |
netcoreapp3.1 | 6.89μs | 12.8ns | 49.5ns | 0 | 0 | 0 | 2.26 KB |
| master | EnrichedLog |
net472 | 7.65μs | 3.5ns | 13.6ns | 0.304 | 0 | 0 | 2.08 KB |
| #7707 | EnrichedLog |
net6.0 | 4.97μs | 5.33ns | 20ns | 0 | 0 | 0 | 2.26 KB |
| #7707 | EnrichedLog |
netcoreapp3.1 | 6.71μs | 35.4ns | 177ns | 0 | 0 | 0 | 2.26 KB |
| #7707 | EnrichedLog |
net472 | 7.81μs | 5.44ns | 20.4ns | 0.311 | 0 | 0 | 2.08 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 | 2.04μs | 8.68ns | 33.6ns | 0 | 0 | 0 | 1.2 KB |
| master | SendReceive |
netcoreapp3.1 | 2.72μs | 12.6ns | 50.2ns | 0 | 0 | 0 | 1.2 KB |
| master | SendReceive |
net472 | 3.16μs | 6.92ns | 26.8ns | 0.187 | 0 | 0 | 1.2 KB |
| #7707 | SendReceive |
net6.0 | 2.05μs | 9.18ns | 35.5ns | 0 | 0 | 0 | 1.2 KB |
| #7707 | SendReceive |
netcoreapp3.1 | 2.76μs | 13.7ns | 58.3ns | 0 | 0 | 0 | 1.2 KB |
| #7707 | SendReceive |
net472 | 3.13μs | 7.85ns | 30.4ns | 0.188 | 0 | 0 | 1.2 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 | 4.3μs | 11.8ns | 45.7ns | 0 | 0 | 0 | 1.58 KB |
| master | EnrichedLog |
netcoreapp3.1 | 5.85μs | 12.9ns | 50ns | 0 | 0 | 0 | 1.63 KB |
| master | EnrichedLog |
net472 | 6.54μs | 8.62ns | 33.4ns | 0.293 | 0 | 0 | 2.03 KB |
| #7707 | EnrichedLog |
net6.0 | 4.3μs | 10.5ns | 40.7ns | 0 | 0 | 0 | 1.58 KB |
| #7707 | EnrichedLog |
netcoreapp3.1 | 5.67μs | 11.4ns | 44.3ns | 0 | 0 | 0 | 1.63 KB |
| #7707 | EnrichedLog |
net472 | 6.6μs | 6.71ns | 25.1ns | 0.298 | 0 | 0 | 2.03 KB |
Benchmarks.Trace.SpanBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StartFinishSpan |
net6.0 | 794ns | 0.468ns | 1.81ns | 0 | 0 | 0 | 576 B |
| master | StartFinishSpan |
netcoreapp3.1 | 1μs | 3.87ns | 14.5ns | 0 | 0 | 0 | 576 B |
| master | StartFinishSpan |
net472 | 910ns | 0.371ns | 1.44ns | 0.0914 | 0 | 0 | 578 B |
| master | StartFinishScope |
net6.0 | 912ns | 4.99ns | 29.1ns | 0 | 0 | 0 | 696 B |
| master | StartFinishScope |
netcoreapp3.1 | 1.18μs | 6.18ns | 30.3ns | 0 | 0 | 0 | 697 B |
| master | StartFinishScope |
net472 | 1.18μs | 2.24ns | 8.37ns | 0.1 | 0 | 0 | 658 B |
| #7707 | StartFinishSpan |
net6.0 | 770ns | 3.33ns | 12ns | 0 | 0 | 0 | 576 B |
| #7707 | StartFinishSpan |
netcoreapp3.1 | 962ns | 4.5ns | 17.4ns | 0 | 0 | 0 | 576 B |
| #7707 | StartFinishSpan |
net472 | 928ns | 0.335ns | 1.3ns | 0.0873 | 0 | 0 | 578 B |
| #7707 | StartFinishScope |
net6.0 | 948ns | 0.686ns | 2.57ns | 0 | 0 | 0 | 696 B |
| #7707 | StartFinishScope |
netcoreapp3.1 | 1.2μs | 6.14ns | 29.4ns | 0 | 0 | 0 | 696 B |
| #7707 | StartFinishScope |
net472 | 1.14μs | 0.371ns | 1.44ns | 0.102 | 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 | 1.08μs | 2.67ns | 10.3ns | 0 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
netcoreapp3.1 | 1.42μs | 6.95ns | 31.1ns | 0 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
net472 | 1.44μs | 1.28ns | 4.79ns | 0.101 | 0 | 0 | 658 B |
| #7707 | RunOnMethodBegin |
net6.0 | 1.07μs | 4.69ns | 18.2ns | 0 | 0 | 0 | 696 B |
| #7707 | RunOnMethodBegin |
netcoreapp3.1 | 1.4μs | 6.88ns | 31.5ns | 0 | 0 | 0 | 696 B |
| #7707 | RunOnMethodBegin |
net472 | 1.45μs | 1.43ns | 5.54ns | 0.101 | 0 | 0 | 658 B |
andrewlock
approved these changes
Oct 29, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
:blindfold:
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of changes
Adds two new sections to
docs/development/CI/TroubleshootingCIFailures.md:Reason for change
While investigating profiler test failures after PR #7568, I developed investigation techniques that aren't documented. These will help developers diagnose similar issues faster.
Implementation details
Test coverage
N/A - Documentation only
Other details
Based on investigation of profiler test failures caused by PR #7568's managed loader auto-detection feature.