Skip to content

Conversation

@anna-git
Copy link
Contributor

@anna-git anna-git commented Oct 22, 2025

Context

Part of Configuration Inversion (Step 5) - Stack progress:

  1. #7548 - Add GitLab step and JSON configuration file
  2. #7688 - Cleanup configuration / platform keys + source generator
  3. #7698 - Aliases handling via source generator
  4. #7689 - Analyzers for platform and ConfigurationBuilder
  5. #7697 - Replace manual ConfigurationKeys by generated ones in the whole solution (this PR)

Summary of changes

Fixed the ConfigurationKeysGenerator to properly read and apply the configuration_keys_mapping.json file, and extracted common file header comments to a reusable constant.

Key changes:

  • Fixed JSON array extraction in ParseMappingFile method - the generator was incorrectly trying to extract the "mappings" field as an object instead of an array
  • Extracted configuration generator comments to Constants.ConfigurationGeneratorComment for reuse across multiple generators
  • Updated both ConfigurationKeysGenerator and ConfigKeyAliasesSwitcherGenerator to use the shared constant
  • Added documentation as to how to add a key now

Reason for change

The configuration_keys_mapping.json file was being ignored during code generation, causing the generator to produce incorrect constant names. This meant that any manual edits to constant names in the mapping file were not being respected, and the generated code would use auto-generated names instead of the explicitly mapped ones.

Additionally, the file header comments explaining that files are auto-generated were duplicated across generators, violating DRY principles.

Implementation details

  1. Fixed array extraction logic: Replaced the call to JsonReader.ExtractJsonObjectSection() with custom array extraction code that:

    • Finds the "mappings": key in the JSON
    • Locates the opening [ bracket
    • Tracks bracket nesting to find the matching closing ]
    • Extracts the complete array content
  2. Resolved variable scope issue: Reused existing inString and escapeNext variables from the outer scope instead of redeclaring them, fixing compilation errors.

  3. Centralized header comments: Created Constants.ConfigurationGeneratorComment containing the standardized auto-generation notice and updated both generators to use it.

Test coverage

  • Verified the generator builds successfully without errors
  • The mapping file is now properly parsed and applied during code generation
  • Generated constant names now match the mappings defined in configuration_keys_mapping.json

Other details

This fix ensures that the explicit naming conventions defined in configuration_keys_mapping.json are respected, maintaining consistency with the existing codebase and preventing future confusion when constant names don't match their expected values.

@anna-git anna-git changed the title [Config Registry] Anna/config inversion use generate config keys 5 [Config Registry] Replace manual ConfigurationKeys by generated ones in the whole solution Oct 22, 2025
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from a74a26f to 864cbb6 Compare October 22, 2025 15:45
@pr-commenter
Copy link

pr-commenter bot commented Oct 22, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7697 compared to master:

  • 2 benchmarks are slower, with geometric mean 1.678
  • 8 benchmarks have fewer allocations
  • 6 benchmarks have more allocations

The following thresholds were used for comparing the benchmark speeds:

  • Mann–Whitney U test with statistical test for significance of 5%
  • Only results indicating a difference greater than 10% and 0.3 ns are considered.

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.ActivityBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7697

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net6.0 5.49 KB 5.54 KB 53 B 0.97%
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.05 KB 6.08 KB 31 B 0.51%

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
#7697 StartStopWithChild net6.0 10.6μs 56.3ns 287ns 0 0 0 5.54 KB
#7697 StartStopWithChild netcoreapp3.1 13.4μs 66.2ns 289ns 0 0 0 5.72 KB
#7697 StartStopWithChild net472 21.4μs 94.1ns 376ns 0.868 0.217 0 6.08 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
#7697 WriteAndFlushEnrichedTraces net6.0 950μs 49ns 183ns 0 0 0 2.7 KB
#7697 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 116ns 419ns 0 0 0 2.7 KB
#7697 WriteAndFlushEnrichedTraces net472 1.2ms 529ns 2.05μ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 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
#7697 AllCycleSimpleBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
#7697 AllCycleSimpleBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#7697 AllCycleSimpleBody net472 N/A N/A N/A NaN NaN NaN 0 b
#7697 AllCycleMoreComplexBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
#7697 AllCycleMoreComplexBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#7697 AllCycleMoreComplexBody net472 N/A N/A N/A NaN NaN NaN 0 b
#7697 ObjectExtractorSimpleBody net6.0 329ns 1.23ns 4.59ns 0 0 0 280 B
#7697 ObjectExtractorSimpleBody netcoreapp3.1 413ns 1.98ns 9.29ns 0 0 0 272 B
#7697 ObjectExtractorSimpleBody net472 304ns 0.0405ns 0.157ns 0.0442 0 0 281 B
#7697 ObjectExtractorMoreComplexBody net6.0 6.32μs 28.8ns 112ns 0 0 0 3.78 KB
#7697 ObjectExtractorMoreComplexBody netcoreapp3.1 7.87μs 5.26ns 20.4ns 0 0 0 3.69 KB
#7697 ObjectExtractorMoreComplexBody net472 6.68μs 3.97ns 15.4ns 0.57 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
#7697 EncodeArgs net6.0 77.3μs 25.9ns 100ns 0 0 0 32.4 KB
#7697 EncodeArgs netcoreapp3.1 97.2μs 220ns 852ns 0 0 0 32.4 KB
#7697 EncodeArgs net472 109μs 49.5ns 171ns 4.92 0 0 32.51 KB
#7697 EncodeLegacyArgs net6.0 143μs 31.9ns 124ns 0 0 0 2.14 KB
#7697 EncodeLegacyArgs netcoreapp3.1 199μs 78.5ns 304ns 0 0 0 2.14 KB
#7697 EncodeLegacyArgs net472 265μs 69.9ns 252ns 0 0 0 2.17 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #7697

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑netcoreapp3.1 2.418 298,308.56 721,418.52

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
#7697 RunWafRealisticBenchmark net6.0 422μs 340ns 1.32μs 0 0 0 4.55 KB
#7697 RunWafRealisticBenchmark netcoreapp3.1 411μs 258ns 1μs 0 0 0 4.48 KB
#7697 RunWafRealisticBenchmark net472 429μs 44.8ns 174ns 0 0 0 4.66 KB
#7697 RunWafRealisticBenchmarkWithAttack net6.0 310μs 65.7ns 254ns 0 0 0 2.24 KB
#7697 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 673μs 13.3μs 133μs 0 0 0 2.22 KB
#7697 RunWafRealisticBenchmarkWithAttack net472 311μs 35.8ns 138ns 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
#7697 SendRequest net6.0 61μs 88.4ns 331ns 0 0 0 14.52 KB
#7697 SendRequest netcoreapp3.1 71.1μs 97.4ns 351ns 0 0 0 17.42 KB
#7697 SendRequest net472 0.00447ns 0.00177ns 0.00685ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7697

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1 0 b 1 B 1 B
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 6 B 7 B 1 B 16.67%

Fewer allocations 🎉 in #7697

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 5 B 3 B -2 B -40.00%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net472 73 B 0 b -73 B -100.00%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net472 48 B 0 b -48 B -100.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
#7697 OriginalCharSlice net6.0 1.96ms 261ns 977ns 0 0 0 640.01 KB
#7697 OriginalCharSlice netcoreapp3.1 2.13ms 5.7μs 21.3μs 0 0 0 640 KB
#7697 OriginalCharSlice net472 2.68ms 766ns 2.87μs 100 0 0 641.95 KB
#7697 OptimizedCharSlice net6.0 1.36ms 162ns 607ns 0 0 0 7 B
#7697 OptimizedCharSlice netcoreapp3.1 1.78ms 216ns 838ns 0 0 0 1 B
#7697 OptimizedCharSlice net472 1.98ms 163ns 631ns 0 0 0 0 b
#7697 OptimizedCharSliceWithPool net6.0 800μs 23.1ns 89.5ns 0 0 0 3 B
#7697 OptimizedCharSliceWithPool netcoreapp3.1 865μs 63.7ns 230ns 0 0 0 1 B
#7697 OptimizedCharSliceWithPool net472 1.14ms 78.3ns 303ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Slower ⚠️ Fewer allocations 🎉

Slower ⚠️ in #7697

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 1.164 642,952.40 748,161.21

Fewer allocations 🎉 in #7697

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 56.56 KB 55.71 KB -846 B -1.50%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 42.6 KB 41.64 KB -955 B -2.24%

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
#7697 WriteAndFlushEnrichedTraces net6.0 728μs 869ns 3.37μs 0 0 0 41.64 KB
#7697 WriteAndFlushEnrichedTraces netcoreapp3.1 743μs 2.83μs 10.9μs 0 0 0 42.09 KB
#7697 WriteAndFlushEnrichedTraces net472 904μs 2.55μs 9.87μs 4.46 0 0 55.71 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
#7697 ExecuteNonQuery net6.0 1.85μs 9.32ns 38.4ns 0 0 0 1.02 KB
#7697 ExecuteNonQuery netcoreapp3.1 2.63μs 12.7ns 49.1ns 0 0 0 1.02 KB
#7697 ExecuteNonQuery net472 2.93μs 3.61ns 14ns 0.147 0.0147 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
#7697 CallElasticsearch net6.0 1.72μs 7.67ns 29.7ns 0 0 0 1.03 KB
#7697 CallElasticsearch netcoreapp3.1 2.21μs 10.1ns 39.2ns 0 0 0 1.03 KB
#7697 CallElasticsearch net472 3.56μs 1.3ns 4.87ns 0.16 0 0 1.04 KB
#7697 CallElasticsearchAsync net6.0 1.86μs 6.86ns 26.6ns 0 0 0 1.01 KB
#7697 CallElasticsearchAsync netcoreapp3.1 2.46μs 11.2ns 43.4ns 0 0 0 1.08 KB
#7697 CallElasticsearchAsync net472 3.67μs 2.29ns 8.86ns 0.165 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
#7697 ExecuteAsync net6.0 1.83μs 8.97ns 39.1ns 0 0 0 952 B
#7697 ExecuteAsync netcoreapp3.1 2.49μs 8.88ns 34.4ns 0 0 0 952 B
#7697 ExecuteAsync net472 2.68μs 1.45ns 5.41ns 0.134 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
#7697 SendAsync net6.0 6.98μs 5.69ns 22ns 0 0 0 2.36 KB
#7697 SendAsync netcoreapp3.1 8.89μs 16.4ns 63.6ns 0 0 0 2.9 KB
#7697 SendAsync net472 12.3μs 13.9ns 53.8ns 0.489 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7697

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 254.69 KB 278.75 KB 24.06 KB 9.45%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 43.44 KB 46.42 KB 2.98 KB 6.87%

Fewer allocations 🎉 in #7697

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 43.63 KB 42.9 KB -736 B -1.69%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 277.94 KB 260.4 KB -17.54 KB -6.31%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 65.54 KB 57.34 KB -8.19 KB -12.50%

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
#7697 StringConcatBenchmark net6.0 42.3μs 183ns 931ns 0 0 0 46.42 KB
#7697 StringConcatBenchmark netcoreapp3.1 49.6μs 293ns 2.84μs 0 0 0 42.9 KB
#7697 StringConcatBenchmark net472 57.4μs 293ns 1.28μs 0 0 0 57.34 KB
#7697 StringConcatAspectBenchmark net6.0 492μs 1.91μs 6.89μs 0 0 0 260.4 KB
#7697 StringConcatAspectBenchmark netcoreapp3.1 497μs 4.56μs 44.5μs 0 0 0 278.75 KB
#7697 StringConcatAspectBenchmark net472 403μs 2.15μs 11.2μ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
#7697 EnrichedLog net6.0 2.65μs 13.4ns 62.9ns 0 0 0 1.7 KB
#7697 EnrichedLog netcoreapp3.1 3.55μs 15.9ns 55.2ns 0 0 0 1.7 KB
#7697 EnrichedLog net472 4.06μs 2.55ns 9.87ns 0.243 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
#7697 EnrichedLog net6.0 122μs 70.7ns 265ns 0 0 0 4.31 KB
#7697 EnrichedLog netcoreapp3.1 128μs 209ns 811ns 0 0 0 4.31 KB
#7697 EnrichedLog net472 167μs 179ns 692ns 0 0 0 4.52 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
#7697 EnrichedLog net6.0 5.14μs 5ns 19.4ns 0 0 0 2.26 KB
#7697 EnrichedLog netcoreapp3.1 6.81μs 17.2ns 66.7ns 0 0 0 2.26 KB
#7697 EnrichedLog net472 7.79μs 7.33ns 28.4ns 0.312 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
#7697 SendReceive net6.0 1.98μs 7.42ns 28.7ns 0 0 0 1.2 KB
#7697 SendReceive netcoreapp3.1 2.62μs 12.9ns 53ns 0 0 0 1.2 KB
#7697 SendReceive net472 3.18μs 1.77ns 6.39ns 0.19 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
#7697 EnrichedLog net6.0 4.19μs 0.499ns 1.8ns 0 0 0 1.58 KB
#7697 EnrichedLog netcoreapp3.1 5.7μs 6.76ns 26.2ns 0 0 0 1.63 KB
#7697 EnrichedLog net472 6.81μs 7.18ns 27.8ns 0.305 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
#7697 StartFinishSpan net6.0 756ns 4.25ns 28.2ns 0 0 0 576 B
#7697 StartFinishSpan netcoreapp3.1 965ns 5.22ns 27.1ns 0 0 0 576 B
#7697 StartFinishSpan net472 974ns 2.44ns 9.44ns 0.0899 0 0 578 B
#7697 StartFinishScope net6.0 926ns 0.231ns 0.863ns 0 0 0 696 B
#7697 StartFinishScope netcoreapp3.1 1.21μs 5.67ns 22.7ns 0 0 0 696 B
#7697 StartFinishScope net472 1.16μs 0.157ns 0.609ns 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
#7697 RunOnMethodBegin net6.0 1.11μs 0.949ns 3.55ns 0 0 0 696 B
#7697 RunOnMethodBegin netcoreapp3.1 1.42μs 7.34ns 35.9ns 0 0 0 696 B
#7697 RunOnMethodBegin net472 1.46μs 1.26ns 4.89ns 0.101 0 0 658 B

@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from c1f7943 to 56bd199 Compare October 22, 2025 17:26
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch 2 times, most recently from a70301b to caf072d Compare October 22, 2025 17:50
@anna-git anna-git changed the base branch from anna/config-inversion-configuration-analyzers-4 to master October 22, 2025 18:01
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch 2 times, most recently from 52bf0a8 to 38efd42 Compare October 22, 2025 18:27
@anna-git anna-git changed the base branch from master to anna/config-inversion-configuration-analyzers-4 October 22, 2025 18:30
@datadog-official
Copy link

datadog-official bot commented Oct 22, 2025

⚠️ Tests

⚠️ Warnings

❄️ 1 New flaky test detected

TestEventHubsEnumerableIntegrationWithoutBatchLinks from Datadog.Trace.ClrProfiler.IntegrationTests.Azure.AzureEventHubsTests (Datadog)
Expected collection to contain 1 item(s) because Expected 1 receive span, but found 2: {{TraceId: 3026601306325209464, SpanId: 10380818588029810586, Name: azure_eventhubs.receive, Resource: samples-eventhubs-hub, Service: Samples.AzureEventHubs-azureeventhubs}, {TraceId: 17726744084360594025, SpanId: 12576899284023866893, Name: azure_eventhubs.receive, Resource: samples-eventhubs-hub, Service: Samples.AzureEventHubs-azureeventhubs}}.

ℹ️ Info

🧪 All tests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: b95387d | Docs | Was this helpful? Give us feedback!

@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from 83d9c7d to 22a4a69 Compare October 22, 2025 19:40
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 38efd42 to 77c76ec Compare October 22, 2025 19:40
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from 22a4a69 to 8c8402b Compare October 22, 2025 20:12
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 77c76ec to 5959568 Compare October 22, 2025 20:12
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from 8c8402b to 15b3e9b Compare October 22, 2025 21:02
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 5959568 to 0672899 Compare October 22, 2025 21:02
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from 15b3e9b to 071fbd4 Compare October 22, 2025 21:25
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 0672899 to 64b591b Compare October 22, 2025 21:25
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from 071fbd4 to 0a751b8 Compare October 22, 2025 21:31
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 64b591b to 4b52ac0 Compare October 22, 2025 21:31
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from 0a751b8 to f5dd040 Compare October 22, 2025 22:22
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 4b52ac0 to cf4f9e4 Compare October 22, 2025 22:22
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from f5dd040 to df4a547 Compare October 22, 2025 22:48
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from cf4f9e4 to d5e1ed2 Compare October 22, 2025 22:48
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 1300769 to 723a52e Compare October 23, 2025 11:01
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from 556354c to d74bc6d Compare October 23, 2025 11:40
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 723a52e to 2d847c8 Compare October 23, 2025 11:40
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from d74bc6d to 4eeaecd Compare October 23, 2025 12:16
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 2d847c8 to 0eda44b Compare October 23, 2025 12:16
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from 4eeaecd to a471afd Compare October 23, 2025 12:31
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch 2 times, most recently from a43cc97 to 67653bc Compare October 23, 2025 13:05
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from a471afd to 98f03b8 Compare October 23, 2025 13:26
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 67653bc to 800bcc4 Compare October 23, 2025 13:26
@anna-git anna-git changed the title [Config Registry] Replace manual ConfigurationKeys by generated ones in the whole solution [Config Registry] 5/5 Replace manual ConfigurationKeys by generated ones in the whole solution Oct 23, 2025
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from 98f03b8 to 59b8625 Compare October 23, 2025 16:07
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 5189c6d to 704587e Compare October 23, 2025 16:07
@lucaspimentel
Copy link
Member

@codex review

@chatgpt-codex-connector
Copy link

Codex Review: Didn't find any major issues. Breezy!

ℹ️ 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".

@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from 59b8625 to acdece9 Compare October 27, 2025 14:20
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 704587e to db30e4c Compare October 27, 2025 14:20
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from acdece9 to 86d6dbd Compare October 27, 2025 19:21
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from db30e4c to 2839ecf Compare October 27, 2025 19:21
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from 86d6dbd to fc26b53 Compare October 27, 2025 20:56
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 2839ecf to 93a324c Compare October 27, 2025 20:57
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from fc26b53 to cc850d6 Compare October 28, 2025 14:33
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 93a324c to 0d30b67 Compare October 28, 2025 14:33
@anna-git anna-git force-pushed the anna/config-inversion-configuration-analyzers-4 branch from cc850d6 to 2a09875 Compare October 28, 2025 14:55
@anna-git anna-git force-pushed the anna/config-inversion-use-generate-config-keys-5 branch from 0d30b67 to b95387d Compare October 28, 2025 14:55
anna-git added a commit that referenced this pull request Oct 28, 2025
… yaml for doc (#7548)

## Context

Part of **Configuration Inversion (Step 1)** - Stack progress:
1. **→ [#7548](#7548) -
Add GitLab step and JSON configuration file (this PR)**
2. [#7688](#7688) -
Reorganize keys, split config keys and platform keys
3. [#7698](#7698) -
Generate ConfigurationKeys with source generator
4. [#7689](#7689) -
Aliases handling and analyzers
5. [#7697](#7697) -
Replace manual ConfigurationKeys by generated ones in the whole solution



## Summary

Adds centralized configuration registry (`supported-configurations.json`
+
[supported-configurations-docs.yaml](cci:7://file:///Users/anna.yafi/go/src/github.com/DataDog/dd-trace-dotnet3/tracer/src/Datadog.Trace/Configuration/supported-configurations-docs.yaml:0:0-0:0))
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 deprecations
-
[supported-configurations-docs.yaml](cci:7://file:///Users/anna.yafi/go/src/github.com/DataDog/dd-trace-dotnet3/tracer/src/Datadog.Trace/Configuration/supported-configurations-docs.yaml:0:0-0:0)
- Human-readable documentation for each configuration key

**CI/CD:**
- Added `validate_supported_configurations_local_file` step to
`.gitlab-ci.yml`
- Updated `.gitlab/one-pipeline.locked.yaml` to reference validation
template

**File Structure:**
```json
{
  "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:
- Automated documentation validation
- Cross-tracer compatibility checks
- Configuration migration tooling
- Automated doc generation

See: [Configuration Registry Design
Doc](https://docs.google.com/document/d/1VIvOyQPfuQIWBIgNY68A9hzLir0-3eJijTwmpWASO8s/edit?tab=t.0#heading=h.jy2ajbk2b8ba)

## Validation

GitLab CI validates JSON structure, naming conventions, and schema
compliance on every build.

## Commit Details

**`2639cf0` - Initial Configuration Registry**
- Added `supported-configurations.json` with ~280 configuration keys
organized by version (A/B/C)
- Includes `aliases` section mapping primary keys to
deprecated/alternative names
- Includes `deprecations` section with deprecation messages
- Added GitLab CI validation step to ensure file integrity
- Updated one-pipeline lock file to reference validation template

**`70e632e` - Configuration Documentation**
- Added
[supported-configurations-docs.yaml](cci:7://file:///Users/anna.yafi/go/src/github.com/DataDog/dd-trace-dotnet3/tracer/src/Datadog.Trace/Configuration/supported-configurations-docs.yaml:0:0-0:0)
with detailed XML documentation for each configuration key
- Provides human-readable descriptions, default values, and usage
examples
- Includes `<seealso>` references to relevant code classes
- Complements the machine-readable JSON with developer-friendly
documentation
- Enables automated generation of configuration documentation from a
single source
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants