Update language used in native log messages#7467
Conversation
There was a problem hiding this comment.
LGTM,
Also, I think there's a good opportunity here to change two small nits that I hate about our current native logger:
- The date format:
09/04/25 04:02:45.112 PM.... can we move to the managed format:2025-09-04 16:02:45.723 +02:00, even the tracer loader have a different format:[2025-09-04 16:02:45.289 +02:00|1|dotnet|True]and the native loader:[2025-09-04 16:02:44.924 | debug | PId: 21671 | TId: 145036748]🤦🏻 😢 - Status names:
[info]in the native and[INF]in the managed.
zacharycmontoya
left a comment
There was a problem hiding this comment.
Thanks for taking the time to do this! We'll also need to update our own internal support docs with updated log lines, so team members can CTRL+F on the new debug logs
Co-authored-by: Zach Montoya <zach.montoya@datadoghq.com>
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 (7467) - mean (72ms) : 71, 73
. : milestone, 72,
master - mean (77ms) : 73, 80
. : milestone, 77,
section Baseline
This PR (7467) - mean (69ms) : 64, 74
. : milestone, 69,
master - mean (73ms) : 68, 79
. : milestone, 73,
section CallTarget+Inlining+NGEN
This PR (7467) - mean (990ms) : 965, 1015
. : milestone, 990,
master - mean (1,019ms) : 1000, 1038
. : milestone, 1019,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7467) - mean (107ms) : 106, 108
. : milestone, 107,
master - mean (114ms) : 110, 118
. : milestone, 114,
section Baseline
This PR (7467) - mean (106ms) : 103, 109
. : milestone, 106,
master - mean (113ms) : 109, 117
. : milestone, 113,
section CallTarget+Inlining+NGEN
This PR (7467) - mean (699ms) : 681, 717
. : milestone, 699,
master - mean (703ms) : 684, 723
. : milestone, 703,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7467) - mean (94ms) : 93, 95
. : milestone, 94,
master - mean (94ms) : 93, 95
. : milestone, 94,
section Baseline
This PR (7467) - mean (93ms) : 91, 96
. : milestone, 93,
master - mean (94ms) : 91, 97
. : milestone, 94,
section CallTarget+Inlining+NGEN
This PR (7467) - mean (651ms) : 630, 671
. : milestone, 651,
master - mean (657ms) : 632, 681
. : milestone, 657,
gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7467) - mean (93ms) : 92, 94
. : milestone, 93,
master - mean (93ms) : 92, 94
. : milestone, 93,
section Baseline
This PR (7467) - mean (92ms) : 90, 94
. : milestone, 92,
master - mean (92ms) : 90, 94
. : milestone, 92,
section CallTarget+Inlining+NGEN
This PR (7467) - mean (589ms) : 579, 599
. : milestone, 589,
master - mean (594ms) : 584, 605
. : milestone, 594,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7467) - mean (193ms) : 189, 198
. : milestone, 193,
master - mean (192ms) : 187, 197
. : milestone, 192,
section Baseline
This PR (7467) - mean (189ms) : 184, 195
. : milestone, 189,
master - mean (190ms) : 186, 194
. : milestone, 190,
section CallTarget+Inlining+NGEN
This PR (7467) - mean (1,091ms) : 1053, 1129
. : milestone, 1091,
master - mean (1,088ms) : 1060, 1117
. : milestone, 1088,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7467) - mean (276ms) : 269, 282
. : milestone, 276,
master - mean (274ms) : 265, 283
. : milestone, 274,
section Baseline
This PR (7467) - mean (276ms) : 271, 281
. : milestone, 276,
master - mean (274ms) : 267, 281
. : milestone, 274,
section CallTarget+Inlining+NGEN
This PR (7467) - mean (888ms) : 849, 926
. : milestone, 888,
master - mean (888ms) : 854, 923
. : milestone, 888,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7467) - mean (268ms) : 264, 272
. : milestone, 268,
master - mean (266ms) : 261, 272
. : milestone, 266,
section Baseline
This PR (7467) - mean (269ms) : 262, 275
. : milestone, 269,
master - mean (265ms) : 260, 271
. : milestone, 265,
section CallTarget+Inlining+NGEN
This PR (7467) - mean (870ms) : 829, 911
. : milestone, 870,
master - mean (867ms) : 830, 904
. : milestone, 867,
gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat X
axisFormat %s
todayMarker off
section Bailout
This PR (7467) - mean (268ms) : 263, 272
. : milestone, 268,
master - mean (265ms) : 259, 272
. : milestone, 265,
section Baseline
This PR (7467) - mean (268ms) : 261, 274
. : milestone, 268,
master - mean (265ms) : 259, 270
. : milestone, 265,
section CallTarget+Inlining+NGEN
This PR (7467) - mean (784ms) : 753, 815
. : milestone, 784,
master - mean (791ms) : 766, 816
. : milestone, 791,
|
BenchmarksBenchmarks Report for benchmark platform 🐌Benchmarks for #7467 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 ✔️ More allocations
|
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 | 6.02 KB | 6.08 KB | 62 B | 1.03% |
| Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 | 5.64 KB | 5.69 KB | 45 B | 0.80% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StartStopWithChild |
net6.0 | 10.4μs | 56.6ns | 335ns | 0 | 0 | 0 | 5.49 KB |
| master | StartStopWithChild |
netcoreapp3.1 | 14μs | 65.9ns | 264ns | 0 | 0 | 0 | 5.64 KB |
| master | StartStopWithChild |
net472 | 22.1μs | 104ns | 415ns | 0.903 | 0.113 | 0 | 6.02 KB |
| #7467 | StartStopWithChild |
net6.0 | 10.8μs | 58.4ns | 314ns | 0 | 0 | 0 | 5.49 KB |
| #7467 | StartStopWithChild |
netcoreapp3.1 | 13.2μs | 42.5ns | 159ns | 0 | 0 | 0 | 5.69 KB |
| #7467 | StartStopWithChild |
net472 | 22.6μs | 118ns | 566ns | 0.985 | 0.328 | 0.109 | 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 | 932μs | 120ns | 464ns | 0 | 0 | 0 | 2.71 KB |
| master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 1.02ms | 107ns | 401ns | 0 | 0 | 0 | 2.7 KB |
| master | WriteAndFlushEnrichedTraces |
net472 | 1.19ms | 73ns | 283ns | 0 | 0 | 0 | 3.31 KB |
| #7467 | WriteAndFlushEnrichedTraces |
net6.0 | 929μs | 105ns | 393ns | 0 | 0 | 0 | 2.71 KB |
| #7467 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 1.05ms | 121ns | 437ns | 0 | 0 | 0 | 2.7 KB |
| #7467 | WriteAndFlushEnrichedTraces |
net472 | 1.2ms | 80.6ns | 312ns | 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 | 326μs | 1.49μs | 5.97μs | 0 | 0 | 0 | 172.07 KB |
| master | AllCycleSimpleBody |
netcoreapp3.1 | 458μs | 701ns | 2.72μs | 0 | 0 | 0 | 174.18 KB |
| master | AllCycleSimpleBody |
net472 | 427μs | 170ns | 659ns | 29.2 | 0 | 0 | 194.24 KB |
| master | AllCycleMoreComplexBody |
net6.0 | 329μs | 622ns | 2.33μs | 0 | 0 | 0 | 175.58 KB |
| master | AllCycleMoreComplexBody |
netcoreapp3.1 | 504μs | 1.6μs | 6.2μs | 0 | 0 | 0 | 177.6 KB |
| master | AllCycleMoreComplexBody |
net472 | 433μs | 319ns | 1.24μs | 30.2 | 0 | 0 | 197.76 KB |
| master | ObjectExtractorSimpleBody |
net6.0 | 322ns | 1.84ns | 12.9ns | 0 | 0 | 0 | 280 B |
| master | ObjectExtractorSimpleBody |
netcoreapp3.1 | 394ns | 2.18ns | 13.3ns | 0 | 0 | 0 | 272 B |
| master | ObjectExtractorSimpleBody |
net472 | 303ns | 0.0429ns | 0.166ns | 0.0443 | 0 | 0 | 281 B |
| master | ObjectExtractorMoreComplexBody |
net6.0 | 6.21μs | 28.4ns | 114ns | 0 | 0 | 0 | 3.78 KB |
| master | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 7.82μs | 4.23ns | 16.4ns | 0 | 0 | 0 | 3.69 KB |
| master | ObjectExtractorMoreComplexBody |
net472 | 6.77μs | 1.4ns | 5.06ns | 0.602 | 0 | 0 | 3.8 KB |
| #7467 | AllCycleSimpleBody |
net6.0 | 323μs | 1.33μs | 5.16μs | 0 | 0 | 0 | 172.07 KB |
| #7467 | AllCycleSimpleBody |
netcoreapp3.1 | 465μs | 443ns | 1.72μs | 0 | 0 | 0 | 174.18 KB |
| #7467 | AllCycleSimpleBody |
net472 | 425μs | 159ns | 615ns | 29.2 | 0 | 0 | 194.24 KB |
| #7467 | AllCycleMoreComplexBody |
net6.0 | 336μs | 1.13μs | 4.39μs | 0 | 0 | 0 | 175.58 KB |
| #7467 | AllCycleMoreComplexBody |
netcoreapp3.1 | 469μs | 1.26μs | 4.88μs | 0 | 0 | 0 | 177.6 KB |
| #7467 | AllCycleMoreComplexBody |
net472 | 433μs | 175ns | 677ns | 30.2 | 0 | 0 | 197.76 KB |
| #7467 | ObjectExtractorSimpleBody |
net6.0 | 327ns | 1.72ns | 8.43ns | 0 | 0 | 0 | 280 B |
| #7467 | ObjectExtractorSimpleBody |
netcoreapp3.1 | 400ns | 2.18ns | 12.9ns | 0 | 0 | 0 | 272 B |
| #7467 | ObjectExtractorSimpleBody |
net472 | 306ns | 0.217ns | 0.842ns | 0.0446 | 0 | 0 | 281 B |
| #7467 | ObjectExtractorMoreComplexBody |
net6.0 | 6.22μs | 28.2ns | 113ns | 0 | 0 | 0 | 3.78 KB |
| #7467 | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 7.68μs | 37.4ns | 163ns | 0 | 0 | 0 | 3.69 KB |
| #7467 | ObjectExtractorMoreComplexBody |
net472 | 6.78μs | 2.35ns | 9.12ns | 0.577 | 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.6μs | 186ns | 721ns | 0 | 0 | 0 | 32.4 KB |
| master | EncodeArgs |
netcoreapp3.1 | 98.3μs | 136ns | 508ns | 0 | 0 | 0 | 32.4 KB |
| master | EncodeArgs |
net472 | 113μs | 8.15ns | 31.6ns | 5.08 | 0 | 0 | 32.51 KB |
| master | EncodeLegacyArgs |
net6.0 | 144μs | 38ns | 147ns | 0 | 0 | 0 | 2.15 KB |
| master | EncodeLegacyArgs |
netcoreapp3.1 | 193μs | 53ns | 205ns | 0 | 0 | 0 | 2.14 KB |
| master | EncodeLegacyArgs |
net472 | 262μs | 25.8ns | 100ns | 0 | 0 | 0 | 2.16 KB |
| #7467 | EncodeArgs |
net6.0 | 77.3μs | 364ns | 1.46μs | 0 | 0 | 0 | 32.4 KB |
| #7467 | EncodeArgs |
netcoreapp3.1 | 97.3μs | 185ns | 716ns | 0 | 0 | 0 | 32.4 KB |
| #7467 | EncodeArgs |
net472 | 110μs | 59.3ns | 230ns | 4.94 | 0 | 0 | 32.51 KB |
| #7467 | EncodeLegacyArgs |
net6.0 | 143μs | 84.1ns | 326ns | 0 | 0 | 0 | 2.15 KB |
| #7467 | EncodeLegacyArgs |
netcoreapp3.1 | 198μs | 197ns | 762ns | 0 | 0 | 0 | 2.14 KB |
| #7467 | EncodeLegacyArgs |
net472 | 261μs | 36.7ns | 132ns | 0 | 0 | 0 | 2.16 KB |
Benchmarks.Trace.Asm.AppSecWafBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #7467
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑netcoreapp3.1
1.379
627,923.02
865,638.36
| Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑netcoreapp3.1 | 1.379 | 627,923.02 | 865,638.36 |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | RunWafRealisticBenchmark |
net6.0 | 404μs | 120ns | 467ns | 0 | 0 | 0 | 4.55 KB |
| master | RunWafRealisticBenchmark |
netcoreapp3.1 | 621μs | 3.63μs | 34.3μs | 0 | 0 | 0 | 4.48 KB |
| master | RunWafRealisticBenchmark |
net472 | 435μs | 169ns | 656ns | 0 | 0 | 0 | 4.68 KB |
| master | RunWafRealisticBenchmarkWithAttack |
net6.0 | 286μs | 29.8ns | 111ns | 0 | 0 | 0 | 2.24 KB |
| master | RunWafRealisticBenchmarkWithAttack |
netcoreapp3.1 | 305μs | 212ns | 820ns | 0 | 0 | 0 | 2.22 KB |
| master | RunWafRealisticBenchmarkWithAttack |
net472 | 314μs | 102ns | 394ns | 0 | 0 | 0 | 2.29 KB |
| #7467 | RunWafRealisticBenchmark |
net6.0 | 395μs | 76.8ns | 287ns | 0 | 0 | 0 | 4.55 KB |
| #7467 | RunWafRealisticBenchmark |
netcoreapp3.1 | 863μs | 2.51μs | 9.4μs | 0 | 0 | 0 | 4.48 KB |
| #7467 | RunWafRealisticBenchmark |
net472 | 432μs | 99.6ns | 386ns | 0 | 0 | 0 | 4.66 KB |
| #7467 | RunWafRealisticBenchmarkWithAttack |
net6.0 | 286μs | 61.6ns | 230ns | 0 | 0 | 0 | 2.24 KB |
| #7467 | RunWafRealisticBenchmarkWithAttack |
netcoreapp3.1 | 301μs | 52.8ns | 197ns | 0 | 0 | 0 | 2.22 KB |
| #7467 | RunWafRealisticBenchmarkWithAttack |
net472 | 312μs | 65ns | 252ns | 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 | 60.5μs | 28.9ns | 104ns | 0 | 0 | 0 | 14.52 KB |
| master | SendRequest |
netcoreapp3.1 | 70.1μs | 240ns | 866ns | 0 | 0 | 0 | 17.42 KB |
| master | SendRequest |
net472 | 0.0222ns | 0.00202ns | 0.00783ns | 0 | 0 | 0 | 0 b |
| #7467 | SendRequest |
net6.0 | 61μs | 37ns | 139ns | 0 | 0 | 0 | 14.52 KB |
| #7467 | SendRequest |
netcoreapp3.1 | 71μs | 90.5ns | 339ns | 0 | 0 | 0 | 17.42 KB |
| #7467 | SendRequest |
net472 | 0.0108ns | 0.00281ns | 0.0109ns | 0 | 0 | 0 | 0 b |
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ More allocations ⚠️
More allocations ⚠️ in #7467
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1
0 b
1 B
1 B
∞
Fewer allocations 🎉 in #7467
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0
3 B
2 B
-1 B
-33.33%
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1 | 0 b | 1 B | 1 B | ∞ |
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 | 3 B | 2 B | -1 B | -33.33% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | OriginalCharSlice |
net6.0 | 1.93ms | 2.15μs | 8.03μs | 0 | 0 | 0 | 640 KB |
| master | OriginalCharSlice |
netcoreapp3.1 | 2.11ms | 10.3μs | 41.4μs | 0 | 0 | 0 | 640 KB |
| master | OriginalCharSlice |
net472 | 2.64ms | 378ns | 1.41μs | 100 | 0 | 0 | 641.95 KB |
| master | OptimizedCharSlice |
net6.0 | 1.36ms | 369ns | 1.43μs | 0 | 0 | 0 | 4 B |
| master | OptimizedCharSlice |
netcoreapp3.1 | 1.8ms | 266ns | 1.03μs | 0 | 0 | 0 | 1 B |
| master | OptimizedCharSlice |
net472 | 1.95ms | 486ns | 1.88μs | 0 | 0 | 0 | 73 B |
| master | OptimizedCharSliceWithPool |
net6.0 | 840μs | 41.1ns | 159ns | 0 | 0 | 0 | 3 B |
| master | OptimizedCharSliceWithPool |
netcoreapp3.1 | 800μs | 50.5ns | 195ns | 0 | 0 | 0 | 0 b |
| master | OptimizedCharSliceWithPool |
net472 | 1.16ms | 134ns | 520ns | 0 | 0 | 0 | 47 B |
| #7467 | OriginalCharSlice |
net6.0 | 2.06ms | 3.5μs | 13.6μs | 0 | 0 | 0 | 640.01 KB |
| #7467 | OriginalCharSlice |
netcoreapp3.1 | 2.08ms | 7.47μs | 26.9μs | 0 | 0 | 0 | 640 KB |
| #7467 | OriginalCharSlice |
net472 | 2.72ms | 228ns | 853ns | 100 | 0 | 0 | 641.95 KB |
| #7467 | OptimizedCharSlice |
net6.0 | 1.37ms | 444ns | 1.72μs | 0 | 0 | 0 | 4 B |
| #7467 | OptimizedCharSlice |
netcoreapp3.1 | 1.69ms | 232ns | 897ns | 0 | 0 | 0 | 1 B |
| #7467 | OptimizedCharSlice |
net472 | 1.91ms | 878ns | 3.4μs | 0 | 0 | 0 | 73 B |
| #7467 | OptimizedCharSliceWithPool |
net6.0 | 825μs | 111ns | 384ns | 0 | 0 | 0 | 2 B |
| #7467 | OptimizedCharSliceWithPool |
netcoreapp3.1 | 817μs | 146ns | 564ns | 0 | 0 | 0 | 1 B |
| #7467 | OptimizedCharSliceWithPool |
net472 | 1.13ms | 69.4ns | 269ns | 0 | 0 | 0 | 47 B |
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | WriteAndFlushEnrichedTraces |
net6.0 | 639μs | 711ns | 2.56μs | 0 | 0 | 0 | 41.84 KB |
| master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 644μs | 3.51μs | 20.1μs | 0 | 0 | 0 | 42.04 KB |
| master | WriteAndFlushEnrichedTraces |
net472 | 863μs | 2.27μs | 8.48μs | 8.33 | 0 | 0 | 56.29 KB |
| #7467 | WriteAndFlushEnrichedTraces |
net6.0 | 659μs | 863ns | 3.23μs | 0 | 0 | 0 | 41.85 KB |
| #7467 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 715μs | 4.03μs | 27μs | 0 | 0 | 0 | 41.86 KB |
| #7467 | WriteAndFlushEnrichedTraces |
net472 | 881μs | 2.26μs | 8.76μs | 8.33 | 0 | 0 | 56.05 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.86μs | 9.52ns | 42.6ns | 0 | 0 | 0 | 1.02 KB |
| master | ExecuteNonQuery |
netcoreapp3.1 | 2.51μs | 8.96ns | 33.5ns | 0 | 0 | 0 | 1.02 KB |
| master | ExecuteNonQuery |
net472 | 2.82μs | 3.88ns | 14.5ns | 0.156 | 0.0142 | 0 | 987 B |
| #7467 | ExecuteNonQuery |
net6.0 | 1.83μs | 8.84ns | 34.2ns | 0 | 0 | 0 | 1.02 KB |
| #7467 | ExecuteNonQuery |
netcoreapp3.1 | 2.57μs | 7.36ns | 28.5ns | 0 | 0 | 0 | 1.02 KB |
| #7467 | ExecuteNonQuery |
net472 | 2.82μs | 3.47ns | 13.5ns | 0.155 | 0.0141 | 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.69μs | 0.738ns | 2.86ns | 0 | 0 | 0 | 1.03 KB |
| master | CallElasticsearch |
netcoreapp3.1 | 2.27μs | 10.6ns | 41ns | 0 | 0 | 0 | 1.03 KB |
| master | CallElasticsearch |
net472 | 3.47μs | 1.15ns | 4.32ns | 0.156 | 0 | 0 | 1.04 KB |
| master | CallElasticsearchAsync |
net6.0 | 1.89μs | 1.86ns | 7.21ns | 0 | 0 | 0 | 1.01 KB |
| master | CallElasticsearchAsync |
netcoreapp3.1 | 2.52μs | 1.48ns | 5.73ns | 0 | 0 | 0 | 1.08 KB |
| master | CallElasticsearchAsync |
net472 | 3.77μs | 2.4ns | 8.97ns | 0.169 | 0 | 0 | 1.1 KB |
| #7467 | CallElasticsearch |
net6.0 | 1.69μs | 7.91ns | 31.7ns | 0 | 0 | 0 | 1.03 KB |
| #7467 | CallElasticsearch |
netcoreapp3.1 | 2.2μs | 7.03ns | 27.2ns | 0 | 0 | 0 | 1.03 KB |
| #7467 | CallElasticsearch |
net472 | 3.53μs | 2.56ns | 9.93ns | 0.159 | 0 | 0 | 1.04 KB |
| #7467 | CallElasticsearchAsync |
net6.0 | 1.8μs | 0.327ns | 1.22ns | 0 | 0 | 0 | 1.01 KB |
| #7467 | CallElasticsearchAsync |
netcoreapp3.1 | 2.33μs | 11.9ns | 51.7ns | 0 | 0 | 0 | 1.08 KB |
| #7467 | CallElasticsearchAsync |
net472 | 3.75μs | 1.8ns | 6.74ns | 0.169 | 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.82μs | 8.22ns | 31.8ns | 0 | 0 | 0 | 952 B |
| master | ExecuteAsync |
netcoreapp3.1 | 2.48μs | 4.8ns | 18.6ns | 0 | 0 | 0 | 952 B |
| master | ExecuteAsync |
net472 | 2.43μs | 2.8ns | 10.8ns | 0.134 | 0 | 0 | 915 B |
| #7467 | ExecuteAsync |
net6.0 | 1.83μs | 2.26ns | 8.74ns | 0 | 0 | 0 | 952 B |
| #7467 | ExecuteAsync |
netcoreapp3.1 | 2.33μs | 9.88ns | 38.3ns | 0 | 0 | 0 | 952 B |
| #7467 | ExecuteAsync |
net472 | 2.48μs | 5.21ns | 20.2ns | 0.136 | 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.87μs | 6.64ns | 25.7ns | 0 | 0 | 0 | 2.36 KB |
| master | SendAsync |
netcoreapp3.1 | 8.49μs | 20.5ns | 79.2ns | 0 | 0 | 0 | 2.9 KB |
| master | SendAsync |
net472 | 12.2μs | 4.68ns | 17.5ns | 0.486 | 0 | 0 | 3.18 KB |
| #7467 | SendAsync |
net6.0 | 6.96μs | 10.7ns | 38.5ns | 0 | 0 | 0 | 2.36 KB |
| #7467 | SendAsync |
netcoreapp3.1 | 8.34μs | 6.22ns | 23.3ns | 0 | 0 | 0 | 2.9 KB |
| #7467 | SendAsync |
net472 | 12.3μs | 8.47ns | 32.8ns | 0.491 | 0 | 0 | 3.18 KB |
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️
More allocations ⚠️ in #7467
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472
57.34 KB
65.54 KB
8.19 KB
14.29%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472
278.53 KB
281.27 KB
2.74 KB
0.99%
Fewer allocations 🎉 in #7467
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1
259.06 KB
255.76 KB
-3.3 KB
-1.27%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0
44.43 KB
43.78 KB
-648 B
-1.46%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1
43.86 KB
43.22 KB
-640 B
-1.46%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0
276.9 KB
257.47 KB
-19.43 KB
-7.02%
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 | 57.34 KB | 65.54 KB | 8.19 KB | 14.29% |
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 | 278.53 KB | 281.27 KB | 2.74 KB | 0.99% |
| Benchmark | Base Allocated | Diff Allocated | Change | Change % |
|---|---|---|---|---|
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 | 259.06 KB | 255.76 KB | -3.3 KB | -1.27% |
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 | 44.43 KB | 43.78 KB | -648 B | -1.46% |
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 | 43.86 KB | 43.22 KB | -640 B | -1.46% |
| Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 | 276.9 KB | 257.47 KB | -19.43 KB | -7.02% |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StringConcatBenchmark |
net6.0 | 47.9μs | 264ns | 1.63μs | 0 | 0 | 0 | 44.43 KB |
| master | StringConcatBenchmark |
netcoreapp3.1 | 53.6μs | 653ns | 6.37μs | 0 | 0 | 0 | 43.86 KB |
| master | StringConcatBenchmark |
net472 | 57μs | 150ns | 540ns | 0 | 0 | 0 | 57.34 KB |
| master | StringConcatAspectBenchmark |
net6.0 | 474μs | 1.99μs | 6.89μs | 0 | 0 | 0 | 276.9 KB |
| master | StringConcatAspectBenchmark |
netcoreapp3.1 | 507μs | 2.51μs | 11.2μs | 0 | 0 | 0 | 259.06 KB |
| master | StringConcatAspectBenchmark |
net472 | 408μs | 2.1μs | 10.3μs | 0 | 0 | 0 | 278.53 KB |
| #7467 | StringConcatBenchmark |
net6.0 | 45.2μs | 303ns | 2.8μs | 0 | 0 | 0 | 43.78 KB |
| #7467 | StringConcatBenchmark |
netcoreapp3.1 | 49.2μs | 258ns | 1.53μs | 0 | 0 | 0 | 43.22 KB |
| #7467 | StringConcatBenchmark |
net472 | 57.3μs | 277ns | 1.11μs | 0 | 0 | 0 | 65.54 KB |
| #7467 | StringConcatAspectBenchmark |
net6.0 | 516μs | 2.22μs | 8.01μs | 0 | 0 | 0 | 257.47 KB |
| #7467 | StringConcatAspectBenchmark |
netcoreapp3.1 | 495μs | 2.12μs | 7.95μs | 0 | 0 | 0 | 255.76 KB |
| #7467 | StringConcatAspectBenchmark |
net472 | 401μs | 2.13μs | 14.9μs | 0 | 0 | 0 | 281.27 KB |
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | EnrichedLog |
net6.0 | 2.65μs | 1.12ns | 4.35ns | 0 | 0 | 0 | 1.7 KB |
| master | EnrichedLog |
netcoreapp3.1 | 3.45μs | 16.6ns | 70.6ns | 0 | 0 | 0 | 1.7 KB |
| master | EnrichedLog |
net472 | 4μs | 2.33ns | 9.03ns | 0.26 | 0 | 0 | 1.64 KB |
| #7467 | EnrichedLog |
net6.0 | 2.62μs | 13.6ns | 69.6ns | 0 | 0 | 0 | 1.7 KB |
| #7467 | EnrichedLog |
netcoreapp3.1 | 3.36μs | 9.63ns | 37.3ns | 0 | 0 | 0 | 1.7 KB |
| #7467 | EnrichedLog |
net472 | 4.04μs | 6.73ns | 26.1ns | 0.242 | 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 | 124μs | 42.7ns | 160ns | 0 | 0 | 0 | 4.31 KB |
| master | EnrichedLog |
netcoreapp3.1 | 128μs | 58.2ns | 210ns | 0 | 0 | 0 | 4.31 KB |
| master | EnrichedLog |
net472 | 167μs | 79.7ns | 298ns | 0 | 0 | 0 | 4.52 KB |
| #7467 | EnrichedLog |
net6.0 | 122μs | 83.7ns | 302ns | 0 | 0 | 0 | 4.31 KB |
| #7467 | EnrichedLog |
netcoreapp3.1 | 127μs | 257ns | 994ns | 0 | 0 | 0 | 4.31 KB |
| #7467 | EnrichedLog |
net472 | 167μs | 96.9ns | 375ns | 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.8μs | 18.7ns | 70ns | 0 | 0 | 0 | 2.26 KB |
| master | EnrichedLog |
netcoreapp3.1 | 6.48μs | 27.1ns | 105ns | 0 | 0 | 0 | 2.26 KB |
| master | EnrichedLog |
net472 | 7.56μs | 7.68ns | 29.8ns | 0.301 | 0 | 0 | 2.08 KB |
| #7467 | EnrichedLog |
net6.0 | 4.96μs | 23.3ns | 90.2ns | 0 | 0 | 0 | 2.26 KB |
| #7467 | EnrichedLog |
netcoreapp3.1 | 6.68μs | 10.3ns | 39.8ns | 0 | 0 | 0 | 2.26 KB |
| #7467 | EnrichedLog |
net472 | 7.46μs | 3.91ns | 14.6ns | 0.297 | 0 | 0 | 2.08 KB |
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | SendReceive |
net6.0 | 2.03μs | 9.52ns | 39.2ns | 0 | 0 | 0 | 1.2 KB |
| master | SendReceive |
netcoreapp3.1 | 2.5μs | 11.6ns | 47.8ns | 0 | 0 | 0 | 1.2 KB |
| master | SendReceive |
net472 | 3.18μs | 0.991ns | 3.43ns | 0.189 | 0 | 0 | 1.2 KB |
| #7467 | SendReceive |
net6.0 | 1.98μs | 10.1ns | 48.5ns | 0 | 0 | 0 | 1.2 KB |
| #7467 | SendReceive |
netcoreapp3.1 | 2.58μs | 11.8ns | 45.9ns | 0 | 0 | 0 | 1.2 KB |
| #7467 | SendReceive |
net472 | 3.17μs | 2.9ns | 10.4ns | 0.189 | 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.05μs | 3.08ns | 11.9ns | 0 | 0 | 0 | 1.58 KB |
| master | EnrichedLog |
netcoreapp3.1 | 5.66μs | 16.1ns | 62.3ns | 0 | 0 | 0 | 1.63 KB |
| master | EnrichedLog |
net472 | 6.63μs | 7.99ns | 29.9ns | 0.299 | 0 | 0 | 2.03 KB |
| #7467 | EnrichedLog |
net6.0 | 4.11μs | 3.93ns | 14.2ns | 0 | 0 | 0 | 1.58 KB |
| #7467 | EnrichedLog |
netcoreapp3.1 | 5.56μs | 12.8ns | 49.6ns | 0 | 0 | 0 | 1.63 KB |
| #7467 | EnrichedLog |
net472 | 6.74μs | 9.1ns | 34.1ns | 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 | 738ns | 1.37ns | 5.13ns | 0 | 0 | 0 | 576 B |
| master | StartFinishSpan |
netcoreapp3.1 | 927ns | 3.27ns | 12.7ns | 0 | 0 | 0 | 576 B |
| master | StartFinishSpan |
net472 | 902ns | 0.0372ns | 0.129ns | 0.0901 | 0 | 0 | 578 B |
| master | StartFinishScope |
net6.0 | 891ns | 0.33ns | 1.19ns | 0 | 0 | 0 | 696 B |
| master | StartFinishScope |
netcoreapp3.1 | 1.13μs | 6.12ns | 33ns | 0 | 0 | 0 | 696 B |
| master | StartFinishScope |
net472 | 1.1μs | 0.385ns | 1.39ns | 0.0994 | 0 | 0 | 658 B |
| #7467 | StartFinishSpan |
net6.0 | 725ns | 3.54ns | 15.4ns | 0 | 0 | 0 | 576 B |
| #7467 | StartFinishSpan |
netcoreapp3.1 | 927ns | 4.97ns | 27.7ns | 0 | 0 | 0 | 576 B |
| #7467 | StartFinishSpan |
net472 | 910ns | 0.0776ns | 0.29ns | 0.0874 | 0 | 0 | 578 B |
| #7467 | StartFinishScope |
net6.0 | 880ns | 4.2ns | 16.3ns | 0 | 0 | 0 | 696 B |
| #7467 | StartFinishScope |
netcoreapp3.1 | 1.12μs | 6.02ns | 33.5ns | 0 | 0 | 0 | 696 B |
| #7467 | StartFinishScope |
net472 | 1.11μs | 0.283ns | 1.02ns | 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.03μs | 5.34ns | 25ns | 0 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
netcoreapp3.1 | 1.31μs | 6.59ns | 30.9ns | 0 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
net472 | 1.38μs | 0.562ns | 2.18ns | 0.104 | 0 | 0 | 658 B |
| #7467 | RunOnMethodBegin |
net6.0 | 1.01μs | 3.84ns | 13.3ns | 0 | 0 | 0 | 696 B |
| #7467 | RunOnMethodBegin |
netcoreapp3.1 | 1.34μs | 6.6ns | 29.5ns | 0 | 0 | 0 | 696 B |
| #7467 | RunOnMethodBegin |
net472 | 1.38μs | 2.09ns | 8.09ns | 0.103 | 0 | 0 | 658 B |
| if (!include_process_names.empty() && !Contains(include_process_names, process_name)) | ||
| { | ||
| Log::Info("CorProfiler::Initialize ClrProfiler disabled: ", process_name, " not found in ", | ||
| Log::Info("CorProfiler::Initialize Datadog SDK disabled: ", process_name, " not found in ", |
There was a problem hiding this comment.
Datadog SDK
"but the auto-instrumentation library is not an SDK!!" ![]()
There was a problem hiding this comment.
You're preaching to the choir man, just give me an alternative suggestion 😂 Datadog Library? Or we can just drop SDK entirely - 'Datadog disabled" works too 🤷♂️
| if (process_name == exclude_assembly) | ||
| { | ||
| Log::Info("CorProfiler::Initialize ClrProfiler disabled: ", process_name," found in default exclude list"); | ||
| Log::Info("CorProfiler::Initialize Datadog SDK disabled: ", process_name," found in default exclude list"); |
There was a problem hiding this comment.
Unrelated, but why are they called default_exclude_assemblies and exclude_assembly when it's a list of process names? 😅
There was a problem hiding this comment.
A totally reasonable question 😅 As far as I can tell, it all traces back years ago and was essentially copy pasta. Going to do a bit more cleanup separately
There was a problem hiding this comment.
Did a PR to fix that (and other minor annoyances) here: #7475
Co-authored-by: Lucas Pimentel <lucas.pimentel@datadoghq.com>
## Summary of changes - Add performance optimization patterns, testing guidelines, and logging guidelines to `AGENTS.md`. - Bonus: Fix noop pipeline path exclusions to properly skip CI for documentation-only PRs. ## Reason for change **Documentation:** Document reusable patterns that apply broadly across the tracer codebase: - Performance patterns for startup code and hot paths (from PR #7594) - Testing patterns for testability and isolation (from PR #7594) - Logging terminology to avoid customer confusion (from PR #7467) **CI Optimization:** The noop pipeline was not triggering for documentation-only PRs because it uses `StartsWith()` matching, not glob patterns. The `**/CLAUDE.md` pattern never matched `.claude/CLAUDE.md`. ## Implementation details **New documentation sections:** - Performance Guidelines: Identifies performance-critical code paths (bootstrap/startup and hot paths) - Performance Optimization Patterns: Zero-allocation structs, logging best practices, avoiding params arrays - Testing Patterns: Abstraction-for-testability with examples - Logging Guidelines: Consistent customer-facing terminology (Datadog SDK, Instrumentation, Continuous Profiler, Datadog.Trace.dll) **Pipeline fixes:** - Changed `**/CLAUDE.md` glob to `.claude/` prefix (compatible with `StartsWith()`) - Added `.devcontainer/`, `.vscode/`, `LICENSE`, `NOTICE` to exclusions **Other changes:** - Fixed `.claude/CLAUDE.md` relative path reference - Improved formatting in Coding Style section ## Test coverage N/A - documentation and CI configuration only --------- Co-authored-by: Claude <noreply@anthropic.com>
## Summary of changes - Add performance optimization patterns, testing guidelines, and logging guidelines to `AGENTS.md`. - Bonus: Fix noop pipeline path exclusions to properly skip CI for documentation-only PRs. ## Reason for change **Documentation:** Document reusable patterns that apply broadly across the tracer codebase: - Performance patterns for startup code and hot paths (from PR #7594) - Testing patterns for testability and isolation (from PR #7594) - Logging terminology to avoid customer confusion (from PR #7467) **CI Optimization:** The noop pipeline was not triggering for documentation-only PRs because it uses `StartsWith()` matching, not glob patterns. The `**/CLAUDE.md` pattern never matched `.claude/CLAUDE.md`. ## Implementation details **New documentation sections:** - Performance Guidelines: Identifies performance-critical code paths (bootstrap/startup and hot paths) - Performance Optimization Patterns: Zero-allocation structs, logging best practices, avoiding params arrays - Testing Patterns: Abstraction-for-testability with examples - Logging Guidelines: Consistent customer-facing terminology (Datadog SDK, Instrumentation, Continuous Profiler, Datadog.Trace.dll) **Pipeline fixes:** - Changed `**/CLAUDE.md` glob to `.claude/` prefix (compatible with `StartsWith()`) - Added `.devcontainer/`, `.vscode/`, `LICENSE`, `NOTICE` to exclusions **Other changes:** - Fixed `.claude/CLAUDE.md` relative path reference - Improved formatting in Coding Style section ## Test coverage N/A - documentation and CI configuration only --------- Co-authored-by: Claude <noreply@anthropic.com>
Summary of changes
Updates some of the language used in native logs to avoid ambiguous use of
ProfilerReason for change
Profileris tricky. We use the .NET profiling APIs for all our native functionality, so our native components are technically all "profilers". But this is ambiguous with the Continuous Profiler product, and can often confuse both customers and support.To reduce confusion, we should aim to avoid using "Profiler" to refer to the native components where possible. In particular
Datadog SDKThe Datadog SDK has been disabledContinuous ProfilerThe Continuous Profiler has been disabledInstrumentationorInstrumentation componentas appropriateInstrumentation has been disabledorThe Instrumentation component failed to initializeDatadog.Trace.dll(I hope it's not necessary to refer to the Datadog.Trace.ClrProfiler.Managed.Loader.dll 😅)Unable to initialize: Datadog.Trace.dll was not yet loaded into the App DomainNote that we're primarily concerned with the "high level" log messages which are "customer facing". See other details for exceptions
Implementation details
Updated the logs in the native loader and native tracer in line with this guidance. I'm assuming the CP already follows this.
Test coverage
N/A
Other details
Note that internal/technical naming is still valid, so we still have the same distinct components, e.g.
Additionally, we can still use
CorProfiler/ICorProfiler/COR Profilerto refer to the specific runtime components if necessary.