Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Tracer] Enable 128 bits by default #4827

Merged
merged 16 commits into from
Nov 17, 2023
Merged

[Tracer] Enable 128 bits by default #4827

merged 16 commits into from
Nov 17, 2023

Conversation

pierotibou
Copy link
Collaborator

@pierotibou pierotibou commented Nov 8, 2023

Summary of changes

Enable 128 bits trace id generation by default.

Reason for change

It's the new default we should support as part of the OTEL changes.

Implementation details

Just switch the flag. Added a helper function in TraceId.

Test coverage

Coverage seemed good. Just changed the tests.
Also ignored _dd.p.tid in smoke tests.

Other details

We add the propagation tags in CI Visibility which seems useless as they aren't handled by the backend. We could not add them in that case. But I'll do this in a different PR.

AIT-4244

@datadog-ddstaging
Copy link

datadog-ddstaging bot commented Nov 8, 2023

Datadog Report

Branch report: pierre/128
Commit report: 5879a4e

dd-trace-dotnet: 1 Failed (0 Known Flaky), 0 New Flaky, 298465 Passed, 977 Skipped, 54m 23.72s Wall Time

❌ Failed Tests (1)

  • SubmitsTraces - Datadog.Trace.ClrProfiler.IntegrationTests.StackExchangeRedisTests - Details

    Expand for error
     Results do not match.
     Differences:
     Received: StackExchangeRedisTests.Latest.SchemaV1.received.txt
     Verified: StackExchangeRedisTests.Latest.SchemaV1.verified.txt
     Received Content:
     [
       {
         TraceId: Id_1,
         SpanId: Id_2,
         Name: redis.command,
     ...
    

@andrewlock
Copy link
Member

andrewlock commented Nov 8, 2023

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.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4827) - mean (71ms)  : 61, 80
     .   : milestone, 71,
    master - mean (73ms)  : 61, 85
     .   : milestone, 73,

    section CallTarget+Inlining+NGEN
    This PR (4827) - mean (993ms)  : 969, 1017
     .   : milestone, 993,
    master - mean (1,000ms)  : 975, 1024
     .   : milestone, 1000,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4827) - mean (106ms)  : 102, 110
     .   : milestone, 106,
    master - mean (106ms)  : 102, 110
     .   : milestone, 106,

    section CallTarget+Inlining+NGEN
    This PR (4827) - mean (692ms)  : 676, 708
     .   : milestone, 692,
    master - mean (690ms)  : 672, 708
     .   : milestone, 690,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4827) - mean (91ms)  : 87, 94
     .   : milestone, 91,
    master - mean (91ms)  : 88, 93
     .   : milestone, 91,

    section CallTarget+Inlining+NGEN
    This PR (4827) - mean (664ms)  : 635, 693
     .   : milestone, 664,
    master - mean (666ms)  : 629, 703
     .   : milestone, 666,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4827) - mean (194ms)  : 172, 215
     .   : milestone, 194,
    master - mean (189ms)  : 186, 191
     .   : milestone, 189,

    section CallTarget+Inlining+NGEN
    This PR (4827) - mean (1,133ms)  : 1110, 1155
     .   : milestone, 1133,
    master - mean (1,131ms)  : 1108, 1155
     .   : milestone, 1131,

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

    section CallTarget+Inlining+NGEN
    This PR (4827) - mean (1,095ms)  : 1068, 1121
     .   : milestone, 1095,
    master - mean (1,086ms)  : 1060, 1111
     .   : milestone, 1086,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4827) - mean (262ms)  : 259, 265
     .   : milestone, 262,
    master - mean (260ms)  : 256, 264
     .   : milestone, 260,

    section CallTarget+Inlining+NGEN
    This PR (4827) - mean (1,061ms)  : 1037, 1085
     .   : milestone, 1061,
    master - mean (1,052ms)  : 1031, 1072
     .   : milestone, 1052,

Loading

@andrewlock
Copy link
Member

andrewlock commented Nov 8, 2023

Throughput/Crank Report:zap:

Throughput results for AspNetCoreSimpleController comparing the following branches/commits:

Cases where throughput results for the PR are worse than latest master (5% drop or greater), results are shown in red.

Note that these results are based on a single point-in-time result for each branch. For full results, see one of the many, many dashboards!

gantt
    title Throughput Linux x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4827) (11.535M)   : 0, 11535270
    master (11.169M)   : 0, 11169058
    benchmarks/2.9.0 (11.337M)   : 0, 11336710

    section Automatic
    This PR (4827) (7.996M)   : 0, 7995513
    master (7.976M)   : 0, 7976068
    benchmarks/2.9.0 (8.117M)   : 0, 8116938

    section Trace stats
    This PR (4827) (8.288M)   : 0, 8287776
    master (8.176M)   : 0, 8175889

    section Manual
    This PR (4827) (10.202M)   : 0, 10201670
    master (10.245M)   : 0, 10244635

    section Manual + Automatic
    This PR (4827) (7.578M)   : 0, 7578244
    master (7.660M)   : 0, 7659690

    section Version Conflict
    This PR (4827) (6.930M)   : 0, 6930024
    master (6.781M)   : 0, 6780682

Loading
gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4827) (9.601M)   : 0, 9600644
    master (9.628M)   : 0, 9628167
    benchmarks/2.9.0 (9.584M)   : 0, 9583569

    section Automatic
    This PR (4827) (6.754M)   : 0, 6753849
    master (6.603M)   : 0, 6602699

    section Trace stats
    This PR (4827) (6.936M)   : 0, 6935579
    master (6.865M)   : 0, 6864921

    section Manual
    This PR (4827) (8.276M)   : 0, 8276186
    master (7.985M)   : 0, 7984920

    section Manual + Automatic
    This PR (4827) (6.095M)   : 0, 6095091
    master (6.206M)   : 0, 6205917

    section Version Conflict
    This PR (4827) (5.678M)   : 0, 5677905
    master (5.816M)   : 0, 5816028

Loading
gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4827) (10.377M)   : 0, 10376806
    master (10.420M)   : 0, 10420210
    benchmarks/2.9.0 (10.428M)   : 0, 10428197

    section Automatic
    This PR (4827) (7.294M)   : 0, 7294228
    master (7.391M)   : 0, 7391039
    benchmarks/2.9.0 (7.850M)   : 0, 7850029

    section Trace stats
    This PR (4827) (7.726M)   : 0, 7725932
    master (7.805M)   : 0, 7805231

    section Manual
    This PR (4827) (9.062M)   : crit ,0, 9061575
    master (9.556M)   : 0, 9556178

    section Manual + Automatic
    This PR (4827) (7.068M)   : 0, 7067638
    master (7.195M)   : 0, 7195022

    section Version Conflict
    This PR (4827) (6.381M)   : 0, 6381395
    master (6.628M)   : 0, 6628181

Loading
gantt
    title Throughput Linux x64 (ASM) (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    master (7.425M)   : 0, 7424673
    benchmarks/2.9.0 (7.902M)   : 0, 7901545

    section No attack
    master (2.134M)   : 0, 2133809
    benchmarks/2.9.0 (3.255M)   : 0, 3255073

    section Attack
    master (1.665M)   : 0, 1664667
    benchmarks/2.9.0 (2.551M)   : 0, 2551268

    section Blocking
    master (3.506M)   : 0, 3506215

    section IAST default
    master (6.543M)   : 0, 6542563

    section IAST full
    master (5.843M)   : 0, 5842814

    section Base vuln
    master (0.941M)   : 0, 940633

    section IAST vuln
    master (0.880M)   : 0, 879817

Loading

@DataDog DataDog deleted a comment from github-actions bot Nov 8, 2023
Copy link
Contributor

github-actions bot commented Nov 8, 2023

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.

104 occurrences of :

-      _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
-      _dd.p.dm: -0
+      _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet

737 occurrences of :

-      _dd.p.dm: -0

650 occurrences of :

-      _dd.p.dm: -0,

91 occurrences of :

-      _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet,
-      _dd.p.dm: -0,
-      _dd.p.tid: 1234567890abcdef
+      _dd.git.repository_url: https://github.com/DataDog/dd-trace-dotnet

23 occurrences of :

-      _dd.p.dm: -0,
-      _dd.p.tid: 1234567890abcdef,

9 occurrences of :

-      _dd.iast.enabled: 1,
-      _dd.p.dm: -0
+      _dd.iast.enabled: 1

2 occurrences of :

-      _dd.p.dm: -0,
-      _dd.p.tid: 1234567890abcdef

1 occurrences of :

-      span.kind: server,
-      _dd.p.dm: -0
+      span.kind: server

@pierotibou pierotibou marked this pull request as ready for review November 8, 2023 22:21
@pierotibou pierotibou requested review from a team as code owners November 8, 2023 22:21
@andrewlock
Copy link
Member

andrewlock commented Nov 9, 2023

Benchmarks Report 🐌

Benchmarks for #4827 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.300
  • 13 benchmarks are slower, with geometric mean 1.166
  • 7 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 8.74μs 49ns 318ns 0.0395 0.0176 0 7.48 KB
master StartStopWithChild netcoreapp3.1 10.8μs 58.2ns 319ns 0.0224 0.00561 0 7.58 KB
master StartStopWithChild net472 17.1μs 53.3ns 207ns 1.34 0.335 0.112 7.96 KB
#4827 StartStopWithChild net6.0 8.6μs 47.1ns 278ns 0.0285 0.0122 0 7.48 KB
#4827 StartStopWithChild netcoreapp3.1 11μs 52.8ns 230ns 0.0278 0.0111 0 7.57 KB
#4827 StartStopWithChild net472 17.3μs 48.4ns 187ns 1.33 0.344 0.112 7.96 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 474μs 560ns 2.17μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 654μs 248ns 959ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 790μs 184ns 662ns 0.393 0 0 3.3 KB
#4827 WriteAndFlushEnrichedTraces net6.0 464μs 286ns 1.11μs 0 0 0 2.7 KB
#4827 WriteAndFlushEnrichedTraces netcoreapp3.1 632μs 146ns 547ns 0 0 0 2.7 KB
#4827 WriteAndFlushEnrichedTraces net472 791μs 322ns 1.25μs 0.396 0 0 3.3 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #4827

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑netcoreapp3.1 1.300 238.93 183.79

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 43.8μs 173ns 647ns 0.022 0 0 2.02 KB
master AllCycleSimpleBody netcoreapp3.1 46.1μs 90.7ns 351ns 0.023 0 0 2 KB
master AllCycleSimpleBody net472 47.2μs 141ns 527ns 0.307 0 0 2.07 KB
master AllCycleMoreComplexBody net6.0 204μs 69.9ns 271ns 0.102 0 0 8.37 KB
master AllCycleMoreComplexBody netcoreapp3.1 209μs 86.8ns 336ns 0.105 0 0 8.26 KB
master AllCycleMoreComplexBody net472 212μs 158ns 610ns 1.27 0 0 8.43 KB
master ObjectExtractorSimpleBody net6.0 128ns 0.055ns 0.206ns 0.00396 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 239ns 0.0891ns 0.345ns 0.0036 0 0 272 B
master ObjectExtractorSimpleBody net472 152ns 0.0432ns 0.167ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 2.74μs 0.51ns 1.91ns 0.0536 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 3.76μs 1.43ns 5.34ns 0.0489 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 3.47μs 1.97ns 7.61ns 0.603 0.0052 0 3.8 KB
#4827 AllCycleSimpleBody net6.0 47.9μs 37.5ns 145ns 0.024 0 0 2.02 KB
#4827 AllCycleSimpleBody netcoreapp3.1 49μs 54ns 209ns 0.0244 0 0 2 KB
#4827 AllCycleSimpleBody net472 50.4μs 105ns 408ns 0.322 0 0 2.07 KB
#4827 AllCycleMoreComplexBody net6.0 209μs 88.1ns 341ns 0.118 0 0 8.37 KB
#4827 AllCycleMoreComplexBody netcoreapp3.1 212μs 47.4ns 164ns 0.106 0 0 8.26 KB
#4827 AllCycleMoreComplexBody net472 221μs 404ns 1.51μs 1.31 0 0 8.43 KB
#4827 ObjectExtractorSimpleBody net6.0 129ns 0.0823ns 0.319ns 0.00396 0 0 280 B
#4827 ObjectExtractorSimpleBody netcoreapp3.1 184ns 0.121ns 0.435ns 0.00371 0 0 272 B
#4827 ObjectExtractorSimpleBody net472 154ns 0.0758ns 0.284ns 0.0446 0 0 281 B
#4827 ObjectExtractorMoreComplexBody net6.0 2.72μs 1.24ns 4.82ns 0.053 0 0 3.78 KB
#4827 ObjectExtractorMoreComplexBody netcoreapp3.1 3.75μs 1.25ns 4.83ns 0.0488 0 0 3.69 KB
#4827 ObjectExtractorMoreComplexBody net472 3.48μs 2.42ns 9.36ns 0.602 0.00519 0 3.8 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWaf(args=NestedMap (10)) net6.0 12.8μs 3.52ns 13.2ns 0.128 0 0 9.42 KB
master RunWaf(args=NestedMap (10)) netcoreapp3.1 20.1μs 7.43ns 28.8ns 0.131 0 0 9.41 KB
master RunWaf(args=NestedMap (10)) net472 30.5μs 7.03ns 25.3ns 1.49 0 0 9.47 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 76.3μs 23.3ns 90.4ns 0.191 0 0 15.76 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 86.4μs 40.6ns 141ns 0.172 0 0 15.71 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net472 101μs 200ns 775ns 2.51 0 0 16.03 KB
master RunWaf(args=NestedMap (100)) net6.0 24.4μs 9.83ns 38.1ns 0.268 0 0 19.66 KB
master RunWaf(args=NestedMap (100)) netcoreapp3.1 39.3μs 10.2ns 39.5ns 0.276 0 0 20.41 KB
master RunWaf(args=NestedMap (100)) net472 58.9μs 31.9ns 123ns 3.27 0.0589 0 20.62 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) net6.0 91.7μs 49ns 190ns 0.364 0 0 26 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) netcoreapp3.1 110μs 160ns 598ns 0.325 0 0 26.71 KB
master RunWafWithAttack(args=Neste(...)tack) [23]) net472 134μs 62.5ns 242ns 4.26 0.0666 0 27.18 KB
master RunWaf(args=NestedMap (20)) net6.0 24μs 8.31ns 31.1ns 0.275 0 0 19.39 KB
master RunWaf(args=NestedMap (20)) netcoreapp3.1 39μs 9.77ns 35.2ns 0.273 0 0 19.83 KB
master RunWaf(args=NestedMap (20)) net472 58.3μs 26.7ns 103ns 3.17 0.0582 0 20.03 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 91.4μs 37.8ns 136ns 0.319 0 0 25.74 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 109μs 90.1ns 349ns 0.327 0 0 26.14 KB
master RunWafWithAttack(args=Neste(...)tack) [22]) net472 132μs 62.5ns 242ns 4.2 0.0656 0 26.59 KB
#4827 RunWaf(args=NestedMap (10)) net6.0 12.8μs 6.41ns 24.8ns 0.128 0 0 9.42 KB
#4827 RunWaf(args=NestedMap (10)) netcoreapp3.1 19.9μs 5.16ns 19.3ns 0.119 0 0 9.41 KB
#4827 RunWaf(args=NestedMap (10)) net472 30.8μs 9.41ns 33.9ns 1.49 0 0 9.47 KB
#4827 RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 76.9μs 49ns 190ns 0.194 0 0 15.76 KB
#4827 RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 87μs 152ns 590ns 0.174 0 0 15.71 KB
#4827 RunWafWithAttack(args=Neste(...)tack) [22]) net472 101μs 92.5ns 358ns 2.54 0 0 16.03 KB
#4827 RunWaf(args=NestedMap (100)) net6.0 24.3μs 7.65ns 28.6ns 0.279 0 0 19.66 KB
#4827 RunWaf(args=NestedMap (100)) netcoreapp3.1 40.1μs 20ns 69.2ns 0.28 0 0 20.41 KB
#4827 RunWaf(args=NestedMap (100)) net472 59μs 27.2ns 102ns 3.27 0.059 0 20.62 KB
#4827 RunWafWithAttack(args=Neste(...)tack) [23]) net6.0 91.7μs 28.3ns 106ns 0.319 0 0 26 KB
#4827 RunWafWithAttack(args=Neste(...)tack) [23]) netcoreapp3.1 110μs 161ns 622ns 0.333 0 0 26.71 KB
#4827 RunWafWithAttack(args=Neste(...)tack) [23]) net472 133μs 276ns 1.07μs 4.26 0.0666 0 27.18 KB
#4827 RunWaf(args=NestedMap (20)) net6.0 25.2μs 93.2ns 361ns 0.273 0 0 19.39 KB
#4827 RunWaf(args=NestedMap (20)) netcoreapp3.1 39.4μs 7.87ns 30.5ns 0.256 0 0 19.83 KB
#4827 RunWaf(args=NestedMap (20)) net472 58.1μs 21.5ns 83.2ns 3.16 0.058 0 20.03 KB
#4827 RunWafWithAttack(args=Neste(...)tack) [22]) net6.0 89.5μs 17.4ns 62.7ns 0.362 0 0 25.74 KB
#4827 RunWafWithAttack(args=Neste(...)tack) [22]) netcoreapp3.1 111μs 226ns 847ns 0.335 0 0 26.14 KB
#4827 RunWafWithAttack(args=Neste(...)tack) [22]) net472 131μs 53.2ns 199ns 4.19 0.0655 0 26.59 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #4827

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.AspNetCoreBenchmark.SendRequest‑net6.0 18.04 KB 18.24 KB 201 B 1.11%
Benchmarks.Trace.AspNetCoreBenchmark.SendRequest‑netcoreapp3.1 20.2 KB 20.4 KB 201 B 1.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 170μs 141ns 545ns 0.257 0 0 18.04 KB
master SendRequest netcoreapp3.1 189μs 433ns 1.68μs 0.186 0 0 20.2 KB
master SendRequest net472 0.000112ns 6.5E‑05ns 0.000252ns 0 0 0 0 b
#4827 SendRequest net6.0 173μs 176ns 680ns 0.171 0 0 18.24 KB
#4827 SendRequest netcoreapp3.1 191μs 315ns 1.22μs 0.191 0 0 20.4 KB
#4827 SendRequest net472 0.000643ns 0.000257ns 0.000926ns 0 0 0 0 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 543μs 2.65μs 10.9μs 0.551 0 0 41.38 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 647μs 1.22μs 4.72μs 0.319 0 0 41.78 KB
master WriteAndFlushEnrichedTraces net472 846μs 4.25μs 19μs 8.39 2.52 0.419 53.23 KB
#4827 WriteAndFlushEnrichedTraces net6.0 535μs 279ns 1.08μs 0.543 0 0 41.49 KB
#4827 WriteAndFlushEnrichedTraces netcoreapp3.1 653μs 583ns 2.26μs 0.334 0 0 41.78 KB
#4827 WriteAndFlushEnrichedTraces net472 871μs 4.31μs 17.8μs 8.3 2.62 0.437 53.22 KB
Benchmarks.Trace.DbCommandBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #4827

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑netcoreapp3.1 1.181 1,325.54 1,565.62
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net6.0 1.138 977.45 1,112.08

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 977ns 0.472ns 1.83ns 0.0107 0 0 768 B
master ExecuteNonQuery netcoreapp3.1 1.33μs 0.694ns 2.69ns 0.00989 0 0 768 B
master ExecuteNonQuery net472 1.65μs 8.06ns 62.9ns 0.115 0.000855 0 730 B
#4827 ExecuteNonQuery net6.0 1.11μs 0.799ns 3.1ns 0.0106 0 0 768 B
#4827 ExecuteNonQuery netcoreapp3.1 1.57μs 0.842ns 3.15ns 0.0102 0 0 768 B
#4827 ExecuteNonQuery net472 1.73μs 4.08ns 15.8ns 0.115 0 0 730 B
Benchmarks.Trace.ElasticsearchBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #4827

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net6.0 1.123 1,160.63 1,302.98
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net472 1.114 2,394.55 2,668.69

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.11μs 0.434ns 1.68ns 0.0134 0 0 936 B
master CallElasticsearch netcoreapp3.1 1.33μs 2.44ns 9.46ns 0.0123 0 0 936 B
master CallElasticsearch net472 2.39μs 0.392ns 1.52ns 0.151 0 0 955 B
master CallElasticsearchAsync net6.0 1.16μs 1.19ns 4.59ns 0.0128 0 0 912 B
master CallElasticsearchAsync netcoreapp3.1 1.55μs 0.521ns 1.88ns 0.0132 0 0 984 B
master CallElasticsearchAsync net472 2.39μs 1.56ns 6.05ns 0.16 0 0 1.01 KB
#4827 CallElasticsearch net6.0 1.22μs 0.287ns 1.07ns 0.0129 0 0 936 B
#4827 CallElasticsearch netcoreapp3.1 1.45μs 0.888ns 3.44ns 0.0126 0 0 936 B
#4827 CallElasticsearch net472 2.51μs 0.895ns 3.47ns 0.152 0 0 955 B
#4827 CallElasticsearchAsync net6.0 1.3μs 0.716ns 2.77ns 0.0124 0 0 912 B
#4827 CallElasticsearchAsync netcoreapp3.1 1.71μs 2.38ns 12.6ns 0.0127 0 0 984 B
#4827 CallElasticsearchAsync net472 2.67μs 1.32ns 5.13ns 0.16 0.00133 0 1.01 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.24μs 0.756ns 2.93ns 0.0125 0 0 912 B
master ExecuteAsync netcoreapp3.1 1.42μs 3.01ns 11.3ns 0.0119 0 0 912 B
master ExecuteAsync net472 1.71μs 0.431ns 1.67ns 0.138 0 0 875 B
#4827 ExecuteAsync net6.0 1.29μs 0.641ns 2.31ns 0.0124 0 0 912 B
#4827 ExecuteAsync netcoreapp3.1 1.56μs 0.393ns 1.42ns 0.012 0 0 912 B
#4827 ExecuteAsync net472 1.81μs 0.494ns 1.85ns 0.139 0 0 875 B
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #4827

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑net6.0 1.9 KB 2.1 KB 200 B 10.55%
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑net472 2.99 KB 3.31 KB 312 B 10.42%
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑netcoreapp3.1 2.43 KB 2.63 KB 200 B 8.22%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 3.69μs 1.36ns 5.09ns 0.0257 0 0 1.9 KB
master SendAsync netcoreapp3.1 4.53μs 1.28ns 4.81ns 0.034 0 0 2.43 KB
master SendAsync net472 7.12μs 2.48ns 9.62ns 0.475 0 0 2.99 KB
#4827 SendAsync net6.0 4.09μs 1.93ns 7.48ns 0.0287 0 0 2.1 KB
#4827 SendAsync netcoreapp3.1 4.84μs 1.27ns 4.91ns 0.0339 0 0 2.63 KB
#4827 SendAsync net472 7.67μs 1.18ns 4.58ns 0.522 0 0 3.31 KB
Benchmarks.Trace.ILoggerBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #4827

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net472 1.148 2,309.19 2,649.94

More allocations ⚠️ in #4827

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net472 1.49 KB 1.5 KB 8 B 0.54%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 1.34μs 0.648ns 2.51ns 0.0221 0 0 1.57 KB
master EnrichedLog netcoreapp3.1 1.92μs 1.08ns 4.05ns 0.0211 0 0 1.57 KB
master EnrichedLog net472 2.31μs 3.92ns 14.7ns 0.236 0 0 1.49 KB
#4827 EnrichedLog net6.0 1.46μs 0.596ns 2.23ns 0.0222 0 0 1.57 KB
#4827 EnrichedLog netcoreapp3.1 2.11μs 1.64ns 6.13ns 0.0211 0 0 1.57 KB
#4827 EnrichedLog net472 2.65μs 2.08ns 8.04ns 0.237 0 0 1.5 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 115μs 167ns 646ns 0 0 0 4.21 KB
master EnrichedLog netcoreapp3.1 119μs 157ns 607ns 0 0 0 4.21 KB
master EnrichedLog net472 149μs 166ns 644ns 0.67 0.223 0 4.38 KB
#4827 EnrichedLog net6.0 113μs 66.3ns 230ns 0.0563 0 0 4.21 KB
#4827 EnrichedLog netcoreapp3.1 119μs 227ns 848ns 0.0589 0 0 4.21 KB
#4827 EnrichedLog net472 150μs 76.6ns 297ns 0.671 0.224 0 4.39 KB
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #4827

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑net472 1.93 KB 1.95 KB 12 B 0.62%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.77μs 1.08ns 3.9ns 0.0291 0 0 2.13 KB
master EnrichedLog netcoreapp3.1 3.9μs 1.33ns 4.96ns 0.0292 0 0 2.13 KB
master EnrichedLog net472 4.51μs 0.683ns 2.64ns 0.307 0 0 1.93 KB
#4827 EnrichedLog net6.0 2.99μs 1.24ns 4.64ns 0.0299 0 0 2.13 KB
#4827 EnrichedLog netcoreapp3.1 4.08μs 1.65ns 6.39ns 0.0284 0 0 2.13 KB
#4827 EnrichedLog net472 4.88μs 1.1ns 4.26ns 0.307 0 0 1.95 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.3μs 0.663ns 2.57ns 0.0157 0 0 1.1 KB
master SendReceive netcoreapp3.1 1.65μs 0.976ns 3.78ns 0.0148 0 0 1.1 KB
master SendReceive net472 1.96μs 1.79ns 6.46ns 0.177 0 0 1.12 KB
#4827 SendReceive net6.0 1.31μs 0.604ns 2.34ns 0.0151 0 0 1.1 KB
#4827 SendReceive netcoreapp3.1 1.71μs 3.17ns 12.3ns 0.0152 0 0 1.1 KB
#4827 SendReceive net472 2.06μs 2.99ns 11.2ns 0.177 0 0 1.12 KB
Benchmarks.Trace.SerilogBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #4827

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑net6.0 1.186 2,502.98 2,969.26
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑netcoreapp3.1 1.147 3,473.35 3,982.82

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.5μs 1ns 3.89ns 0.0211 0 0 1.53 KB
master EnrichedLog netcoreapp3.1 3.47μs 1.63ns 5.63ns 0.0209 0 0 1.58 KB
master EnrichedLog net472 4.01μs 1.58ns 5.91ns 0.31 0 0 1.96 KB
#4827 EnrichedLog net6.0 2.97μs 0.844ns 3.16ns 0.0223 0 0 1.53 KB
#4827 EnrichedLog netcoreapp3.1 3.98μs 1.53ns 5.94ns 0.0198 0 0 1.58 KB
#4827 EnrichedLog net472 4.31μs 1.11ns 4.31ns 0.312 0 0 1.97 KB
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #4827

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑netcoreapp3.1 1.221 725.99 886.58
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 1.218 611.74 745.26
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472 1.160 797.54 924.93
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 1.151 570.39 656.79

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 439ns 0.0811ns 0.304ns 0.00741 0 0 536 B
master StartFinishSpan netcoreapp3.1 570ns 0.175ns 0.657ns 0.00745 0 0 536 B
master StartFinishSpan net472 612ns 0.46ns 1.72ns 0.0853 0 0 538 B
master StartFinishScope net6.0 566ns 0.239ns 0.925ns 0.00903 0 0 656 B
master StartFinishScope netcoreapp3.1 726ns 0.289ns 1.04ns 0.00905 0 0 656 B
master StartFinishScope net472 798ns 0.219ns 0.819ns 0.0981 0 0 618 B
#4827 StartFinishSpan net6.0 469ns 0.14ns 0.543ns 0.00754 0 0 536 B
#4827 StartFinishSpan netcoreapp3.1 657ns 0.171ns 0.639ns 0.00722 0 0 536 B
#4827 StartFinishSpan net472 747ns 1.14ns 3.95ns 0.0854 0 0 538 B
#4827 StartFinishScope net6.0 621ns 0.235ns 0.912ns 0.00915 0 0 656 B
#4827 StartFinishScope netcoreapp3.1 887ns 0.327ns 1.22ns 0.00885 0 0 656 B
#4827 StartFinishScope net472 926ns 0.751ns 2.91ns 0.0978 0 0 618 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #4827

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1 1.222 759.68 928.17
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net472 1.154 1,041.25 1,201.44

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 539ns 0.196ns 0.758ns 0.00912 0 0 656 B
master RunOnMethodBegin netcoreapp3.1 760ns 0.129ns 0.465ns 0.00903 0 0 656 B
master RunOnMethodBegin net472 1.04μs 0.635ns 2.38ns 0.098 0 0 618 B
#4827 RunOnMethodBegin net6.0 594ns 0.326ns 1.26ns 0.00914 0 0 656 B
#4827 RunOnMethodBegin netcoreapp3.1 928ns 0.244ns 0.945ns 0.00905 0 0 656 B
#4827 RunOnMethodBegin net472 1.2μs 1.19ns 4.6ns 0.0982 0 0 618 B

Copy link
Member

@robertpi robertpi left a comment

Choose a reason for hiding this comment

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

image
LGTM WCPGW

@datadog-ddstaging
Copy link

datadog-ddstaging bot commented Nov 16, 2023

Datadog Report

Branch report: pierre/128
Commit report: 0cbc584

dd-trace-dotnet: 0 Failed, 0 New Flaky, 303129 Passed, 1389 Skipped, 36m 17.14s Wall Time

@pierotibou pierotibou requested a review from a team as a code owner November 16, 2023 21:08
@pierotibou pierotibou merged commit 9b2e55d into master Nov 17, 2023
59 checks passed
@pierotibou pierotibou deleted the pierre/128 branch November 17, 2023 09:47
@github-actions github-actions bot added this to the vNext milestone Nov 17, 2023
@andrewlock andrewlock added area:opentelemetry OpenTelemetry support area:tracer The core tracer library (Datadog.Trace, does not include OpenTracing, native code, or integrations) labels Nov 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:opentelemetry OpenTelemetry support area:tracer The core tracer library (Datadog.Trace, does not include OpenTracing, native code, or integrations)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants