Skip to content

Conversation

@chojomok
Copy link
Collaborator

@chojomok chojomok commented Oct 21, 2025

Summary of changes

Initially thought it was not possible to generate spans for .NET Framework for Quartz spans as the QuartzDiagnosticObserver needed to implement the DiagnosticObserver class.
Learned that the infrastructure for .NET Framework for the DiagnosticObserver is already setup so the traces should be generated.

Reason for change

To broaden support for Tracing Integrations that use the DiagnosticObserver class.

Implementation details

Nothing new needed. Just needed to create a snapshot for the test.

Test coverage

Other details

@chojomok chojomok requested review from a team as code owners October 21, 2025 15:57
@datadog-datadog-prod-us1
Copy link

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

⚠️ Tests

⚠️ Warnings

🧪 6 Tests failed

SubmitsTraces from Datadog.Trace.ClrProfiler.IntegrationTests.QuartzTests (Datadog)

Verified path: D:\a\_work\1\s\tracer\test\Datadog.Trace.ClrProfiler.IntegrationTests\..\snapshots\QuartzTestsV3NETFRAMEWORK.verified.txtonException thrown
SubmitsTraces from Datadog.Trace.ClrProfiler.IntegrationTests.QuartzTests (Datadog)

Verified path: D:\a\_work\1\s\tracer\test\Datadog.Trace.ClrProfiler.IntegrationTests\..\snapshots\QuartzTestsV3NETFRAMEWORK.verified.txtonException thrown
AssemblyReferencesHaveNotChanged from Datadog.Trace.Tests.PublicApiTests.DatadogTraceTests (Datadog)
String has differences from expected value because Assembly references should match the verified list of assembly references. Update the verified snapshot when the assembly references change. Diff:
- 9:System.Diagnostics.DiagnosticSource, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
View all

ℹ️ Info

❄️ No new flaky tests detected

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

@chojomok chojomok changed the title mohammad/diagnosticobserver netframework support [tracing] add support for Quartz integration for framework Oct 21, 2025
@chojomok chojomok marked this pull request as draft October 21, 2025 16:00
@dd-trace-dotnet-ci-bot
Copy link

dd-trace-dotnet-ci-bot bot commented Oct 21, 2025

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:

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

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7687) - mean (83ms)  : 79, 87
     .   : milestone, 83,
    master - mean (81ms)  : 76, 85
     .   : milestone, 81,

    section Baseline
    This PR (7687) - mean (78ms)  : 74, 82
     .   : milestone, 78,
    master - mean (76ms)  : 71, 82
     .   : milestone, 76,

    section CallTarget+Inlining+NGEN
    This PR (7687) - mean (1,144ms)  : 1064, 1223
     .   : milestone, 1144,
    master - mean (1,117ms)  : 1043, 1192
     .   : milestone, 1117,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7687) - mean (123ms)  : 118, 128
     .   : milestone, 123,
    master - mean (120ms)  : 115, 125
     .   : milestone, 120,

    section Baseline
    This PR (7687) - mean (122ms)  : 116, 128
     .   : milestone, 122,
    master - mean (119ms)  : 113, 125
     .   : milestone, 119,

    section CallTarget+Inlining+NGEN
    This PR (7687) - mean (840ms)  : 810, 870
     .   : milestone, 840,
    master - mean (813ms)  : 775, 850
     .   : milestone, 813,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7687) - mean (107ms)  : 104, 111
     .   : milestone, 107,
    master - mean (106ms)  : 101, 111
     .   : milestone, 106,

    section Baseline
    This PR (7687) - mean (106ms)  : 101, 111
     .   : milestone, 106,
    master - mean (105ms)  : 100, 110
     .   : milestone, 105,

    section CallTarget+Inlining+NGEN
    This PR (7687) - mean (775ms)  : 757, 794
     .   : milestone, 775,
    master - mean (757ms)  : 724, 789
     .   : milestone, 757,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7687) - mean (107ms)  : 101, 112
     .   : milestone, 107,
    master - mean (105ms)  : 100, 110
     .   : milestone, 105,

    section Baseline
    This PR (7687) - mean (105ms)  : 100, 111
     .   : milestone, 105,
    master - mean (104ms)  : 99, 109
     .   : milestone, 104,

    section CallTarget+Inlining+NGEN
    This PR (7687) - mean (714ms)  : 692, 736
     .   : milestone, 714,
    master - mean (725ms)  : 698, 752
     .   : milestone, 725,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7687) - mean (196ms)  : 193, 198
     .   : milestone, 196,
    master - mean (196ms)  : 192, 200
     .   : milestone, 196,

    section Baseline
    This PR (7687) - mean (193ms)  : 189, 197
     .   : milestone, 193,
    master - mean (193ms)  : 189, 196
     .   : milestone, 193,

    section CallTarget+Inlining+NGEN
    This PR (7687) - mean (1,170ms)  : 1103, 1237
     .   : milestone, 1170,
    master - mean (1,165ms)  : 1100, 1229
     .   : milestone, 1165,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7687) - mean (277ms)  : 271, 284
     .   : milestone, 277,
    master - mean (276ms)  : 272, 280
     .   : milestone, 276,

    section Baseline
    This PR (7687) - mean (275ms)  : 271, 280
     .   : milestone, 275,
    master - mean (276ms)  : 269, 282
     .   : milestone, 276,

    section CallTarget+Inlining+NGEN
    This PR (7687) - mean (950ms)  : 928, 973
     .   : milestone, 950,
    master - mean (943ms)  : 898, 988
     .   : milestone, 943,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7687) - mean (269ms)  : 264, 273
     .   : milestone, 269,
    master - mean (267ms)  : 263, 272
     .   : milestone, 267,

    section Baseline
    This PR (7687) - mean (269ms)  : 264, 274
     .   : milestone, 269,
    master - mean (268ms)  : 263, 273
     .   : milestone, 268,

    section CallTarget+Inlining+NGEN
    This PR (7687) - mean (925ms)  : 907, 944
     .   : milestone, 925,
    master - mean (932ms)  : 875, 988
     .   : milestone, 932,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7687) - mean (268ms)  : 264, 271
     .   : milestone, 268,
    master - mean (267ms)  : 263, 270
     .   : milestone, 267,

    section Baseline
    This PR (7687) - mean (267ms)  : 263, 271
     .   : milestone, 267,
    master - mean (266ms)  : 263, 270
     .   : milestone, 266,

    section CallTarget+Inlining+NGEN
    This PR (7687) - mean (837ms)  : 815, 860
     .   : milestone, 837,
    master - mean (852ms)  : 835, 869
     .   : milestone, 852,

Loading

@pr-commenter
Copy link

pr-commenter bot commented Oct 21, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7687 compared to master:

  • 2 benchmarks are faster, with geometric mean 1.184
  • 1 benchmarks are slower, with geometric mean 2.089
  • 6 benchmarks have fewer allocations
  • 2 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 #7687

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.09 KB 6 KB -89 B -1.46%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.7μs 58.9ns 372ns 0 0 0 5.52 KB
master StartStopWithChild netcoreapp3.1 14.1μs 70.5ns 299ns 0 0 0 5.73 KB
master StartStopWithChild net472 21.8μs 120ns 700ns 0.879 0.22 0 6.09 KB
#7687 StartStopWithChild net6.0 10.3μs 56.8ns 346ns 0 0 0 5.51 KB
#7687 StartStopWithChild netcoreapp3.1 13.4μs 72.1ns 368ns 0 0 0 5.71 KB
#7687 StartStopWithChild net472 21.7μs 122ns 852ns 1 0.335 0.112 6 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 935μs 88.7ns 332ns 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.05ms 254ns 916ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.2ms 72.6ns 262ns 0 0 0 3.31 KB
#7687 WriteAndFlushEnrichedTraces net6.0 932μs 188ns 729ns 0 0 0 2.71 KB
#7687 WriteAndFlushEnrichedTraces netcoreapp3.1 1.05ms 4.91μs 19μs 0 0 0 2.7 KB
#7687 WriteAndFlushEnrichedTraces net472 1.2ms 60.2ns 217ns 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 317ns 1.78ns 10.7ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 403ns 1.94ns 8.01ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 297ns 0.0342ns 0.133ns 0.0432 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.25μs 29.6ns 115ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.9μs 31.6ns 122ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.68μs 8.12ns 31.4ns 0.602 0 0 3.8 KB
#7687 AllCycleSimpleBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
#7687 AllCycleSimpleBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#7687 AllCycleSimpleBody net472 N/A N/A N/A NaN NaN NaN 0 b
#7687 AllCycleMoreComplexBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
#7687 AllCycleMoreComplexBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#7687 AllCycleMoreComplexBody net472 N/A N/A N/A NaN NaN NaN 0 b
#7687 ObjectExtractorSimpleBody net6.0 318ns 1.6ns 7.51ns 0 0 0 280 B
#7687 ObjectExtractorSimpleBody netcoreapp3.1 406ns 0.114ns 0.426ns 0 0 0 272 B
#7687 ObjectExtractorSimpleBody net472 296ns 0.0442ns 0.159ns 0.0432 0 0 281 B
#7687 ObjectExtractorMoreComplexBody net6.0 6.45μs 29.4ns 118ns 0 0 0 3.78 KB
#7687 ObjectExtractorMoreComplexBody netcoreapp3.1 7.95μs 37.7ns 151ns 0 0 0 3.69 KB
#7687 ObjectExtractorMoreComplexBody net472 6.61μs 1.04ns 3.74ns 0.596 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.9μs 202ns 783ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 96.6μs 198ns 765ns 0 0 0 32.4 KB
master EncodeArgs net472 112μs 10.3ns 40ns 5.06 0 0 32.51 KB
master EncodeLegacyArgs net6.0 143μs 36.4ns 141ns 0 0 0 2.15 KB
master EncodeLegacyArgs netcoreapp3.1 201μs 718ns 2.78μs 0 0 0 2.14 KB
master EncodeLegacyArgs net472 263μs 15.7ns 54.3ns 0 0 0 2.16 KB
#7687 EncodeArgs net6.0 77.1μs 312ns 1.17μs 0 0 0 32.4 KB
#7687 EncodeArgs netcoreapp3.1 97.5μs 203ns 787ns 0 0 0 32.4 KB
#7687 EncodeArgs net472 109μs 9.21ns 35.7ns 4.95 0 0 32.51 KB
#7687 EncodeLegacyArgs net6.0 145μs 71.8ns 268ns 0 0 0 2.15 KB
#7687 EncodeLegacyArgs netcoreapp3.1 199μs 266ns 1.03μs 0 0 0 2.14 KB
#7687 EncodeLegacyArgs net472 263μs 129ns 482ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #7687

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑netcoreapp3.1 2.089 410,119.38 856,661.67

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 399μs 74.4ns 278ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 410μs 49.2ns 177ns 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 426μs 27.3ns 98.4ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 284μs 59.7ns 231ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 297μs 408ns 1.58μs 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 309μs 24.8ns 95.9ns 0 0 0 2.29 KB
#7687 RunWafRealisticBenchmark net6.0 399μs 83ns 321ns 0 0 0 4.55 KB
#7687 RunWafRealisticBenchmark netcoreapp3.1 797μs 14.1μs 135μs 0 0 0 4.48 KB
#7687 RunWafRealisticBenchmark net472 428μs 76ns 294ns 0 0 0 4.66 KB
#7687 RunWafRealisticBenchmarkWithAttack net6.0 286μs 50.4ns 195ns 0 0 0 2.24 KB
#7687 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 296μs 260ns 1.01μs 0 0 0 2.22 KB
#7687 RunWafRealisticBenchmarkWithAttack net472 309μs 24.7ns 95.5ns 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.6μs 76.1ns 295ns 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 71.2μs 96.7ns 362ns 0 0 0 17.42 KB
master SendRequest net472 0.00505ns 0.00176ns 0.00682ns 0 0 0 0 b
#7687 SendRequest net6.0 60.6μs 60.8ns 235ns 0 0 0 14.52 KB
#7687 SendRequest netcoreapp3.1 71.7μs 62.4ns 234ns 0 0 0 17.42 KB
#7687 SendRequest net472 0.000671ns 0.000651ns 0.00243ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7687

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 6 B 4 B -2 B -33.33%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 1.9ms 4.97μs 18.6μs 0 0 0 640.01 KB
master OriginalCharSlice netcoreapp3.1 2.11ms 5.43μs 21μs 0 0 0 640 KB
master OriginalCharSlice net472 2.63ms 180ns 675ns 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.43ms 343ns 1.33μs 0 0 0 6 B
master OptimizedCharSlice netcoreapp3.1 1.67ms 367ns 1.37μs 0 0 0 1 B
master OptimizedCharSlice net472 1.91ms 299ns 1.16μs 0 0 0 0 b
master OptimizedCharSliceWithPool net6.0 903μs 33.7ns 130ns 0 0 0 1 B
master OptimizedCharSliceWithPool netcoreapp3.1 812μs 117ns 454ns 0 0 0 1 B
master OptimizedCharSliceWithPool net472 1.14ms 84.4ns 316ns 0 0 0 0 b
#7687 OriginalCharSlice net6.0 1.96ms 156ns 583ns 0 0 0 640.01 KB
#7687 OriginalCharSlice netcoreapp3.1 2.14ms 3.54μs 13.7μs 0 0 0 640 KB
#7687 OriginalCharSlice net472 2.65ms 86ns 333ns 100 0 0 641.95 KB
#7687 OptimizedCharSlice net6.0 1.44ms 278ns 1.08μs 0 0 0 4 B
#7687 OptimizedCharSlice netcoreapp3.1 1.66ms 1.24μs 4.81μs 0 0 0 1 B
#7687 OptimizedCharSlice net472 2.03ms 1.34μs 5.18μs 0 0 0 0 b
#7687 OptimizedCharSliceWithPool net6.0 885μs 62.3ns 241ns 0 0 0 1 B
#7687 OptimizedCharSliceWithPool netcoreapp3.1 837μs 35.4ns 128ns 0 0 0 1 B
#7687 OptimizedCharSliceWithPool net472 1.18ms 131ns 507ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Faster 🎉 More allocations ⚠️

Faster 🎉 in #7687

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 1.239 1,029,175.83 830,580.47
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 1.131 765,198.96 676,620.07 several?

More allocations ⚠️ in #7687

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 41.51 KB 42.44 KB 933 B 2.25%

Fewer allocations 🎉 in #7687

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 56.46 KB 56.03 KB -424 B -0.75%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 749μs 4.34μs 34.7μs 0 0 0 41.51 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 682μs 697ns 2.7μs 0 0 0 42.11 KB
master WriteAndFlushEnrichedTraces net472 1.03ms 3.46μs 12.5μs 8.33 0 0 56.46 KB
#7687 WriteAndFlushEnrichedTraces net6.0 662μs 3.8μs 29.7μs 0 0 0 42.44 KB
#7687 WriteAndFlushEnrichedTraces netcoreapp3.1 715μs 2.43μs 9.08μs 0 0 0 42 KB
#7687 WriteAndFlushEnrichedTraces net472 831μs 3.07μs 11.9μs 7.81 0 0 56.03 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 8.5ns 36.1ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.57μs 9.83ns 38.1ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.93μs 14.5ns 61.6ns 0.144 0.0144 0 987 B
#7687 ExecuteNonQuery net6.0 1.94μs 9.52ns 38.1ns 0 0 0 1.02 KB
#7687 ExecuteNonQuery netcoreapp3.1 2.59μs 6.23ns 23.3ns 0 0 0 1.02 KB
#7687 ExecuteNonQuery net472 2.76μs 3.27ns 11.8ns 0.153 0.0139 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 8.19ns 34.7ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.26μs 11.4ns 49.6ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.76μs 3.38ns 13.1ns 0.15 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.87μs 1.53ns 5.91ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.34μs 3.99ns 15.5ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.75μs 6.56ns 25.4ns 0.168 0 0 1.1 KB
#7687 CallElasticsearch net6.0 1.71μs 8.07ns 31.2ns 0 0 0 1.03 KB
#7687 CallElasticsearch netcoreapp3.1 2.25μs 8.8ns 34.1ns 0 0 0 1.03 KB
#7687 CallElasticsearch net472 3.72μs 3.6ns 13.9ns 0.149 0 0 1.04 KB
#7687 CallElasticsearchAsync net6.0 1.89μs 8.83ns 36.4ns 0 0 0 1.01 KB
#7687 CallElasticsearchAsync netcoreapp3.1 2.43μs 4.93ns 19.1ns 0 0 0 1.08 KB
#7687 CallElasticsearchAsync net472 3.71μs 2.95ns 11.4ns 0.167 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.91μs 9.31ns 38.4ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.43μs 10.1ns 39.1ns 0 0 0 952 B
master ExecuteAsync net472 2.52μs 0.816ns 2.94ns 0.138 0 0 915 B
#7687 ExecuteAsync net6.0 1.89μs 1.03ns 3.72ns 0 0 0 952 B
#7687 ExecuteAsync netcoreapp3.1 2.54μs 2.7ns 10.5ns 0 0 0 952 B
#7687 ExecuteAsync net472 2.6μs 3.56ns 13.8ns 0.143 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.82μs 6.43ns 24.9ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.43μs 28.5ns 111ns 0 0 0 2.9 KB
master SendAsync net472 12.5μs 12.1ns 46.7ns 0.5 0 0 3.18 KB
#7687 SendAsync net6.0 6.9μs 5.41ns 20.9ns 0 0 0 2.36 KB
#7687 SendAsync netcoreapp3.1 8.83μs 22.3ns 86.5ns 0 0 0 2.9 KB
#7687 SendAsync net472 12.5μs 4.37ns 15.8ns 0.5 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7687

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 259.18 KB 275.71 KB 16.53 KB 6.38%

Fewer allocations 🎉 in #7687

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 44.72 KB 42.9 KB -1.82 KB -4.08%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 48.46 KB 43.62 KB -4.85 KB -10.00%
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 46.1μs 259ns 1.7μs 0 0 0 48.46 KB
master StringConcatBenchmark netcoreapp3.1 46.3μs 205ns 1.14μs 0 0 0 44.72 KB
master StringConcatBenchmark net472 56.9μs 238ns 922ns 0 0 0 65.54 KB
master StringConcatAspectBenchmark net6.0 457μs 1.5μs 7.05μs 0 0 0 259.18 KB
master StringConcatAspectBenchmark netcoreapp3.1 510μs 2.1μs 7.28μs 0 0 0 275.55 KB
master StringConcatAspectBenchmark net472 404μs 1.98μs 13.4μs 0 0 0 279.7 KB
#7687 StringConcatBenchmark net6.0 50.8μs 758ns 7.39μs 0 0 0 43.62 KB
#7687 StringConcatBenchmark netcoreapp3.1 49.6μs 289ns 2.67μs 0 0 0 42.9 KB
#7687 StringConcatBenchmark net472 57.4μs 120ns 433ns 0 0 0 57.34 KB
#7687 StringConcatAspectBenchmark net6.0 473μs 2.44μs 10.9μs 0 0 0 275.71 KB
#7687 StringConcatAspectBenchmark netcoreapp3.1 524μs 1.41μs 4.88μs 0 0 0 274.66 KB
#7687 StringConcatAspectBenchmark net472 400μs 2μs 14.7μs 0 0 0 278.53 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.66μs 12.4ns 49.6ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.67μs 2.02ns 7.83ns 0 0 0 1.7 KB
master EnrichedLog net472 3.84μs 3.3ns 12.8ns 0.25 0 0 1.64 KB
#7687 EnrichedLog net6.0 2.7μs 0.699ns 2.52ns 0 0 0 1.7 KB
#7687 EnrichedLog netcoreapp3.1 3.73μs 14.3ns 51.7ns 0 0 0 1.7 KB
#7687 EnrichedLog net472 4.17μs 5.1ns 19.8ns 0.25 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 122μs 106ns 381ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 128μs 412ns 1.48μs 0 0 0 4.31 KB
master EnrichedLog net472 167μs 49ns 183ns 0 0 0 4.52 KB
#7687 EnrichedLog net6.0 125μs 272ns 981ns 0 0 0 4.31 KB
#7687 EnrichedLog netcoreapp3.1 127μs 343ns 1.19μs 0 0 0 4.31 KB
#7687 EnrichedLog net472 168μs 38ns 142ns 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.91μs 23.3ns 98.8ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.76μs 27ns 105ns 0 0 0 2.26 KB
master EnrichedLog net472 7.56μs 5.6ns 20.9ns 0.303 0 0 2.08 KB
#7687 EnrichedLog net6.0 5.03μs 2.38ns 8.89ns 0 0 0 2.26 KB
#7687 EnrichedLog netcoreapp3.1 6.82μs 18.7ns 69.9ns 0 0 0 2.26 KB
#7687 EnrichedLog net472 7.52μs 4.56ns 17.1ns 0.298 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.05μs 10.1ns 41.7ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.68μs 13.8ns 61.6ns 0 0 0 1.2 KB
master SendReceive net472 3.1μs 1.36ns 4.91ns 0.185 0 0 1.2 KB
#7687 SendReceive net6.0 1.98μs 4.17ns 16.2ns 0 0 0 1.2 KB
#7687 SendReceive netcoreapp3.1 2.64μs 13.4ns 61.4ns 0 0 0 1.2 KB
#7687 SendReceive net472 3.04μs 3.92ns 15.2ns 0.182 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 7.92ns 30.7ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.53μs 12.6ns 48.9ns 0 0 0 1.63 KB
master EnrichedLog net472 6.54μs 5.46ns 20.4ns 0.292 0 0 2.03 KB
#7687 EnrichedLog net6.0 4.31μs 3.35ns 12.1ns 0 0 0 1.58 KB
#7687 EnrichedLog netcoreapp3.1 5.87μs 9.28ns 35.9ns 0 0 0 1.63 KB
#7687 EnrichedLog net472 6.54μs 7.8ns 30.2ns 0.297 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 786ns 4.1ns 20.1ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 941ns 5.08ns 26.9ns 0 0 0 576 B
master StartFinishSpan net472 952ns 0.193ns 0.723ns 0.0905 0 0 578 B
master StartFinishScope net6.0 925ns 4.37ns 17.5ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.18μs 6.36ns 35.4ns 0 0 0 696 B
master StartFinishScope net472 1.13μs 0.625ns 2.42ns 0.102 0 0 658 B
#7687 StartFinishSpan net6.0 772ns 2.64ns 10.2ns 0 0 0 576 B
#7687 StartFinishSpan netcoreapp3.1 984ns 5ns 18.7ns 0 0 0 576 B
#7687 StartFinishSpan net472 957ns 0.578ns 2.24ns 0.0873 0 0 578 B
#7687 StartFinishScope net6.0 957ns 0.296ns 1.15ns 0 0 0 696 B
#7687 StartFinishScope netcoreapp3.1 1.26μs 5.99ns 24ns 0 0 0 696 B
#7687 StartFinishScope net472 1.15μs 0.363ns 1.41ns 0.104 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.05μs 0.494ns 1.85ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.4μs 5.24ns 20.3ns 0 0 0 696 B
master RunOnMethodBegin net472 1.43μs 0.494ns 1.91ns 0.1 0 0 658 B
#7687 RunOnMethodBegin net6.0 1.06μs 5.48ns 26.9ns 0 0 0 696 B
#7687 RunOnMethodBegin netcoreapp3.1 1.47μs 6.86ns 26.6ns 0 0 0 696 B
#7687 RunOnMethodBegin net472 1.46μs 0.431ns 1.56ns 0.102 0 0 658 B

@github-actions
Copy link
Contributor

Snapshots difference summary

The following differences have been observed in committed snapshots. It is meant to help the reviewer.
The diff is simplistic, so please check some files anyway while we improve it.

1 occurrences of :

-    Name: internal,
-    Resource: Quartz.Job.Execute,
+    Name: quartz.job.execute,
+    Resource: execute exceptionJob,
[...]
+    Error: 1,
[...]
+      error.msg: Expected InvalidOperationException thrown,
+      error.stack:
[...]
+      error.type: Quartz.JobExecutionException,
[...]
-      job.group: group1,
-      job.name: helloJob,
-      job.type: QuartzSampleApp.Jobs.HelloJob,
+      job.group: group2,
+      job.name: exceptionJob,
+      job.type: QuartzSampleApp.Jobs.ExceptionJob,
[...]
-      otel.status_code: STATUS_CODE_UNSET,
+      otel.status_code: STATUS_CODE_ERROR,
[...]
-      trigger.group: group1,
-      trigger.name: helloTrigger,
+      trigger.group: group2,
+      trigger.name: exceptionTrigger,

1 occurrences of :

-    Name: internal,
-    Resource: Quartz.Job.Execute,
+    Name: quartz.job.execute,
+    Resource: execute helloJob,
[...]
-    Error: 1,
[...]
-      error.msg: Expected InvalidOperationException thrown,
-      error.stack:
[...]
-      error.type: Quartz.JobExecutionException,
[...]
-      job.group: group2,
-      job.name: exceptionJob,
-      job.type: QuartzSampleApp.Jobs.ExceptionJob,
+      job.group: group1,
+      job.name: helloJob,
+      job.type: QuartzSampleApp.Jobs.HelloJob,
[...]
-      otel.status_code: STATUS_CODE_ERROR,
+      otel.status_code: STATUS_CODE_UNSET,
[...]
-      trigger.group: group2,
-      trigger.name: exceptionTrigger,
+      trigger.group: group1,
+      trigger.name: helloTrigger,

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.

2 participants