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

This comment has been minimized.

@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 slower, with geometric mean 1.119
  • 8 benchmarks have fewer allocations
  • 5 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 ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.8μs 56.7ns 305ns 0 0 0 5.53 KB
master StartStopWithChild netcoreapp3.1 13.8μs 67.5ns 278ns 0 0 0 5.72 KB
master StartStopWithChild net472 21.8μs 117ns 631ns 0.98 0.327 0.109 6.03 KB
#7687 StartStopWithChild net6.0 11μs 56.9ns 267ns 0 0 0 5.51 KB
#7687 StartStopWithChild netcoreapp3.1 13.6μs 71.4ns 343ns 0 0 0 5.73 KB
#7687 StartStopWithChild net472 22.3μs 125ns 788ns 0.966 0.322 0.107 6.06 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 945μs 667ns 2.58μs 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.03ms 66.7ns 231ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.2ms 87.7ns 304ns 0 0 0 3.31 KB
#7687 WriteAndFlushEnrichedTraces net6.0 933μs 86.8ns 313ns 0 0 0 2.72 KB
#7687 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 981ns 3.8μs 0 0 0 2.7 KB
#7687 WriteAndFlushEnrichedTraces net472 1.21ms 4.08μs 15.8μs 0 0 0 3.31 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Unknown 🤷 Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleSimpleBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleSimpleBody net472 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleMoreComplexBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleMoreComplexBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleMoreComplexBody net472 N/A N/A N/A NaN NaN NaN 0 b
master ObjectExtractorSimpleBody net6.0 326ns 1.61ns 7.22ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 392ns 2.22ns 14.2ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 302ns 0.0192ns 0.0694ns 0.0441 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.4μs 29.1ns 113ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.82μs 36.1ns 140ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.67μs 1.91ns 7.38ns 0.601 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 329ns 1.76ns 7.27ns 0 0 0 280 B
#7687 ObjectExtractorSimpleBody netcoreapp3.1 412ns 2.04ns 8.16ns 0 0 0 272 B
#7687 ObjectExtractorSimpleBody net472 296ns 0.128ns 0.481ns 0.0432 0 0 281 B
#7687 ObjectExtractorMoreComplexBody net6.0 6.29μs 28.9ns 112ns 0 0 0 3.78 KB
#7687 ObjectExtractorMoreComplexBody netcoreapp3.1 7.81μs 37.2ns 149ns 0 0 0 3.69 KB
#7687 ObjectExtractorMoreComplexBody net472 6.63μs 1.32ns 5.12ns 0.597 0 0 3.8 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7687

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net472 2.17 KB 2.16 KB -15 B -0.69%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 76.8μs 250ns 934ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 97μs 183ns 707ns 0 0 0 32.4 KB
master EncodeArgs net472 113μs 11.8ns 42.4ns 5.1 0 0 32.5 KB
master EncodeLegacyArgs net6.0 145μs 19.8ns 74.1ns 0 0 0 2.14 KB
master EncodeLegacyArgs netcoreapp3.1 199μs 232ns 897ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 272μs 41.4ns 155ns 0 0 0 2.17 KB
#7687 EncodeArgs net6.0 77.2μs 107ns 401ns 0 0 0 32.4 KB
#7687 EncodeArgs netcoreapp3.1 97.3μs 225ns 841ns 0 0 0 32.4 KB
#7687 EncodeArgs net472 109μs 24.9ns 86.1ns 4.98 0 0 32.51 KB
#7687 EncodeLegacyArgs net6.0 147μs 35ns 131ns 0 0 0 2.15 KB
#7687 EncodeLegacyArgs netcoreapp3.1 202μs 71.5ns 267ns 0 0 0 2.15 KB
#7687 EncodeLegacyArgs net472 264μs 17.7ns 63.8ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7687

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑netcoreapp3.1 4.6 KB 4.48 KB -121 B -2.63%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 394μs 68.4ns 247ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 862μs 2.38μs 8.6μs 0 0 0 4.6 KB
master RunWafRealisticBenchmark net472 428μs 58.7ns 227ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 285μs 67.6ns 253ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 688μs 10.2μs 101μs 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 309μs 40.1ns 155ns 0 0 0 2.29 KB
#7687 RunWafRealisticBenchmark net6.0 395μs 37.5ns 140ns 0 0 0 4.55 KB
#7687 RunWafRealisticBenchmark netcoreapp3.1 856μs 4.26μs 17.6μs 0 0 0 4.48 KB
#7687 RunWafRealisticBenchmark net472 428μs 58.1ns 225ns 0 0 0 4.66 KB
#7687 RunWafRealisticBenchmarkWithAttack net6.0 284μs 45ns 174ns 0 0 0 2.24 KB
#7687 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 673μs 13.6μs 132μs 0 0 0 2.22 KB
#7687 RunWafRealisticBenchmarkWithAttack net472 314μs 42.4ns 164ns 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 35.6ns 138ns 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 71.5μs 68.4ns 237ns 0 0 0 17.42 KB
master SendRequest net472 0.00174ns 0.00119ns 0.00462ns 0 0 0 0 b
#7687 SendRequest net6.0 61.5μs 44ns 165ns 0 0 0 14.52 KB
#7687 SendRequest netcoreapp3.1 71.8μs 136ns 508ns 0 0 0 17.42 KB
#7687 SendRequest net472 0.0037ns 0.00212ns 0.00819ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #7687

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1 1.121 833,109.16 934,024.17
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 1.117 804,049.58 897,722.36

More allocations ⚠️ in #7687

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 1 B 5 B 4 B 400.00%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 4 B 7 B 3 B 75.00%

Fewer allocations 🎉 in #7687

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net472 48 B 47 B -1 B -2.08%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 1.99ms 1.51μs 5.66μs 0 0 0 640.01 KB
master OriginalCharSlice netcoreapp3.1 2.08ms 2.34μs 8.44μs 0 0 0 640 KB
master OriginalCharSlice net472 2.56ms 385ns 1.33μs 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.35ms 422ns 1.58μs 0 0 0 4 B
master OptimizedCharSlice netcoreapp3.1 1.67ms 335ns 1.3μs 0 0 0 1 B
master OptimizedCharSlice net472 2.04ms 268ns 1.04μs 0 0 0 73 B
master OptimizedCharSliceWithPool net6.0 804μs 82.2ns 319ns 0 0 0 1 B
master OptimizedCharSliceWithPool netcoreapp3.1 833μs 97ns 376ns 0 0 0 0 b
master OptimizedCharSliceWithPool net472 1.16ms 103ns 386ns 0 0 0 48 B
#7687 OriginalCharSlice net6.0 1.9ms 4.38μs 16.4μs 0 0 0 640.01 KB
#7687 OriginalCharSlice netcoreapp3.1 2.07ms 7.63μs 29.5μs 0 0 0 640 KB
#7687 OriginalCharSlice net472 2.59ms 176ns 658ns 100 0 0 641.95 KB
#7687 OptimizedCharSlice net6.0 1.4ms 391ns 1.51μs 0 0 0 7 B
#7687 OptimizedCharSlice netcoreapp3.1 1.81ms 329ns 1.19μs 0 0 0 1 B
#7687 OptimizedCharSlice net472 1.91ms 292ns 1.13μs 0 0 0 73 B
#7687 OptimizedCharSliceWithPool net6.0 898μs 36.3ns 140ns 0 0 0 5 B
#7687 OptimizedCharSliceWithPool netcoreapp3.1 934μs 82.4ns 319ns 0 0 0 0 b
#7687 OptimizedCharSliceWithPool net472 1.16ms 218ns 846ns 0 0 0 47 B
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7687

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 41.65 KB 42.41 KB 764 B 1.83%

Fewer allocations 🎉 in #7687

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 56.03 KB 55.68 KB -348 B -0.62%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 685μs 691ns 2.59μs 0 0 0 41.65 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 788μs 4.27μs 24.5μs 0 0 0 41.96 KB
master WriteAndFlushEnrichedTraces net472 888μs 2.98μs 11.2μs 4.46 0 0 56.03 KB
#7687 WriteAndFlushEnrichedTraces net6.0 699μs 3.49μs 15.2μs 0 0 0 42.41 KB
#7687 WriteAndFlushEnrichedTraces netcoreapp3.1 788μs 4.48μs 32.6μs 0 0 0 42.08 KB
#7687 WriteAndFlushEnrichedTraces net472 872μs 2.12μs 7.65μs 4.46 0 0 55.68 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.91μs 8.24ns 29.7ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.64μs 5.83ns 22.6ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.88μs 4.19ns 16.2ns 0.145 0.0145 0 987 B
#7687 ExecuteNonQuery net6.0 1.94μs 2.71ns 10.5ns 0 0 0 1.02 KB
#7687 ExecuteNonQuery netcoreapp3.1 2.65μs 13.1ns 55.7ns 0 0 0 1.02 KB
#7687 ExecuteNonQuery net472 2.79μs 2.61ns 10.1ns 0.151 0.0138 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.72μs 2.57ns 9.94ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.24μs 9.43ns 36.5ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.72μs 4.5ns 17.4ns 0.149 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.88μs 4.26ns 16.5ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.4μs 10.9ns 42.1ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.73μs 3.64ns 13.1ns 0.167 0 0 1.1 KB
#7687 CallElasticsearch net6.0 1.69μs 8.27ns 32ns 0 0 0 1.03 KB
#7687 CallElasticsearch netcoreapp3.1 2.22μs 7.83ns 30.3ns 0 0 0 1.03 KB
#7687 CallElasticsearch net472 3.62μs 1.4ns 5.41ns 0.162 0 0 1.04 KB
#7687 CallElasticsearchAsync net6.0 1.85μs 8.06ns 29ns 0 0 0 1.01 KB
#7687 CallElasticsearchAsync netcoreapp3.1 2.45μs 1.86ns 7.2ns 0 0 0 1.08 KB
#7687 CallElasticsearchAsync net472 3.72μs 3.73ns 13.9ns 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.94μs 3.89ns 15.1ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.49μs 7.56ns 28.3ns 0 0 0 952 B
master ExecuteAsync net472 2.61μs 2.16ns 8.07ns 0.142 0 0 915 B
#7687 ExecuteAsync net6.0 1.88μs 4.28ns 16ns 0 0 0 952 B
#7687 ExecuteAsync netcoreapp3.1 2.5μs 3.86ns 14.4ns 0 0 0 952 B
#7687 ExecuteAsync net472 2.64μs 4.31ns 16.7ns 0.133 0 0 915 B
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 7.33μs 7.79ns 29.1ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.77μs 16.5ns 63.9ns 0 0 0 2.9 KB
master SendAsync net472 12.2μs 13.5ns 52.2ns 0.489 0 0 3.18 KB
#7687 SendAsync net6.0 6.83μs 13.3ns 51.6ns 0 0 0 2.36 KB
#7687 SendAsync netcoreapp3.1 8.83μs 9.66ns 37.4ns 0 0 0 2.9 KB
#7687 SendAsync net472 12.4μs 13.6ns 52.8ns 0.499 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.StringConcatBenchmark‑net472 57.34 KB 65.54 KB 8.19 KB 14.29%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 43.77 KB 45.09 KB 1.32 KB 3.02%

Fewer allocations 🎉 in #7687

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 281.72 KB 278.06 KB -3.66 KB -1.30%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 278.53 KB 274.14 KB -4.39 KB -1.58%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 275.39 KB 268.41 KB -6.98 KB -2.54%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 45.55 KB 42.86 KB -2.69 KB -5.90%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 43μs 234ns 1.28μs 0 0 0 43.77 KB
master StringConcatBenchmark netcoreapp3.1 57μs 1μs 9.98μs 0 0 0 45.55 KB
master StringConcatBenchmark net472 57.3μs 124ns 446ns 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 496μs 2.24μs 8.08μs 0 0 0 275.39 KB
master StringConcatAspectBenchmark netcoreapp3.1 572μs 2.49μs 8.96μs 0 0 0 281.72 KB
master StringConcatAspectBenchmark net472 409μs 2.34μs 16.5μs 0 0 0 278.53 KB
#7687 StringConcatBenchmark net6.0 50.8μs 783ns 7.79μs 0 0 0 45.09 KB
#7687 StringConcatBenchmark netcoreapp3.1 47.2μs 264ns 2.05μs 0 0 0 42.86 KB
#7687 StringConcatBenchmark net472 57μs 216ns 807ns 0 0 0 65.54 KB
#7687 StringConcatAspectBenchmark net6.0 455μs 2.04μs 7.63μs 0 0 0 268.41 KB
#7687 StringConcatAspectBenchmark netcoreapp3.1 553μs 1.61μs 6.03μs 0 0 0 278.06 KB
#7687 StringConcatAspectBenchmark net472 414μs 2.29μs 13.5μs 0 0 0 274.14 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.64μs 13.2ns 60.5ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.61μs 14.1ns 54.8ns 0 0 0 1.7 KB
master EnrichedLog net472 3.86μs 4.57ns 17.1ns 0.252 0 0 1.64 KB
#7687 EnrichedLog net6.0 2.61μs 13.3ns 62.4ns 0 0 0 1.7 KB
#7687 EnrichedLog netcoreapp3.1 3.66μs 13.3ns 51.6ns 0 0 0 1.7 KB
#7687 EnrichedLog net472 3.9μs 1.73ns 6.46ns 0.253 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 335ns 1.16μs 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 131μs 617ns 2.47μs 0 0 0 4.31 KB
master EnrichedLog net472 169μs 208ns 806ns 0 0 0 4.52 KB
#7687 EnrichedLog net6.0 123μs 454ns 1.76μs 0 0 0 4.31 KB
#7687 EnrichedLog netcoreapp3.1 127μs 116ns 418ns 0 0 0 4.31 KB
#7687 EnrichedLog net472 167μs 199ns 771ns 0 0 0 4.52 KB
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 5.09μs 16.2ns 62.9ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.67μs 14ns 54.2ns 0 0 0 2.26 KB
master EnrichedLog net472 7.52μs 7.68ns 29.8ns 0.299 0 0 2.08 KB
#7687 EnrichedLog net6.0 5.01μs 8.31ns 32.2ns 0 0 0 2.26 KB
#7687 EnrichedLog netcoreapp3.1 7.16μs 19.7ns 76.2ns 0 0 0 2.26 KB
#7687 EnrichedLog net472 7.61μs 5.91ns 22.9ns 0.305 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.97μs 9.63ns 43.1ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.65μs 12.6ns 51.8ns 0 0 0 1.2 KB
master SendReceive net472 3.05μs 1.05ns 3.78ns 0.185 0 0 1.2 KB
#7687 SendReceive net6.0 1.92μs 0.468ns 1.75ns 0 0 0 1.2 KB
#7687 SendReceive netcoreapp3.1 2.69μs 10.3ns 40ns 0 0 0 1.2 KB
#7687 SendReceive net472 3.01μs 2.51ns 9.41ns 0.179 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.36μs 16.6ns 64.4ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.66μs 9.37ns 36.3ns 0 0 0 1.63 KB
master EnrichedLog net472 6.58μs 5.97ns 23.1ns 0.294 0 0 2.03 KB
#7687 EnrichedLog net6.0 4.27μs 10.8ns 41.7ns 0 0 0 1.58 KB
#7687 EnrichedLog netcoreapp3.1 5.65μs 11.7ns 45.3ns 0 0 0 1.63 KB
#7687 EnrichedLog net472 6.54μs 5.87ns 22.7ns 0.294 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 757ns 4.15ns 23.8ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 959ns 4.17ns 15.6ns 0 0 0 576 B
master StartFinishSpan net472 953ns 0.0777ns 0.28ns 0.0911 0 0 578 B
master StartFinishScope net6.0 930ns 4.33ns 17.3ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.19μs 6.27ns 31.4ns 0 0 0 696 B
master StartFinishScope net472 1.14μs 0.408ns 1.58ns 0.103 0 0 658 B
#7687 StartFinishSpan net6.0 772ns 3.91ns 17.9ns 0 0 0 576 B
#7687 StartFinishSpan netcoreapp3.1 970ns 5.3ns 30.4ns 0 0 0 576 B
#7687 StartFinishSpan net472 949ns 0.174ns 0.65ns 0.0911 0 0 578 B
#7687 StartFinishScope net6.0 914ns 0.388ns 1.5ns 0 0 0 696 B
#7687 StartFinishScope netcoreapp3.1 1.23μs 4.36ns 15.7ns 0 0 0 696 B
#7687 StartFinishScope net472 1.16μs 0.248ns 0.926ns 0.102 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 5.65ns 29.9ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.42μs 7.31ns 35.8ns 0 0 0 697 B
master RunOnMethodBegin net472 1.43μs 0.603ns 2.33ns 0.0998 0 0 658 B
#7687 RunOnMethodBegin net6.0 1.05μs 5.42ns 27.6ns 0 0 0 697 B
#7687 RunOnMethodBegin netcoreapp3.1 1.44μs 6.82ns 26.4ns 0 0 0 696 B
#7687 RunOnMethodBegin net472 1.42μs 0.565ns 2.12ns 0.101 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