Skip to content

Conversation

@andrewlock
Copy link
Member

@andrewlock andrewlock commented Oct 28, 2025

Summary of changes

Instead of exposing settings like ServiceVerion and Environment on TracerSettings, only expose them on MutableSettings

Reason for change

This is all part of the refactoring towards having TracerSettings being an immutable settings object, that's created once on app startup, and fixed for the lifetime. ServiceVerion and Environment currently delegate to the MutableSettings object stored on TracerSettings, but are going to move that elsewhere shortly so that consumers can subscribe to changes

Implementation details

For this PR, it's just a case of changing TracerSettings.XXX => TracerSettings.Mutable.XXX. A future PR will then subsequently "fix" these usages properly. This is just a small step to be able to remove the mutable properties from TracerSettings

Test coverage

Just a refactoring, covered by existing tests.

Other details

https://datadoghq.atlassian.net/browse/LANGPLAT-819

Part of a config stack

@pr-commenter
Copy link

pr-commenter bot commented Oct 28, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7723 compared to master:

  • 2 benchmarks are slower, with geometric mean 1.722
  • 7 benchmarks have fewer allocations
  • 3 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 ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7723

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 5.73 KB 5.7 KB -32 B -0.56%
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.09 KB 6.05 KB -44 B -0.72%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.8μs 59.8ns 354ns 0 0 0 5.51 KB
master StartStopWithChild netcoreapp3.1 13.6μs 69.8ns 320ns 0 0 0 5.73 KB
master StartStopWithChild net472 21.8μs 116ns 604ns 0.987 0.439 0.11 6.09 KB
#7723 StartStopWithChild net6.0 10.5μs 57.4ns 335ns 0 0 0 5.52 KB
#7723 StartStopWithChild netcoreapp3.1 13.7μs 73.2ns 366ns 0 0 0 5.7 KB
#7723 StartStopWithChild net472 22.5μs 113ns 491ns 1.03 0.345 0.115 6.05 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 928μs 127ns 476ns 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.03ms 105ns 392ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.24ms 841ns 3.26μs 0 0 0 3.31 KB
#7723 WriteAndFlushEnrichedTraces net6.0 959μs 1.86μs 7.21μs 0 0 0 2.71 KB
#7723 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 242ns 936ns 0 0 0 2.7 KB
#7723 WriteAndFlushEnrichedTraces net472 1.23ms 2.07μs 8.02μs 0 0 0 3.31 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 1.13μs 1.08ns 4.04ns 0 0 0 1.22 KB
master AllCycleSimpleBody netcoreapp3.1 1.42μs 6.72ns 29.3ns 0 0 0 1.2 KB
master AllCycleSimpleBody net472 1.03μs 1.03ns 3.98ns 0.192 0 0 1.23 KB
master AllCycleMoreComplexBody net6.0 7.04μs 38ns 218ns 0 0 0 4.72 KB
master AllCycleMoreComplexBody netcoreapp3.1 8.9μs 43.3ns 194ns 0 0 0 4.62 KB
master AllCycleMoreComplexBody net472 7.63μs 7.2ns 27.9ns 0.725 0 0 4.74 KB
master ObjectExtractorSimpleBody net6.0 318ns 1.74ns 10.1ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 418ns 2.38ns 16.3ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 296ns 0.0465ns 0.18ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.37μs 0.932ns 3.49ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 8.08μs 37ns 143ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.76μs 4.87ns 18.9ns 0.574 0 0 3.8 KB
#7723 AllCycleSimpleBody net6.0 1.12μs 5.09ns 19.7ns 0 0 0 1.22 KB
#7723 AllCycleSimpleBody netcoreapp3.1 1.42μs 7.56ns 39.3ns 0 0 0 1.2 KB
#7723 AllCycleSimpleBody net472 1.1μs 4.06ns 15.7ns 0.193 0 0 1.23 KB
#7723 AllCycleMoreComplexBody net6.0 7.17μs 36.9ns 177ns 0 0 0 4.72 KB
#7723 AllCycleMoreComplexBody netcoreapp3.1 9.05μs 7.65ns 29.6ns 0 0 0 4.62 KB
#7723 AllCycleMoreComplexBody net472 7.94μs 2.16ns 8.09ns 0.752 0 0 4.74 KB
#7723 ObjectExtractorSimpleBody net6.0 322ns 1.78ns 10.1ns 0 0 0 280 B
#7723 ObjectExtractorSimpleBody netcoreapp3.1 398ns 2.03ns 9.71ns 0 0 0 272 B
#7723 ObjectExtractorSimpleBody net472 303ns 0.0847ns 0.328ns 0.0442 0 0 281 B
#7723 ObjectExtractorMoreComplexBody net6.0 6.35μs 32.5ns 153ns 0 0 0 3.78 KB
#7723 ObjectExtractorMoreComplexBody netcoreapp3.1 7.67μs 38.2ns 157ns 0 0 0 3.69 KB
#7723 ObjectExtractorMoreComplexBody net472 6.93μs 3.01ns 11.3ns 0.591 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 77.5μs 202ns 754ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 96.1μs 279ns 1.08μs 0 0 0 32.4 KB
master EncodeArgs net472 109μs 8.76ns 31.6ns 4.92 0 0 32.51 KB
master EncodeLegacyArgs net6.0 144μs 13.2ns 49.2ns 0 0 0 2.15 KB
master EncodeLegacyArgs netcoreapp3.1 199μs 208ns 751ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 262μs 83.9ns 325ns 0 0 0 2.16 KB
#7723 EncodeArgs net6.0 77.8μs 211ns 788ns 0 0 0 32.4 KB
#7723 EncodeArgs netcoreapp3.1 96.7μs 207ns 775ns 0 0 0 32.4 KB
#7723 EncodeArgs net472 115μs 47.5ns 184ns 4.62 0 0 32.5 KB
#7723 EncodeLegacyArgs net6.0 146μs 14.3ns 55.5ns 0 0 0 2.15 KB
#7723 EncodeLegacyArgs netcoreapp3.1 195μs 263ns 1.02μs 0 0 0 2.14 KB
#7723 EncodeLegacyArgs net472 262μs 30ns 116ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #7723

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑netcoreapp3.1 2.438 295,887.20 721,459.52

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 393μs 53.8ns 194ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 854μs 2.24μs 8.37μs 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 426μs 81.5ns 316ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 282μs 70.7ns 264ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 296μs 57.5ns 199ns 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 311μs 22.2ns 83.1ns 0 0 0 2.29 KB
#7723 RunWafRealisticBenchmark net6.0 411μs 95.9ns 359ns 0 0 0 4.55 KB
#7723 RunWafRealisticBenchmark netcoreapp3.1 798μs 14.3μs 143μs 0 0 0 4.48 KB
#7723 RunWafRealisticBenchmark net472 429μs 29.4ns 106ns 0 0 0 4.66 KB
#7723 RunWafRealisticBenchmarkWithAttack net6.0 296μs 32ns 120ns 0 0 0 2.24 KB
#7723 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 677μs 12.9μs 129μs 0 0 0 2.22 KB
#7723 RunWafRealisticBenchmarkWithAttack net472 310μs 47.2ns 183ns 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.1μs 92.2ns 357ns 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 72.4μs 176ns 704ns 0 0 0 17.42 KB
master SendRequest net472 0.00238ns 0.00151ns 0.00586ns 0 0 0 0 b
#7723 SendRequest net6.0 60.2μs 75.9ns 284ns 0 0 0 14.52 KB
#7723 SendRequest netcoreapp3.1 71.7μs 129ns 466ns 0 0 0 17.42 KB
#7723 SendRequest net472 0.00108ns 0.00102ns 0.00396ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7723

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 3 B 2 B -1 B -33.33%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 4 B 2 B -2 B -50.00%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1 1 B 0 b -1 B -100.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 1.91ms 5.03μs 19.5μs 0 0 0 640.01 KB
master OriginalCharSlice netcoreapp3.1 2.14ms 6.61μs 25.6μs 0 0 0 640 KB
master OriginalCharSlice net472 2.66ms 393ns 1.52μs 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.35ms 141ns 545ns 0 0 0 4 B
master OptimizedCharSlice netcoreapp3.1 1.7ms 654ns 2.53μs 0 0 0 1 B
master OptimizedCharSlice net472 2.03ms 346ns 1.34μs 0 0 0 73 B
master OptimizedCharSliceWithPool net6.0 835μs 43.3ns 168ns 0 0 0 3 B
master OptimizedCharSliceWithPool netcoreapp3.1 844μs 55.7ns 216ns 0 0 0 1 B
master OptimizedCharSliceWithPool net472 1.14ms 146ns 565ns 0 0 0 47 B
#7723 OriginalCharSlice net6.0 1.92ms 5.71μs 22.1μs 0 0 0 640.01 KB
#7723 OriginalCharSlice netcoreapp3.1 2.15ms 3.63μs 14μs 0 0 0 640 KB
#7723 OriginalCharSlice net472 2.61ms 386ns 1.39μs 100 0 0 641.95 KB
#7723 OptimizedCharSlice net6.0 1.38ms 74.4ns 268ns 0 0 0 2 B
#7723 OptimizedCharSlice netcoreapp3.1 1.72ms 342ns 1.32μs 0 0 0 1 B
#7723 OptimizedCharSlice net472 2.07ms 420ns 1.63μs 0 0 0 73 B
#7723 OptimizedCharSliceWithPool net6.0 804μs 35ns 136ns 0 0 0 2 B
#7723 OptimizedCharSliceWithPool netcoreapp3.1 801μs 91ns 328ns 0 0 0 0 b
#7723 OptimizedCharSliceWithPool net472 1.16ms 86.6ns 336ns 0 0 0 47 B
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #7723

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 1.216 651,885.71 792,840.62 several?

More allocations ⚠️ in #7723

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 55.93 KB 56.36 KB 422 B 0.75%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 41.93 KB 42.17 KB 236 B 0.56%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 707μs 937ns 3.63μs 0 0 0 41.61 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 649μs 1.62μs 6.29μs 0 0 0 41.93 KB
master WriteAndFlushEnrichedTraces net472 939μs 1.76μs 6.34μs 4.46 0 0 55.93 KB
#7723 WriteAndFlushEnrichedTraces net6.0 746μs 1.73μs 6.7μs 0 0 0 41.67 KB
#7723 WriteAndFlushEnrichedTraces netcoreapp3.1 769μs 6.41μs 63.8μs 0 0 0 42.17 KB
#7723 WriteAndFlushEnrichedTraces net472 878μs 2.47μs 9.58μs 8.33 0 0 56.36 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.92μs 1.59ns 6.15ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.65μs 3.21ns 12ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.92μs 4.89ns 19ns 0.153 0.0153 0 987 B
#7723 ExecuteNonQuery net6.0 1.84μs 9.08ns 36.3ns 0 0 0 1.02 KB
#7723 ExecuteNonQuery netcoreapp3.1 2.64μs 7.05ns 27.3ns 0 0 0 1.02 KB
#7723 ExecuteNonQuery net472 2.93μs 4.17ns 16.2ns 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.74μs 1.86ns 7.19ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.22μs 11.1ns 50.9ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.59μs 2.29ns 8.87ns 0.161 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.86μs 8.54ns 32ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.35μs 9.37ns 36.3ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.63μs 4.07ns 14.7ns 0.165 0 0 1.1 KB
#7723 CallElasticsearch net6.0 1.7μs 7.99ns 32.9ns 0 0 0 1.03 KB
#7723 CallElasticsearch netcoreapp3.1 2.23μs 6.91ns 23.9ns 0 0 0 1.03 KB
#7723 CallElasticsearch net472 3.57μs 4.49ns 17.4ns 0.159 0 0 1.04 KB
#7723 CallElasticsearchAsync net6.0 1.83μs 8.34ns 32.3ns 0 0 0 1.01 KB
#7723 CallElasticsearchAsync netcoreapp3.1 2.36μs 7.73ns 29.9ns 0 0 0 1.08 KB
#7723 CallElasticsearchAsync net472 3.9μs 2.78ns 10ns 0.175 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.93μs 5.45ns 21.1ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.39μs 11ns 42.8ns 0 0 0 952 B
master ExecuteAsync net472 2.62μs 1.07ns 3.98ns 0.144 0 0 915 B
#7723 ExecuteAsync net6.0 1.9μs 5.83ns 22.6ns 0 0 0 952 B
#7723 ExecuteAsync netcoreapp3.1 2.44μs 11.4ns 44ns 0 0 0 952 B
#7723 ExecuteAsync net472 2.72μs 6.69ns 25.9ns 0.135 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.94μs 24.9ns 96.4ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.49μs 20.1ns 77.8ns 0 0 0 2.9 KB
master SendAsync net472 12.4μs 6.01ns 20.8ns 0.498 0 0 3.18 KB
#7723 SendAsync net6.0 7.04μs 22ns 82.5ns 0 0 0 2.36 KB
#7723 SendAsync netcoreapp3.1 8.46μs 19.8ns 76.5ns 0 0 0 2.9 KB
#7723 SendAsync net472 12.8μs 14.3ns 55.2ns 0.443 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7723

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 256.79 KB 260.59 KB 3.8 KB 1.48%

Fewer allocations 🎉 in #7723

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 44.05 KB 43.44 KB -608 B -1.38%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 275.19 KB 257.84 KB -17.35 KB -6.31%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 45.3μs 251ns 1.79μs 0 0 0 44.05 KB
master StringConcatBenchmark netcoreapp3.1 46.1μs 225ns 956ns 0 0 0 42.64 KB
master StringConcatBenchmark net472 58.1μs 94.8ns 342ns 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 459μs 1.08μs 3.75μs 0 0 0 256.79 KB
master StringConcatAspectBenchmark netcoreapp3.1 532μs 2.53μs 9.78μs 0 0 0 275.19 KB
master StringConcatAspectBenchmark net472 405μs 2.27μs 15.4μs 0 0 0 278.53 KB
#7723 StringConcatBenchmark net6.0 49.4μs 622ns 5.93μs 0 0 0 43.44 KB
#7723 StringConcatBenchmark netcoreapp3.1 52.1μs 778ns 7.5μs 0 0 0 42.8 KB
#7723 StringConcatBenchmark net472 57.6μs 69.4ns 250ns 0 0 0 57.34 KB
#7723 StringConcatAspectBenchmark net6.0 463μs 2.14μs 8.55μs 0 0 0 260.59 KB
#7723 StringConcatAspectBenchmark netcoreapp3.1 498μs 1.43μs 5.15μs 0 0 0 257.84 KB
#7723 StringConcatAspectBenchmark net472 404μs 2.06μs 15.4μ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.67μs 0.857ns 3.32ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.65μs 18.1ns 78.8ns 0 0 0 1.7 KB
master EnrichedLog net472 3.83μs 4.68ns 18.1ns 0.249 0 0 1.64 KB
#7723 EnrichedLog net6.0 2.57μs 1.57ns 6.1ns 0 0 0 1.7 KB
#7723 EnrichedLog netcoreapp3.1 3.55μs 16.3ns 65.1ns 0 0 0 1.7 KB
#7723 EnrichedLog net472 3.96μs 3.64ns 14.1ns 0.256 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 123μs 111ns 415ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 128μs 284ns 1.1μs 0 0 0 4.31 KB
master EnrichedLog net472 168μs 191ns 741ns 0 0 0 4.51 KB
#7723 EnrichedLog net6.0 122μs 54.7ns 197ns 0 0 0 4.31 KB
#7723 EnrichedLog netcoreapp3.1 127μs 53.7ns 201ns 0 0 0 4.31 KB
#7723 EnrichedLog net472 167μs 95ns 356ns 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 4.93μs 13.5ns 52.2ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.64μs 20.6ns 79.6ns 0 0 0 2.26 KB
master EnrichedLog net472 7.58μs 10.5ns 40.7ns 0.302 0 0 2.08 KB
#7723 EnrichedLog net6.0 4.94μs 20ns 74.7ns 0 0 0 2.26 KB
#7723 EnrichedLog netcoreapp3.1 6.77μs 19.8ns 74.2ns 0 0 0 2.26 KB
#7723 EnrichedLog net472 7.49μs 9.17ns 35.5ns 0.3 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.96μs 1.62ns 6.28ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.68μs 10.8ns 41.8ns 0 0 0 1.2 KB
master SendReceive net472 3.03μs 2.81ns 10.9ns 0.181 0 0 1.2 KB
#7723 SendReceive net6.0 1.92μs 9.18ns 35.6ns 0 0 0 1.2 KB
#7723 SendReceive netcoreapp3.1 2.59μs 12.4ns 51.1ns 0 0 0 1.2 KB
#7723 SendReceive net472 3.09μs 3.64ns 14.1ns 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.26μs 2.38ns 9.21ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.89μs 14ns 54.1ns 0 0 0 1.63 KB
master EnrichedLog net472 6.62μs 5.45ns 21.1ns 0.298 0 0 2.03 KB
#7723 EnrichedLog net6.0 4.41μs 13.6ns 52.6ns 0 0 0 1.58 KB
#7723 EnrichedLog netcoreapp3.1 5.62μs 13.8ns 53.3ns 0 0 0 1.63 KB
#7723 EnrichedLog net472 6.68μs 9.27ns 35.9ns 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 763ns 4.06ns 23ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 986ns 5.06ns 22.6ns 0 0 0 576 B
master StartFinishSpan net472 946ns 0.503ns 1.88ns 0.0904 0 0 578 B
master StartFinishScope net6.0 908ns 4.7ns 23ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.2μs 6.55ns 38.2ns 0 0 0 696 B
master StartFinishScope net472 1.14μs 0.356ns 1.38ns 0.103 0 0 658 B
#7723 StartFinishSpan net6.0 764ns 3.89ns 17.8ns 0 0 0 576 B
#7723 StartFinishSpan netcoreapp3.1 938ns 5.05ns 25.7ns 0 0 0 576 B
#7723 StartFinishSpan net472 949ns 0.281ns 1.09ns 0.0905 0 0 578 B
#7723 StartFinishScope net6.0 929ns 0.481ns 1.86ns 0 0 0 696 B
#7723 StartFinishScope netcoreapp3.1 1.19μs 5.54ns 22.1ns 0 0 0 696 B
#7723 StartFinishScope net472 1.12μs 0.094ns 0.352ns 0.1 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.06μs 0.718ns 2.59ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.41μs 7.44ns 35.7ns 0 0 0 696 B
master RunOnMethodBegin net472 1.44μs 0.821ns 3.18ns 0.101 0 0 658 B
#7723 RunOnMethodBegin net6.0 1.05μs 4.55ns 17.6ns 0 0 0 696 B
#7723 RunOnMethodBegin netcoreapp3.1 1.46μs 6.93ns 29.4ns 0 0 0 696 B
#7723 RunOnMethodBegin net472 1.48μs 0.869ns 3.25ns 0.104 0 0 658 B

@andrewlock andrewlock force-pushed the andrew/settings/5-move-mutable-settings-off-tracer-settings branch from 8c472a5 to 8e19e3a Compare October 28, 2025 15:20
@andrewlock andrewlock force-pushed the andrew/settings/4-mutable-settings-service branch from 60c7874 to c691a0e Compare October 28, 2025 15:20
@andrewlock andrewlock force-pushed the andrew/settings/5-move-mutable-settings-off-tracer-settings branch from 8e19e3a to 7940c31 Compare October 28, 2025 18:13
@andrewlock andrewlock requested review from a team as code owners October 28, 2025 18:13
@andrewlock andrewlock requested review from zacharycmontoya and removed request for a team October 28, 2025 18:13
@andrewlock andrewlock force-pushed the andrew/settings/4-mutable-settings-service branch from c691a0e to a52caed Compare October 28, 2025 18:13
@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Oct 28, 2025

⚠️ Tests

⚠️ Warnings

❄️ 35 New flaky tests detected

IntegrationDisabled from Datadog.Trace.ClrProfiler.IntegrationTests.AdoNet.MicrosoftDataSqlClientTests (Datadog)
Expected exit code: 0, actual exit code: 134.
SubmitsTraces from Datadog.Trace.ClrProfiler.IntegrationTests.AdoNet.MicrosoftDataSqlClientTests (Datadog)
Expected exit code: 0, actual exit code: 134.
SubmitsTraces from Datadog.Trace.ClrProfiler.IntegrationTests.AdoNet.MicrosoftDataSqlClientTests (Datadog)
Expected exit code: 0, actual exit code: 134.
View all

ℹ️ Info

🧪 All tests passed

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

Copy link
Member Author

@andrewlock andrewlock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated code review by Claude Code

This PR successfully refactors TracerSettings to remove mutable properties and require explicit access through MutableSettings. The changes are generally consistent and well-executed. I've identified a few specific issues below for consideration.

Copy link
Member Author

@andrewlock andrewlock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated code review by Claude Code

This PR successfully refactors TracerSettings to remove mutable properties and require explicit access through MutableSettings. The changes are generally consistent and well-executed.

@andrewlock andrewlock force-pushed the andrew/settings/5-move-mutable-settings-off-tracer-settings branch from 7940c31 to 2dfae3d Compare October 31, 2025 18:04
@andrewlock andrewlock requested review from a team as code owners October 31, 2025 18:04
@andrewlock andrewlock force-pushed the andrew/settings/4-mutable-settings-service branch from a52caed to 36d5027 Compare October 31, 2025 18:04
andrewlock added a commit that referenced this pull request Nov 3, 2025
## Summary of changes

Add a helper for comparing `ReadOnlyDictionary<>` instances

## Reason for change

As part of the config work, we need to detect if tags have changed when
customers do a manual/remote config update. This helper makes it easy

## Implementation details

Added a `SequenceEqual` extension method.

Note that I used `SequenceEqual` because it _already_ exists in
_System.Linq_, but I could see an argument that it's too easy to use the
wrong one, and instead we could use a different name? `IsSameAs(other)`?

Also, I only wrote this for `ReadOnlyDictionary<>` because that's all we
need, it's what we use for all our setting dictionaries, and it will be
(a tiny bit) faster than making it `IDictionary<>`, but happy to change
if people feel strongly.

## Test coverage

Added unit tests

## Other details

https://datadoghq.atlassian.net/browse/LANGPLAT-819

Part of a config stack


- #7522
- #7525
- #7530
- #7532
- #7543
- #7544
- #7721
- #7722 👈
- #7695
- #7723
- #7724

---------

Co-authored-by: Steven Bouwkamp <[email protected]>
@andrewlock andrewlock force-pushed the andrew/settings/5-move-mutable-settings-off-tracer-settings branch from 2dfae3d to ea5edf6 Compare November 3, 2025 17:30
@andrewlock andrewlock force-pushed the andrew/settings/4-mutable-settings-service branch from 36d5027 to 717fff8 Compare November 3, 2025 17:31
@dd-trace-dotnet-ci-bot
Copy link

dd-trace-dotnet-ci-bot bot commented Nov 4, 2025

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (7723) and master.

✅ No regressions detected - check the details below

Full Metrics Comparison

FakeDbCommand

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration74.80 ± (74.99 - 75.73) ms74.57 ± (74.61 - 75.26) ms-0.3%
.NET Framework 4.8 - Bailout
duration78.81 ± (78.82 - 79.52) ms80.32 ± (80.02 - 80.74) ms+1.9%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1116.32 ± (1122.56 - 1135.12) ms1111.65 ± (1112.76 - 1122.58) ms-0.4%
.NET Core 3.1 - Baseline
process.internal_duration_ms22.89 ± (22.81 - 22.96) ms23.11 ± (23.03 - 23.18) ms+1.0%✅⬆️
process.time_to_main_ms87.11 ± (86.79 - 87.43) ms87.88 ± (87.55 - 88.21) ms+0.9%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.89 ± (10.88 - 10.89) MB10.91 ± (10.90 - 10.91) MB+0.2%✅⬆️
runtime.dotnet.threads.count12 ± (12 - 12)12 ± (12 - 12)+0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms22.79 ± (22.73 - 22.86) ms23.08 ± (23.00 - 23.16) ms+1.3%✅⬆️
process.time_to_main_ms88.54 ± (88.15 - 88.92) ms89.57 ± (89.15 - 89.98) ms+1.2%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.93 ± (10.92 - 10.93) MB10.94 ± (10.94 - 10.94) MB+0.1%✅⬆️
runtime.dotnet.threads.count13 ± (13 - 13)13 ± (13 - 13)+0.0%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms219.85 ± (218.40 - 221.30) ms223.04 ± (221.75 - 224.33) ms+1.5%✅⬆️
process.time_to_main_ms547.66 ± (546.53 - 548.78) ms547.64 ± (546.51 - 548.78) ms-0.0%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed52.60 ± (52.58 - 52.62) MB52.40 ± (52.38 - 52.42) MB-0.4%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)-0.0%
.NET 6 - Baseline
process.internal_duration_ms21.64 ± (21.58 - 21.70) ms21.82 ± (21.76 - 21.88) ms+0.8%✅⬆️
process.time_to_main_ms75.45 ± (75.16 - 75.75) ms75.55 ± (75.30 - 75.80) ms+0.1%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.57 ± (10.57 - 10.58) MB10.62 ± (10.62 - 10.63) MB+0.5%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms21.42 ± (21.36 - 21.49) ms21.68 ± (21.63 - 21.74) ms+1.2%✅⬆️
process.time_to_main_ms76.55 ± (76.21 - 76.89) ms77.36 ± (77.03 - 77.68) ms+1.1%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.63 ± (10.62 - 10.63) MB10.67 ± (10.66 - 10.67) MB+0.4%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms208.98 ± (206.78 - 211.18) ms207.46 ± (206.10 - 208.82) ms-0.7%
process.time_to_main_ms511.54 ± (510.29 - 512.79) ms510.72 ± (509.70 - 511.73) ms-0.2%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed51.83 ± (51.80 - 51.86) MB51.23 ± (51.21 - 51.26) MB-1.2%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.2%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms19.63 ± (19.57 - 19.68) ms19.66 ± (19.60 - 19.71) ms+0.2%✅⬆️
process.time_to_main_ms73.82 ± (73.52 - 74.13) ms74.33 ± (74.05 - 74.60) ms+0.7%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.66 ± (7.65 - 7.66) MB7.66 ± (7.65 - 7.66) MB+0.0%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms19.65 ± (19.60 - 19.70) ms19.83 ± (19.77 - 19.89) ms+0.9%✅⬆️
process.time_to_main_ms75.16 ± (74.91 - 75.41) ms77.27 ± (76.92 - 77.62) ms+2.8%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.71 ± (7.70 - 7.71) MB7.70 ± (7.70 - 7.71) MB-0.0%
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms189.24 ± (188.33 - 190.16) ms190.68 ± (189.79 - 191.58) ms+0.8%✅⬆️
process.time_to_main_ms487.21 ± (486.22 - 488.21) ms485.53 ± (484.57 - 486.49) ms-0.3%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed38.95 ± (38.91 - 38.99) MB38.69 ± (38.65 - 38.72) MB-0.7%
runtime.dotnet.threads.count27 ± (27 - 27)27 ± (27 - 27)+0.1%✅⬆️

HttpMessageHandler

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration192.14 ± (192.18 - 192.89) ms192.77 ± (192.90 - 193.83) ms+0.3%✅⬆️
.NET Framework 4.8 - Bailout
duration196.64 ± (196.50 - 197.14) ms195.56 ± (195.33 - 195.78) ms-0.5%
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1157.48 ± (1159.89 - 1167.48) ms1157.08 ± (1162.48 - 1172.70) ms-0.0%
.NET Core 3.1 - Baseline
process.internal_duration_ms187.92 ± (187.54 - 188.30) ms187.42 ± (187.10 - 187.74) ms-0.3%
process.time_to_main_ms80.91 ± (80.72 - 81.10) ms80.94 ± (80.74 - 81.13) ms+0.0%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.09 ± (16.06 - 16.11) MB16.03 ± (16.01 - 16.06) MB-0.3%
runtime.dotnet.threads.count20 ± (20 - 20)20 ± (19 - 20)-0.3%
.NET Core 3.1 - Bailout
process.internal_duration_ms186.93 ± (186.60 - 187.26) ms186.39 ± (186.12 - 186.67) ms-0.3%
process.time_to_main_ms82.04 ± (81.91 - 82.17) ms81.82 ± (81.69 - 81.96) ms-0.3%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.13 ± (16.11 - 16.16) MB15.99 ± (15.89 - 16.09) MB-0.9%
runtime.dotnet.threads.count21 ± (20 - 21)20 ± (20 - 21)-0.4%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms392.81 ± (390.48 - 395.15) ms392.22 ± (389.95 - 394.48) ms-0.2%
process.time_to_main_ms520.22 ± (519.61 - 520.83) ms512.67 ± (512.05 - 513.28) ms-1.5%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed62.99 ± (62.83 - 63.15) MB62.65 ± (62.49 - 62.81) MB-0.5%
runtime.dotnet.threads.count29 ± (29 - 30)29 ± (29 - 29)-0.0%
.NET 6 - Baseline
process.internal_duration_ms191.32 ± (190.99 - 191.65) ms190.62 ± (190.32 - 190.92) ms-0.4%
process.time_to_main_ms69.77 ± (69.59 - 69.95) ms69.50 ± (69.37 - 69.64) ms-0.4%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.14 ± (16.00 - 16.27) MB15.87 ± (15.70 - 16.03) MB-1.7%
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)-0.7%
.NET 6 - Bailout
process.internal_duration_ms190.17 ± (189.93 - 190.40) ms190.26 ± (189.93 - 190.59) ms+0.0%✅⬆️
process.time_to_main_ms70.53 ± (70.46 - 70.61) ms70.44 ± (70.35 - 70.53) ms-0.1%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.03 ± (15.87 - 16.18) MB15.70 ± (15.53 - 15.87) MB-2.0%
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)-0.9%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms414.79 ± (411.50 - 418.08) ms406.39 ± (403.59 - 409.18) ms-2.0%
process.time_to_main_ms487.11 ± (486.46 - 487.76) ms481.78 ± (481.21 - 482.35) ms-1.1%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed62.23 ± (62.09 - 62.37) MB61.75 ± (61.60 - 61.90) MB-0.8%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.1%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms189.48 ± (189.23 - 189.73) ms189.92 ± (189.56 - 190.27) ms+0.2%✅⬆️
process.time_to_main_ms69.10 ± (68.96 - 69.24) ms69.45 ± (69.25 - 69.65) ms+0.5%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.73 ± (11.71 - 11.76) MB11.73 ± (11.71 - 11.76) MB-0.0%
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)-0.0%
.NET 8 - Bailout
process.internal_duration_ms190.28 ± (189.93 - 190.64) ms189.35 ± (189.08 - 189.61) ms-0.5%
process.time_to_main_ms70.66 ± (70.51 - 70.81) ms70.36 ± (70.26 - 70.46) ms-0.4%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.82 ± (11.79 - 11.85) MB11.78 ± (11.76 - 11.81) MB-0.3%
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)-0.4%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms360.88 ± (359.02 - 362.74) ms358.30 ± (356.86 - 359.73) ms-0.7%
process.time_to_main_ms465.32 ± (464.69 - 465.95) ms459.94 ± (459.28 - 460.61) ms-1.2%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed50.48 ± (50.43 - 50.52) MB50.16 ± (50.12 - 50.20) MB-0.6%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.2%✅⬆️
Comparison explanation

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 highlighted in **red**. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

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).

Duration charts
FakeDbCommand (.NET Framework 4.8)
gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7723) - mean (75ms)  : 70, 80
    master - mean (75ms)  : 70, 81

    section Bailout
    This PR (7723) - mean (80ms)  : 75, 86
    master - mean (79ms)  : 74, 84

    section CallTarget+Inlining+NGEN
    This PR (7723) - mean (1,118ms)  : 1045, 1191
    master - mean (1,129ms)  : 1031, 1227

Loading
FakeDbCommand (.NET Core 3.1)
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7723) - mean (119ms)  : 113, 124
    master - mean (117ms)  : 110, 125

    section Bailout
    This PR (7723) - mean (120ms)  : 112, 128
    master - mean (119ms)  : 112, 126

    section CallTarget+Inlining+NGEN
    This PR (7723) - mean (811ms)  : 779, 843
    master - mean (804ms)  : 763, 845

Loading
FakeDbCommand (.NET 6)
gantt
    title Execution time (ms) FakeDbCommand (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7723) - mean (105ms)  : 100, 110
    master - mean (104ms)  : 99, 110

    section Bailout
    This PR (7723) - mean (106ms)  : 101, 111
    master - mean (105ms)  : 98, 112

    section CallTarget+Inlining+NGEN
    This PR (7723) - mean (758ms)  : 719, 797
    master - mean (757ms)  : 702, 812

Loading
FakeDbCommand (.NET 8)
gantt
    title Execution time (ms) FakeDbCommand (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7723) - mean (102ms)  : 96, 109
    master - mean (102ms)  : 96, 107

    section Bailout
    This PR (7723) - mean (106ms)  : 100, 112
    master - mean (103ms)  : 98, 108

    section CallTarget+Inlining+NGEN
    This PR (7723) - mean (719ms)  : 691, 747
    master - mean (709ms)  : 680, 739

Loading
HttpMessageHandler (.NET Framework 4.8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7723) - mean (193ms)  : 188, 199
    master - mean (193ms)  : 189, 196

    section Bailout
    This PR (7723) - mean (196ms)  : 193, 198
    master - mean (197ms)  : 194, 200

    section CallTarget+Inlining+NGEN
    This PR (7723) - mean (1,168ms)  : 1090, 1245
    master - mean (1,164ms)  : 1109, 1218

Loading
HttpMessageHandler (.NET Core 3.1)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7723) - mean (277ms)  : 272, 281
    master - mean (277ms)  : 272, 282

    section Bailout
    This PR (7723) - mean (276ms)  : 272, 280
    master - mean (277ms)  : 273, 282

    section CallTarget+Inlining+NGEN
    This PR (7723) - mean (935ms)  : 896, 974
    master - mean (956ms)  : 920, 991

Loading
HttpMessageHandler (.NET 6)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7723) - mean (268ms)  : 264, 272
    master - mean (269ms)  : 264, 274

    section Bailout
    This PR (7723) - mean (269ms)  : 264, 274
    master - mean (269ms)  : 266, 271

    section CallTarget+Inlining+NGEN
    This PR (7723) - mean (920ms)  : 874, 966
    master - mean (934ms)  : 874, 993

Loading
HttpMessageHandler (.NET 8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7723) - mean (269ms)  : 264, 274
    master - mean (268ms)  : 264, 273

    section Bailout
    This PR (7723) - mean (269ms)  : 265, 273
    master - mean (270ms)  : 264, 276

    section CallTarget+Inlining+NGEN
    This PR (7723) - mean (848ms)  : 832, 865
    master - mean (857ms)  : 839, 876

Loading

@andrewlock andrewlock force-pushed the andrew/settings/5-move-mutable-settings-off-tracer-settings branch from dd7b7eb to 10c89c9 Compare November 4, 2025 15:36
@andrewlock andrewlock force-pushed the andrew/settings/4-mutable-settings-service branch from 717fff8 to 21e9e1c Compare November 4, 2025 15:36
@andrewlock andrewlock force-pushed the andrew/settings/5-move-mutable-settings-off-tracer-settings branch from 10c89c9 to 741db4f Compare November 6, 2025 08:32
@andrewlock andrewlock force-pushed the andrew/settings/4-mutable-settings-service branch from 21e9e1c to 67beb6a Compare November 6, 2025 08:33
@andrewlock andrewlock force-pushed the andrew/settings/5-move-mutable-settings-off-tracer-settings branch from 741db4f to 3d2a06f Compare November 7, 2025 18:09
@andrewlock andrewlock force-pushed the andrew/settings/4-mutable-settings-service branch from 67beb6a to 920071a Compare November 7, 2025 18:09
@andrewlock andrewlock force-pushed the andrew/settings/5-move-mutable-settings-off-tracer-settings branch from 3d2a06f to 8ae168d Compare November 10, 2025 12:25
@andrewlock andrewlock force-pushed the andrew/settings/4-mutable-settings-service branch from 5fcef8c to 9aa97ec Compare November 10, 2025 12:25
// Move the creation of these settings inside SettingsManager?
var initialMutableSettings = MutableSettings.CreateInitialMutableSettings(source, telemetry, errorLog, this);
Manager = new(this, initialMutableSettings, Exporter);
MutableSettings = initialMutableSettings;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was the order of operations here changed on purpose? Manager / MutableSettings got flipped around but I don't see anything really so just wondering

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, no reason, I think that was just accidental in amongst all the refactoring 😅 It's moot in the next PR where we remove MutableSettings entirely 😅

@andrewlock andrewlock force-pushed the andrew/settings/5-move-mutable-settings-off-tracer-settings branch from 8ae168d to b538e28 Compare November 11, 2025 10:04
@andrewlock andrewlock force-pushed the andrew/settings/4-mutable-settings-service branch from 9aa97ec to 98a10b7 Compare November 11, 2025 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:tracer The core tracer library (Datadog.Trace, does not include OpenTracing, native code, or integrations) type:refactor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants