-
Couldn't load subscription status.
- Fork 150
[Config Registry] 1/5 Add gitlab step and json configuration file and yaml for doc #7548
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
Conversation
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.8)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7548) - mean (85ms) : crit, 77, 93
. : crit, milestone, 85,
master - mean (72ms) : 71, 73
. : milestone, 72,
section Baseline
This PR (7548) - mean (81ms) : 74, 88
. : milestone, 81,
master - mean (68ms) : 66, 69
. : milestone, 68,
section CallTarget+Inlining+NGEN
This PR (7548) - mean (1,150ms) : crit, 1054, 1245
. : crit, milestone, 1150,
master - mean (1,040ms) : 997, 1084
. : milestone, 1040,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7548) - mean (124ms) : crit, 114, 135
. : crit, milestone, 124,
master - mean (106ms) : 105, 108
. : milestone, 106,
section Baseline
This PR (7548) - mean (122ms) : 108, 135
. : milestone, 122,
master - mean (105ms) : 103, 107
. : milestone, 105,
section CallTarget+Inlining+NGEN
This PR (7548) - mean (839ms) : crit, 787, 890
. : crit, milestone, 839,
master - mean (746ms) : 720, 772
. : milestone, 746,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7548) - mean (112ms) : crit, 103, 121
. : crit, milestone, 112,
master - mean (94ms) : 93, 95
. : milestone, 94,
section Baseline
This PR (7548) - mean (111ms) : 100, 123
. : milestone, 111,
master - mean (93ms) : 91, 95
. : milestone, 93,
section CallTarget+Inlining+NGEN
This PR (7548) - mean (797ms) : crit, 724, 870
. : crit, milestone, 797,
master - mean (707ms) : 672, 742
. : milestone, 707,
gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7548) - mean (111ms) : crit, 100, 122
. : crit, milestone, 111,
master - mean (92ms) : 91, 93
. : milestone, 92,
section Baseline
This PR (7548) - mean (108ms) : 97, 119
. : milestone, 108,
master - mean (91ms) : 89, 93
. : milestone, 91,
section CallTarget+Inlining+NGEN
This PR (7548) - mean (731ms) : crit, 692, 769
. : crit, milestone, 731,
master - mean (661ms) : 646, 676
. : milestone, 661,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7548) - mean (201ms) : 196, 206
. : milestone, 201,
master - mean (195ms) : 192, 197
. : milestone, 195,
section Baseline
This PR (7548) - mean (194ms) : 189, 198
. : milestone, 194,
master - mean (191ms) : 189, 194
. : milestone, 191,
section CallTarget+Inlining+NGEN
This PR (7548) - mean (1,194ms) : 1121, 1266
. : milestone, 1194,
master - mean (1,156ms) : 1094, 1218
. : milestone, 1156,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7548) - mean (286ms) : 282, 290
. : milestone, 286,
master - mean (275ms) : 272, 279
. : milestone, 275,
section Baseline
This PR (7548) - mean (288ms) : 281, 296
. : milestone, 288,
master - mean (276ms) : 271, 281
. : milestone, 276,
section CallTarget+Inlining+NGEN
This PR (7548) - mean (971ms) : 932, 1010
. : milestone, 971,
master - mean (942ms) : 903, 980
. : milestone, 942,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7548) - mean (281ms) : 272, 290
. : milestone, 281,
master - mean (268ms) : 264, 272
. : milestone, 268,
section Baseline
This PR (7548) - mean (282ms) : 274, 289
. : milestone, 282,
master - mean (267ms) : 264, 271
. : milestone, 267,
section CallTarget+Inlining+NGEN
This PR (7548) - mean (957ms) : 908, 1006
. : milestone, 957,
master - mean (922ms) : 875, 969
. : milestone, 922,
gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7548) - mean (286ms) : crit, 278, 293
. : crit, milestone, 286,
master - mean (266ms) : 262, 269
. : milestone, 266,
section Baseline
This PR (7548) - mean (288ms) : 278, 298
. : milestone, 288,
master - mean (266ms) : 260, 271
. : milestone, 266,
section CallTarget+Inlining+NGEN
This PR (7548) - mean (879ms) : 836, 922
. : milestone, 879,
master - mean (850ms) : 828, 872
. : milestone, 850,
|
6352791 to
234f700
Compare
This comment has been minimized.
This comment has been minimized.
56b17eb to
7fb125e
Compare
99d54ea to
f88a926
Compare
f88a926 to
1cfe73f
Compare
BenchmarksBenchmarks Report for benchmark platform 🐌Benchmarks for #7548 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‑net6.0 | 5.49 KB | 5.44 KB | -49 B | -0.89% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StartStopWithChild |
net6.0 | 10.5μs | 59.8ns | 406ns | 0 | 0 | 0 | 5.49 KB |
| master | StartStopWithChild |
netcoreapp3.1 | 13.5μs | 69.7ns | 334ns | 0 | 0 | 0 | 5.72 KB |
| master | StartStopWithChild |
net472 | 22.3μs | 122ns | 711ns | 0.98 | 0.327 | 0.109 | 6.05 KB |
| #7548 | StartStopWithChild |
net6.0 | 10.5μs | 59.5ns | 421ns | 0 | 0 | 0 | 5.44 KB |
| #7548 | StartStopWithChild |
netcoreapp3.1 | 14.1μs | 67.2ns | 277ns | 0 | 0 | 0 | 5.73 KB |
| #7548 | StartStopWithChild |
net472 | 21.9μs | 122ns | 730ns | 1.07 | 0.32 | 0.107 | 6.04 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 | 935μs | 96ns | 346ns | 0 | 0 | 0 | 2.71 KB |
| master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 1.03ms | 220ns | 853ns | 0 | 0 | 0 | 2.7 KB |
| master | WriteAndFlushEnrichedTraces |
net472 | 1.19ms | 582ns | 2.25μs | 0 | 0 | 0 | 3.31 KB |
| #7548 | WriteAndFlushEnrichedTraces |
net6.0 | 930μs | 229ns | 889ns | 0 | 0 | 0 | 2.71 KB |
| #7548 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 1.02ms | 480ns | 1.86μs | 0 | 0 | 0 | 2.7 KB |
| #7548 | WriteAndFlushEnrichedTraces |
net472 | 1.2ms | 106ns | 409ns | 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 | 330ns | 0.555ns | 2.08ns | 0 | 0 | 0 | 280 B |
| master | ObjectExtractorSimpleBody |
netcoreapp3.1 | 409ns | 0.489ns | 1.83ns | 0 | 0 | 0 | 272 B |
| master | ObjectExtractorSimpleBody |
net472 | 299ns | 0.0231ns | 0.0834ns | 0.0438 | 0 | 0 | 281 B |
| master | ObjectExtractorMoreComplexBody |
net6.0 | 6.27μs | 24.5ns | 95ns | 0 | 0 | 0 | 3.78 KB |
| master | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 7.94μs | 8.1ns | 31.4ns | 0 | 0 | 0 | 3.69 KB |
| master | ObjectExtractorMoreComplexBody |
net472 | 6.61μs | 5.12ns | 19.8ns | 0.595 | 0 | 0 | 3.8 KB |
| #7548 | AllCycleSimpleBody |
net6.0 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| #7548 | AllCycleSimpleBody |
netcoreapp3.1 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| #7548 | AllCycleSimpleBody |
net472 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| #7548 | AllCycleMoreComplexBody |
net6.0 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| #7548 | AllCycleMoreComplexBody |
netcoreapp3.1 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| #7548 | AllCycleMoreComplexBody |
net472 | N/A | N/A | N/A | NaN | NaN | NaN | 0 b |
| #7548 | ObjectExtractorSimpleBody |
net6.0 | 325ns | 1.75ns | 9.43ns | 0 | 0 | 0 | 280 B |
| #7548 | ObjectExtractorSimpleBody |
netcoreapp3.1 | 396ns | 2.21ns | 13.1ns | 0 | 0 | 0 | 272 B |
| #7548 | ObjectExtractorSimpleBody |
net472 | 305ns | 0.0337ns | 0.131ns | 0.0442 | 0 | 0 | 281 B |
| #7548 | ObjectExtractorMoreComplexBody |
net6.0 | 6.33μs | 3.78ns | 14.6ns | 0 | 0 | 0 | 3.78 KB |
| #7548 | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 7.84μs | 35.1ns | 136ns | 0 | 0 | 0 | 3.69 KB |
| #7548 | ObjectExtractorMoreComplexBody |
net472 | 6.69μs | 2.01ns | 7.79ns | 0.571 | 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 | 75.4μs | 271ns | 1.05μs | 0 | 0 | 0 | 32.4 KB |
| master | EncodeArgs |
netcoreapp3.1 | 97.7μs | 27.7ns | 107ns | 0 | 0 | 0 | 32.4 KB |
| master | EncodeArgs |
net472 | 109μs | 53.7ns | 208ns | 4.91 | 0 | 0 | 32.51 KB |
| master | EncodeLegacyArgs |
net6.0 | 144μs | 6.8ns | 26.3ns | 0 | 0 | 0 | 2.15 KB |
| master | EncodeLegacyArgs |
netcoreapp3.1 | 202μs | 570ns | 2.21μs | 0 | 0 | 0 | 2.14 KB |
| master | EncodeLegacyArgs |
net472 | 263μs | 33.9ns | 122ns | 0 | 0 | 0 | 2.17 KB |
| #7548 | EncodeArgs |
net6.0 | 77.3μs | 125ns | 483ns | 0 | 0 | 0 | 32.4 KB |
| #7548 | EncodeArgs |
netcoreapp3.1 | 98.9μs | 254ns | 986ns | 0 | 0 | 0 | 32.4 KB |
| #7548 | EncodeArgs |
net472 | 109μs | 7.42ns | 25.7ns | 4.9 | 0 | 0 | 32.51 KB |
| #7548 | EncodeLegacyArgs |
net6.0 | 145μs | 73.2ns | 274ns | 0 | 0 | 0 | 2.15 KB |
| #7548 | EncodeLegacyArgs |
netcoreapp3.1 | 198μs | 179ns | 668ns | 0 | 0 | 0 | 2.14 KB |
| #7548 | EncodeLegacyArgs |
net472 | 266μs | 307ns | 1.19μs | 0 | 0 | 0 | 2.16 KB |
Benchmarks.Trace.Asm.AppSecWafBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #7548
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑netcoreapp3.1
2.430
298,308.56
725,024.40
| Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑netcoreapp3.1 | 2.430 | 298,308.56 | 725,024.40 |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | RunWafRealisticBenchmark |
net6.0 | 396μs | 64.5ns | 250ns | 0 | 0 | 0 | 4.55 KB |
| master | RunWafRealisticBenchmark |
netcoreapp3.1 | 410μs | 67.3ns | 252ns | 0 | 0 | 0 | 4.48 KB |
| master | RunWafRealisticBenchmark |
net472 | 431μs | 34.7ns | 125ns | 0 | 0 | 0 | 4.68 KB |
| master | RunWafRealisticBenchmarkWithAttack |
net6.0 | 288μs | 48.4ns | 175ns | 0 | 0 | 0 | 2.24 KB |
| master | RunWafRealisticBenchmarkWithAttack |
netcoreapp3.1 | 298μs | 163ns | 610ns | 0 | 0 | 0 | 2.22 KB |
| master | RunWafRealisticBenchmarkWithAttack |
net472 | 314μs | 27.5ns | 99.2ns | 0 | 0 | 0 | 2.29 KB |
| #7548 | RunWafRealisticBenchmark |
net6.0 | 391μs | 56.4ns | 218ns | 0 | 0 | 0 | 4.55 KB |
| #7548 | RunWafRealisticBenchmark |
netcoreapp3.1 | 409μs | 51.4ns | 192ns | 0 | 0 | 0 | 4.48 KB |
| #7548 | RunWafRealisticBenchmark |
net472 | 430μs | 23.5ns | 88ns | 0 | 0 | 0 | 4.68 KB |
| #7548 | RunWafRealisticBenchmarkWithAttack |
net6.0 | 286μs | 32.4ns | 117ns | 0 | 0 | 0 | 2.24 KB |
| #7548 | RunWafRealisticBenchmarkWithAttack |
netcoreapp3.1 | 682μs | 12.4μs | 124μs | 0 | 0 | 0 | 2.22 KB |
| #7548 | RunWafRealisticBenchmarkWithAttack |
net472 | 310μs | 34.6ns | 134ns | 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μs | 63.7ns | 229ns | 0 | 0 | 0 | 14.52 KB |
| master | SendRequest |
netcoreapp3.1 | 71.9μs | 65ns | 243ns | 0 | 0 | 0 | 17.42 KB |
| master | SendRequest |
net472 | 0.000221ns | 0.000221ns | 0.000858ns | 0 | 0 | 0 | 0 b |
| #7548 | SendRequest |
net6.0 | 61.5μs | 313ns | 1.47μs | 0 | 0 | 0 | 14.52 KB |
| #7548 | SendRequest |
netcoreapp3.1 | 71.1μs | 74.3ns | 288ns | 0 | 0 | 0 | 17.42 KB |
| #7548 | SendRequest |
net472 | 0.00225ns | 0.0011ns | 0.00427ns | 0 | 0 | 0 | 0 b |
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ Fewer allocations 🎉
Fewer allocations 🎉 in #7548
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net472
48 B
47 B
-1 B
-2.08%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0
6 B
4 B
-2 B
-33.33%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0
5 B
3 B
-2 B
-40.00%
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net472 | 48 B | 47 B | -1 B | -2.08% |
| Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 | 6 B | 4 B | -2 B | -33.33% |
| Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 | 5 B | 3 B | -2 B | -40.00% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | OriginalCharSlice |
net6.0 | 1.93ms | 2.64μs | 10.2μs | 0 | 0 | 0 | 640.01 KB |
| master | OriginalCharSlice |
netcoreapp3.1 | 2.28ms | 11.6μs | 53.3μs | 0 | 0 | 0 | 640.09 KB |
| master | OriginalCharSlice |
net472 | 2.63ms | 703ns | 2.54μs | 100 | 0 | 0 | 641.95 KB |
| master | OptimizedCharSlice |
net6.0 | 1.41ms | 104ns | 403ns | 0 | 0 | 0 | 6 B |
| master | OptimizedCharSlice |
netcoreapp3.1 | 1.75ms | 479ns | 1.85μs | 0 | 0 | 0 | 1 B |
| master | OptimizedCharSlice |
net472 | 1.94ms | 270ns | 1.04μs | 0 | 0 | 0 | 73 B |
| master | OptimizedCharSliceWithPool |
net6.0 | 875μs | 116ns | 450ns | 0 | 0 | 0 | 5 B |
| master | OptimizedCharSliceWithPool |
netcoreapp3.1 | 798μs | 124ns | 480ns | 0 | 0 | 0 | 0 b |
| master | OptimizedCharSliceWithPool |
net472 | 1.13ms | 102ns | 397ns | 0 | 0 | 0 | 48 B |
| #7548 | OriginalCharSlice |
net6.0 | 1.88ms | 5.77μs | 21.6μs | 0 | 0 | 0 | 640.01 KB |
| #7548 | OriginalCharSlice |
netcoreapp3.1 | 2.13ms | 7.45μs | 28.8μs | 0 | 0 | 0 | 640 KB |
| #7548 | OriginalCharSlice |
net472 | 2.72ms | 1.13μs | 4.36μs | 100 | 0 | 0 | 641.95 KB |
| #7548 | OptimizedCharSlice |
net6.0 | 1.37ms | 146ns | 564ns | 0 | 0 | 0 | 4 B |
| #7548 | OptimizedCharSlice |
netcoreapp3.1 | 1.71ms | 633ns | 2.45μs | 0 | 0 | 0 | 1 B |
| #7548 | OptimizedCharSlice |
net472 | 1.91ms | 172ns | 644ns | 0 | 0 | 0 | 73 B |
| #7548 | OptimizedCharSliceWithPool |
net6.0 | 803μs | 63.9ns | 247ns | 0 | 0 | 0 | 3 B |
| #7548 | OptimizedCharSliceWithPool |
netcoreapp3.1 | 880μs | 124ns | 464ns | 0 | 0 | 0 | 0 b |
| #7548 | OptimizedCharSliceWithPool |
net472 | 1.14ms | 99.2ns | 384ns | 0 | 0 | 0 | 47 B |
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Slower ⚠️ More allocations ⚠️
Slower ⚠️ in #7548
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1
1.308
642,952.40
841,139.66
More allocations ⚠️ in #7548
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1
41.96 KB
42.24 KB
287 B
0.68%
Fewer allocations 🎉 in #7548
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472
56.56 KB
56.18 KB
-376 B
-0.66%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0
42.6 KB
41.69 KB
-910 B
-2.14%
| Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 | 1.308 | 642,952.40 | 841,139.66 |
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 | 41.96 KB | 42.24 KB | 287 B | 0.68% |
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 | 56.56 KB | 56.18 KB | -376 B | -0.66% |
| Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 | 42.6 KB | 41.69 KB | -910 B | -2.14% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | WriteAndFlushEnrichedTraces |
net6.0 | 665μs | 2.63μs | 9.85μs | 0 | 0 | 0 | 42.6 KB |
| master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 640μs | 2.96μs | 10.7μs | 0 | 0 | 0 | 41.96 KB |
| master | WriteAndFlushEnrichedTraces |
net472 | 978μs | 4.14μs | 16μs | 8.33 | 0 | 0 | 56.56 KB |
| #7548 | WriteAndFlushEnrichedTraces |
net6.0 | 717μs | 2.36μs | 9.16μs | 0 | 0 | 0 | 41.69 KB |
| #7548 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 806μs | 6.48μs | 62.5μs | 0 | 0 | 0 | 42.24 KB |
| #7548 | WriteAndFlushEnrichedTraces |
net472 | 874μs | 3.84μs | 14.4μs | 8.33 | 0 | 0 | 56.18 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.83μs | 9.13ns | 38.7ns | 0 | 0 | 0 | 1.02 KB |
| master | ExecuteNonQuery |
netcoreapp3.1 | 2.6μs | 8.02ns | 31ns | 0 | 0 | 0 | 1.02 KB |
| master | ExecuteNonQuery |
net472 | 2.88μs | 4.02ns | 16.1ns | 0.143 | 0.0143 | 0 | 987 B |
| #7548 | ExecuteNonQuery |
net6.0 | 1.86μs | 8.93ns | 36.8ns | 0 | 0 | 0 | 1.02 KB |
| #7548 | ExecuteNonQuery |
netcoreapp3.1 | 2.58μs | 1.06ns | 3.98ns | 0 | 0 | 0 | 1.02 KB |
| #7548 | ExecuteNonQuery |
net472 | 2.88μs | 4.57ns | 17.7ns | 0.145 | 0.0145 | 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.67μs | 7.01ns | 26.2ns | 0 | 0 | 0 | 1.03 KB |
| master | CallElasticsearch |
netcoreapp3.1 | 2.21μs | 10.3ns | 41.2ns | 0 | 0 | 0 | 1.03 KB |
| master | CallElasticsearch |
net472 | 3.65μs | 1.73ns | 6.69ns | 0.164 | 0 | 0 | 1.04 KB |
| master | CallElasticsearchAsync |
net6.0 | 1.86μs | 8.41ns | 31.5ns | 0 | 0 | 0 | 1.01 KB |
| master | CallElasticsearchAsync |
netcoreapp3.1 | 2.34μs | 10.7ns | 41.5ns | 0 | 0 | 0 | 1.08 KB |
| master | CallElasticsearchAsync |
net472 | 3.85μs | 5.9ns | 22.9ns | 0.171 | 0 | 0 | 1.1 KB |
| #7548 | CallElasticsearch |
net6.0 | 1.75μs | 7.8ns | 29.2ns | 0 | 0 | 0 | 1.03 KB |
| #7548 | CallElasticsearch |
netcoreapp3.1 | 2.22μs | 10.3ns | 41.4ns | 0 | 0 | 0 | 1.03 KB |
| #7548 | CallElasticsearch |
net472 | 3.59μs | 4.33ns | 16.8ns | 0.161 | 0 | 0 | 1.04 KB |
| #7548 | CallElasticsearchAsync |
net6.0 | 1.83μs | 8.09ns | 30.3ns | 0 | 0 | 0 | 1.01 KB |
| #7548 | CallElasticsearchAsync |
netcoreapp3.1 | 2.41μs | 10.1ns | 39ns | 0 | 0 | 0 | 1.08 KB |
| #7548 | CallElasticsearchAsync |
net472 | 3.66μs | 3.63ns | 14.1ns | 0.164 | 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.84μs | 6.75ns | 24.4ns | 0 | 0 | 0 | 952 B |
| master | ExecuteAsync |
netcoreapp3.1 | 2.5μs | 8.39ns | 32.5ns | 0 | 0 | 0 | 952 B |
| master | ExecuteAsync |
net472 | 2.62μs | 5.25ns | 20.4ns | 0.143 | 0 | 0 | 915 B |
| #7548 | ExecuteAsync |
net6.0 | 1.92μs | 7.09ns | 26.5ns | 0 | 0 | 0 | 952 B |
| #7548 | ExecuteAsync |
netcoreapp3.1 | 2.51μs | 6.21ns | 24.1ns | 0 | 0 | 0 | 952 B |
| #7548 | ExecuteAsync |
net472 | 2.64μs | 1.3ns | 4.69ns | 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 | 7.06μs | 16.7ns | 62.4ns | 0 | 0 | 0 | 2.36 KB |
| master | SendAsync |
netcoreapp3.1 | 8.43μs | 6.39ns | 23ns | 0 | 0 | 0 | 2.9 KB |
| master | SendAsync |
net472 | 12.3μs | 13.9ns | 53.6ns | 0.491 | 0 | 0 | 3.18 KB |
| #7548 | SendAsync |
net6.0 | 6.79μs | 15.6ns | 58.5ns | 0 | 0 | 0 | 2.36 KB |
| #7548 | SendAsync |
netcoreapp3.1 | 8.26μs | 13.9ns | 53.7ns | 0 | 0 | 0 | 2.9 KB |
| #7548 | SendAsync |
net472 | 12μs | 9.34ns | 34.9ns | 0.477 | 0 | 0 | 3.18 KB |
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️
More allocations ⚠️ in #7548
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1
254.69 KB
257.5 KB
2.81 KB
1.10%
Fewer allocations 🎉 in #7548
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0
43.44 KB
43.1 KB
-336 B
-0.77%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1
43.63 KB
42.76 KB
-872 B
-2.00%
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 | 254.69 KB | 257.5 KB | 2.81 KB | 1.10% |
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 | 43.44 KB | 43.1 KB | -336 B | -0.77% |
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 | 43.63 KB | 42.76 KB | -872 B | -2.00% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StringConcatBenchmark |
net6.0 | 41.4μs | 164ns | 570ns | 0 | 0 | 0 | 43.44 KB |
| master | StringConcatBenchmark |
netcoreapp3.1 | 49.1μs | 256ns | 1.17μs | 0 | 0 | 0 | 43.63 KB |
| master | StringConcatBenchmark |
net472 | 58.4μs | 270ns | 1.05μs | 0 | 0 | 0 | 65.54 KB |
| master | StringConcatAspectBenchmark |
net6.0 | 501μs | 1.84μs | 7.37μs | 0 | 0 | 0 | 277.94 KB |
| master | StringConcatAspectBenchmark |
netcoreapp3.1 | 491μs | 1.67μs | 6.26μs | 0 | 0 | 0 | 254.69 KB |
| master | StringConcatAspectBenchmark |
net472 | 405μs | 2.17μs | 11.3μs | 0 | 0 | 0 | 278.53 KB |
| #7548 | StringConcatBenchmark |
net6.0 | 46.6μs | 402ns | 3.78μs | 0 | 0 | 0 | 43.1 KB |
| #7548 | StringConcatBenchmark |
netcoreapp3.1 | 52.6μs | 732ns | 7.17μs | 0 | 0 | 0 | 42.76 KB |
| #7548 | StringConcatBenchmark |
net472 | 57.7μs | 220ns | 825ns | 0 | 0 | 0 | 65.54 KB |
| #7548 | StringConcatAspectBenchmark |
net6.0 | 488μs | 2.27μs | 8.48μs | 0 | 0 | 0 | 277.37 KB |
| #7548 | StringConcatAspectBenchmark |
netcoreapp3.1 | 506μs | 2.02μs | 7.56μs | 0 | 0 | 0 | 257.5 KB |
| #7548 | StringConcatAspectBenchmark |
net472 | 407μs | 2.31μs | 16.7μ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.71μs | 12.6ns | 50.5ns | 0 | 0 | 0 | 1.7 KB |
| master | EnrichedLog |
netcoreapp3.1 | 3.52μs | 15.8ns | 61.1ns | 0 | 0 | 0 | 1.7 KB |
| master | EnrichedLog |
net472 | 3.81μs | 2.01ns | 7.77ns | 0.247 | 0 | 0 | 1.64 KB |
| #7548 | EnrichedLog |
net6.0 | 2.66μs | 2.48ns | 9.61ns | 0 | 0 | 0 | 1.7 KB |
| #7548 | EnrichedLog |
netcoreapp3.1 | 3.75μs | 14.3ns | 53.5ns | 0 | 0 | 0 | 1.7 KB |
| #7548 | EnrichedLog |
net472 | 3.91μs | 3.97ns | 15.4ns | 0.252 | 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 | 129μs | 492ns | 1.84μs | 0 | 0 | 0 | 4.31 KB |
| master | EnrichedLog |
netcoreapp3.1 | 130μs | 265ns | 954ns | 0 | 0 | 0 | 4.31 KB |
| master | EnrichedLog |
net472 | 168μs | 155ns | 581ns | 0 | 0 | 0 | 4.52 KB |
| #7548 | EnrichedLog |
net6.0 | 124μs | 652ns | 3.2μs | 0 | 0 | 0 | 4.31 KB |
| #7548 | EnrichedLog |
netcoreapp3.1 | 127μs | 135ns | 505ns | 0 | 0 | 0 | 4.31 KB |
| #7548 | EnrichedLog |
net472 | 167μs | 160ns | 619ns | 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 | 5.02μs | 17.4ns | 65.2ns | 0 | 0 | 0 | 2.26 KB |
| master | EnrichedLog |
netcoreapp3.1 | 6.68μs | 13.5ns | 52.1ns | 0 | 0 | 0 | 2.26 KB |
| master | EnrichedLog |
net472 | 7.53μs | 5.43ns | 21ns | 0.299 | 0 | 0 | 2.08 KB |
| #7548 | EnrichedLog |
net6.0 | 4.98μs | 23.1ns | 86.3ns | 0 | 0 | 0 | 2.26 KB |
| #7548 | EnrichedLog |
netcoreapp3.1 | 6.83μs | 20.2ns | 78.3ns | 0 | 0 | 0 | 2.26 KB |
| #7548 | EnrichedLog |
net472 | 7.66μs | 5.35ns | 20.7ns | 0.306 | 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 | 1.95μs | 10.6ns | 54.1ns | 0 | 0 | 0 | 1.2 KB |
| master | SendReceive |
netcoreapp3.1 | 2.62μs | 12.4ns | 52.6ns | 0 | 0 | 0 | 1.2 KB |
| master | SendReceive |
net472 | 3.02μs | 2.72ns | 10.5ns | 0.18 | 0 | 0 | 1.2 KB |
| #7548 | SendReceive |
net6.0 | 1.93μs | 9.59ns | 42.9ns | 0 | 0 | 0 | 1.2 KB |
| #7548 | SendReceive |
netcoreapp3.1 | 2.6μs | 10.8ns | 41.6ns | 0 | 0 | 0 | 1.2 KB |
| #7548 | SendReceive |
net472 | 3.09μs | 0.874ns | 3.39ns | 0.186 | 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 | 7.02ns | 27.2ns | 0 | 0 | 0 | 1.58 KB |
| master | EnrichedLog |
netcoreapp3.1 | 5.65μs | 17.4ns | 67.5ns | 0 | 0 | 0 | 1.63 KB |
| master | EnrichedLog |
net472 | 6.59μs | 7.7ns | 28.8ns | 0.295 | 0 | 0 | 2.03 KB |
| #7548 | EnrichedLog |
net6.0 | 4.31μs | 9.05ns | 35.1ns | 0 | 0 | 0 | 1.58 KB |
| #7548 | EnrichedLog |
netcoreapp3.1 | 5.58μs | 7.87ns | 30.5ns | 0 | 0 | 0 | 1.63 KB |
| #7548 | EnrichedLog |
net472 | 6.72μs | 9.02ns | 34.9ns | 0.303 | 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 | 768ns | 4ns | 19.6ns | 0 | 0 | 0 | 576 B |
| master | StartFinishSpan |
netcoreapp3.1 | 953ns | 4.91ns | 24.1ns | 0 | 0 | 0 | 576 B |
| master | StartFinishSpan |
net472 | 947ns | 0.2ns | 0.72ns | 0.09 | 0 | 0 | 578 B |
| master | StartFinishScope |
net6.0 | 922ns | 0.233ns | 0.904ns | 0 | 0 | 0 | 696 B |
| master | StartFinishScope |
netcoreapp3.1 | 1.2μs | 4.69ns | 18.1ns | 0 | 0 | 0 | 696 B |
| master | StartFinishScope |
net472 | 1.15μs | 0.245ns | 0.882ns | 0.103 | 0 | 0 | 658 B |
| #7548 | StartFinishSpan |
net6.0 | 777ns | 3.62ns | 14.9ns | 0 | 0 | 0 | 576 B |
| #7548 | StartFinishSpan |
netcoreapp3.1 | 965ns | 5.01ns | 25.5ns | 0 | 0 | 0 | 576 B |
| #7548 | StartFinishSpan |
net472 | 964ns | 0.162ns | 0.628ns | 0.0915 | 0 | 0 | 578 B |
| #7548 | StartFinishScope |
net6.0 | 907ns | 4.51ns | 19.1ns | 0 | 0 | 0 | 696 B |
| #7548 | StartFinishScope |
netcoreapp3.1 | 1.17μs | 5.67ns | 24.1ns | 0 | 0 | 0 | 696 B |
| #7548 | StartFinishScope |
net472 | 1.17μs | 0.331ns | 1.28ns | 0.0996 | 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 | 5.04ns | 20.1ns | 0 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
netcoreapp3.1 | 1.41μs | 6.88ns | 31.5ns | 0 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
net472 | 1.49μs | 0.871ns | 3.37ns | 0.104 | 0 | 0 | 658 B |
| #7548 | RunOnMethodBegin |
net6.0 | 1.05μs | 5.16ns | 23.1ns | 0 | 0 | 0 | 696 B |
| #7548 | RunOnMethodBegin |
netcoreapp3.1 | 1.41μs | 7.63ns | 40.4ns | 0 | 0 | 0 | 696 B |
| #7548 | RunOnMethodBegin |
net472 | 1.44μs | 1.1ns | 4.25ns | 0.1 | 0 | 0 | 658 B |
1cfe73f to
096952f
Compare
f45278f to
d40a9fb
Compare
4b53dd1 to
70e632e
Compare
70e632e to
d88e3da
Compare
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.
Where do our other tracing libraries have their declared configurations files? It seems a little strange to me to have a content file like this inside a subfolder alongside existing code.
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.
I thought perhaps adding it to the Configuration folder made sense? but I don't mind changing it if you think it should be somewhere else, at the root in the Solution Items?
in dd-trace-js it's in packages/dd-trace/src/supported-configurations.json
in java, it's in a metadata folder
in ruby it's at the root..
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.
Since this would be difficult to validate 100%, here's what I did to quickly validate this and feel confident about the contents:
- I selected a sample of 5-10 configuration keys here and compared by eye the description with the contents in the existing configuration keys XML.
- I did a CTRL+F in my local
tracer/src/Datadog.Trace/Configurationfolder forconst stringand removed non-applicable variables (non-DD/non-OTEL configs) results from my search. That left 256 entries, and I compared that count to CTRL+F: |in this doc, which had 253 results, so that's close enough for my brute force method.
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.
thank you! yes, from what I noticed, just a few entries dont have docs, but we can add it later
| "version": [ | ||
| "A" | ||
| ], | ||
| "product": "DirectLogSubmission" |
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.
Can we update the product name later? Or does this need to be decided right now and be set in stone? The reason I ask is because I think the various DD_LOGS_DIRECT_SUBMISSION_* flags and DD_LOGS_OTEL_ENABLED could all be categorized as a "Logs" product, but I would rather have that as a separate conversation and not block your work
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.
Yes, the product is something I added for the dotnet tracer to reflect already existing inner classes but it's not set in stone. But that's a good point, how to refactor autogenerated elements? From experience, you can ctrl+R,R on the inner class in the ConfigurationKeys.g.cs which will refactor everywhere in the solution, then change find and replace product name in the supported-configurations.json, so that the newly generated file is the same as what you just refactored. Not sure this is clear lol, I think I'll add something in the docs about this
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.
Overall LGTM. There's a lot of configurations so I listed my review process in my comments 😅
|
@codex review |
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.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "DD_TRACE_PROPAGATION_STYLE_EXTRACT": [ | ||
| "DD_PROPAGATION_STYLE_EXTRACT", | ||
| "DD_TRACE_PROPAGATION_STYLE" | ||
| ], | ||
| "DD_TRACE_PROPAGATION_STYLE_INJECT": [ | ||
| "DD_PROPAGATION_STYLE_INJECT", | ||
| "DD_TRACE_PROPAGATION_STYLE" | ||
| ], |
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.
Remove ambiguous aliases that reuse canonical keys
The alias table introduces names that are already defined as primary configuration keys and even maps the same alias to multiple entries. For instance, DD_TRACE_PROPAGATION_STYLE is declared as a standalone key earlier in the file but here it is also listed as an alias for both DD_TRACE_PROPAGATION_STYLE_EXTRACT and DD_TRACE_PROPAGATION_STYLE_INJECT; likewise OTEL_EXPORTER_OTLP_PROTOCOL is reused for the metrics and logs variants. Downstream tooling that resolves aliases cannot deterministically choose which canonical key to use, so one of the entries will be dropped or the wrong configuration documented. Each alias should point to exactly one canonical key, and alias names should not also appear as canonical keys.
Useful? React with 👍 / 👎.
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.
I'm gonna 👍🏽 because it does bring up an interesting point about
DD_TRACE_PROPAGATION_STYLE
DD_TRACE_PROPAGATION_STYLE_EXTRACT
DD_TRACE_PROPAGATION_STYLE_INJECT
DD_TRACE_PROPAGATION_STYLE really is just a fallback (alias) for the other two.
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.
I could remove DD_TRACE_PROPAGATION_STYLE
I still need OTEL_EXPORTER_OTLP_PROTOCOL that is directly used in TracerSettings
The thing is if they're not listed as keys above, they wont generate a constant in ConfigurationKeys later on, and if it's needed directly without fallbacks by the ConfigurationBuilder like it is for OtlpGeneralProtocol then there needs to be a ConfigurationKeys constant
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.
Looks like this small grammatic error was copy/pasted many times 😅
Default is value is...
tracer/src/Datadog.Trace/Configuration/supported-configurations-docs.yaml
Outdated
Show resolved
Hide resolved
tracer/src/Datadog.Trace/Configuration/supported-configurations-docs.yaml
Outdated
Show resolved
Hide resolved
tracer/src/Datadog.Trace/Configuration/supported-configurations-docs.yaml
Outdated
Show resolved
Hide resolved
tracer/src/Datadog.Trace/Configuration/supported-configurations-docs.yaml
Outdated
Show resolved
Hide resolved
tracer/src/Datadog.Trace/Configuration/supported-configurations-docs.yaml
Outdated
Show resolved
Hide resolved
tracer/src/Datadog.Trace/Configuration/supported-configurations-docs.yaml
Outdated
Show resolved
Hide resolved
tracer/src/Datadog.Trace/Configuration/supported-configurations-docs.yaml
Outdated
Show resolved
Hide resolved
tracer/src/Datadog.Trace/Configuration/supported-configurations-docs.yaml
Outdated
Show resolved
Hide resolved
tracer/src/Datadog.Trace/Configuration/supported-configurations-docs.yaml
Outdated
Show resolved
Hide resolved
tracer/src/Datadog.Trace/Configuration/supported-configurations-docs.yaml
Outdated
Show resolved
Hide resolved
63f5f33 to
bb9d5d8
Compare
add supported configurations file and ci step
bb9d5d8 to
f819c41
Compare
Context
Part of Configuration Inversion (Step 1) - Stack progress:
Summary
Adds centralized configuration registry (
supported-configurations.json+ supported-configurations-docs.yaml) containing ~280 configuration keys with automated GitLab CI validation.Changes
Configuration Files:
supported-configurations.json- Machine-readable registry of all configuration keys with versions, aliases, and deprecationsCI/CD:
validate_supported_configurations_local_filestep to.gitlab-ci.yml.gitlab/one-pipeline.locked.yamlto reference validation templateFile Structure:
{ "supportedConfigurations": { "DD_TRACE_ENABLED": { "version": ["A"] }, ... }, "aliases": { "DD_AGENT_HOST": ["DD_TRACE_AGENT_HOSTNAME", ...], ... }, "deprecations": { "DD_TRACE_ANALYTICS_ENABLED": "Deprecated - ...", ... } }Motivation
Provides single source of truth for configuration keys to enable:
See: Configuration Registry Design Doc
Validation
GitLab CI validates JSON structure, naming conventions, and schema compliance on every build.
Commit Details
2639cf0- Initial Configuration Registrysupported-configurations.jsonwith ~280 configuration keys organized by version (A/B/C)aliasessection mapping primary keys to deprecated/alternative namesdeprecationssection with deprecation messages70e632e- Configuration Documentation<seealso>references to relevant code classes