Ignore multiple instances of the same version of the tracer#6310
Conversation
Datadog ReportBranch report: ✅ 0 Failed, 454372 Passed, 2766 Skipped, 19h 27m 29.63s Total Time |
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.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6310) - mean (72ms) : 64, 80
. : milestone, 72,
master - mean (72ms) : 64, 80
. : milestone, 72,
section CallTarget+Inlining+NGEN
This PR (6310) - mean (1,109ms) : 1095, 1124
. : milestone, 1109,
master - mean (1,107ms) : 1085, 1128
. : milestone, 1107,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6310) - mean (109ms) : 107, 111
. : milestone, 109,
master - mean (108ms) : 106, 110
. : milestone, 108,
section CallTarget+Inlining+NGEN
This PR (6310) - mean (769ms) : 755, 782
. : milestone, 769,
master - mean (771ms) : 757, 785
. : milestone, 771,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6310) - mean (93ms) : 90, 95
. : milestone, 93,
master - mean (92ms) : 90, 93
. : milestone, 92,
section CallTarget+Inlining+NGEN
This PR (6310) - mean (726ms) : 710, 742
. : milestone, 726,
master - mean (726ms) : 707, 745
. : milestone, 726,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6310) - mean (191ms) : 187, 196
. : milestone, 191,
master - mean (191ms) : 186, 195
. : milestone, 191,
section CallTarget+Inlining+NGEN
This PR (6310) - mean (1,214ms) : 1189, 1239
. : milestone, 1214,
master - mean (1,213ms) : 1190, 1236
. : milestone, 1213,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6310) - mean (277ms) : 273, 281
. : milestone, 277,
master - mean (276ms) : 271, 281
. : milestone, 276,
section CallTarget+Inlining+NGEN
This PR (6310) - mean (947ms) : 923, 970
. : milestone, 947,
master - mean (948ms) : 929, 967
. : milestone, 948,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6310) - mean (267ms) : 262, 272
. : milestone, 267,
master - mean (265ms) : 261, 270
. : milestone, 265,
section CallTarget+Inlining+NGEN
This PR (6310) - mean (931ms) : 914, 948
. : milestone, 931,
master - mean (931ms) : 913, 950
. : milestone, 931,
|
Benchmarks Report for tracer 🐌Benchmarks for #6310 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 ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.SpanBenchmark - Slower
|
| Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 | 1.244 | 399.41 | 496.67 |
| Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 | 1.190 | 581.04 | 488.41 |
Raw results
| Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|
| master | StartFinishSpan |
net6.0 | 399ns | 0.238ns | 0.922ns | 0.00804 | 0 | 0 | 576 B |
| master | StartFinishSpan |
netcoreapp3.1 | 572ns | 0.392ns | 1.52ns | 0.00776 | 0 | 0 | 576 B |
| master | StartFinishSpan |
net472 | 664ns | 0.363ns | 1.41ns | 0.0918 | 0 | 0 | 578 B |
| master | StartFinishScope |
net6.0 | 581ns | 0.176ns | 0.68ns | 0.00966 | 0 | 0 | 696 B |
| master | StartFinishScope |
netcoreapp3.1 | 794ns | 0.333ns | 1.24ns | 0.00953 | 0 | 0 | 696 B |
| master | StartFinishScope |
net472 | 898ns | 0.557ns | 2.16ns | 0.104 | 0 | 0 | 658 B |
| #6310 | StartFinishSpan |
net6.0 | 496ns | 0.562ns | 2.18ns | 0.00811 | 0 | 0 | 576 B |
| #6310 | StartFinishSpan |
netcoreapp3.1 | 545ns | 0.907ns | 3.39ns | 0.00774 | 0 | 0 | 576 B |
| #6310 | StartFinishSpan |
net472 | 667ns | 0.494ns | 1.91ns | 0.0917 | 0 | 0 | 578 B |
| #6310 | StartFinishScope |
net6.0 | 489ns | 0.503ns | 1.95ns | 0.00969 | 0 | 0 | 696 B |
| #6310 | StartFinishScope |
netcoreapp3.1 | 735ns | 1.03ns | 4ns | 0.00962 | 0 | 0 | 696 B |
| #6310 | StartFinishScope |
net472 | 900ns | 1.03ns | 3.98ns | 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 | 662ns | 0.343ns | 1.28ns | 0.00966 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
netcoreapp3.1 | 910ns | 1.46ns | 5.67ns | 0.00916 | 0 | 0 | 696 B |
| master | RunOnMethodBegin |
net472 | 1.12μs | 0.5ns | 1.94ns | 0.105 | 0 | 0 | 658 B |
| #6310 | RunOnMethodBegin |
net6.0 | 666ns | 0.812ns | 3.15ns | 0.00976 | 0 | 0 | 696 B |
| #6310 | RunOnMethodBegin |
netcoreapp3.1 | 907ns | 1.25ns | 4.84ns | 0.00932 | 0 | 0 | 696 B |
| #6310 | RunOnMethodBegin |
net472 | 1.13μs | 1.83ns | 7.08ns | 0.105 | 0 | 0 | 658 B |
Throughput/Crank Report ⚡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 (6310) (11.240M) : 0, 11239665
master (10.953M) : 0, 10953423
benchmarks/2.9.0 (11.033M) : 0, 11032866
section Automatic
This PR (6310) (7.248M) : 0, 7248466
master (7.258M) : 0, 7258128
benchmarks/2.9.0 (7.786M) : 0, 7785853
section Trace stats
master (7.591M) : 0, 7590970
section Manual
master (11.208M) : 0, 11207771
section Manual + Automatic
This PR (6310) (6.746M) : 0, 6746430
master (6.722M) : 0, 6721955
section DD_TRACE_ENABLED=0
master (10.178M) : 0, 10178373
gantt
title Throughput Linux arm64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (6310) (9.651M) : 0, 9651282
master (9.269M) : 0, 9268938
benchmarks/2.9.0 (9.495M) : 0, 9494821
section Automatic
This PR (6310) (6.379M) : 0, 6379030
master (6.299M) : 0, 6299432
section Trace stats
master (6.605M) : 0, 6605300
section Manual
master (9.212M) : 0, 9211628
section Manual + Automatic
This PR (6310) (5.887M) : 0, 5887484
master (5.797M) : 0, 5796944
section DD_TRACE_ENABLED=0
master (8.676M) : 0, 8675777
gantt
title Throughput Windows x64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (6310) (9.126M) : 0, 9126256
master (9.183M) : 0, 9182720
benchmarks/2.9.0 (10.020M) : 0, 10019592
section Automatic
This PR (6310) (5.826M) : crit ,0, 5825814
master (6.143M) : 0, 6143036
benchmarks/2.9.0 (7.255M) : 0, 7255257
section Trace stats
master (6.605M) : 0, 6604886
section Manual
master (9.047M) : 0, 9046916
section Manual + Automatic
This PR (6310) (5.557M) : 0, 5556635
master (5.730M) : 0, 5730049
section DD_TRACE_ENABLED=0
master (8.828M) : 0, 8828238
|
fa8a666 to
7aa7024
Compare
|
This may not be related. My company is a big customer of DD. We have this weird issue where the page you go to in APM that shows you what versions of the Trace libraries your app has installed shows the wrong version. It says we're out-of-date, showing I think 2.6 even though we've installed the latest nuget packages. |
|
Hi @toupswork - this is almost certainly something different, but it still doesn't sound great :/ One possible reason could be that you have mismatched NuGet packages and automatic installer (MSI/deb etc) - is it possible that could explain it? If not, I'd encourage you to open a support ticket, and we can try to get that figured out and resolved 🙂 |
Summary of changes
In dd-dotnet, when the tracer is found multiple times with the same version, consider them as one.
Reason for change
We have random failures in the CI because we find the same version of the tracer loaded multiple times, and I haven't been able to figure out why. We've never seen this happening in the wild so it's probably safe to ignore.
Test coverage
If the tests stop randomly failing then we're good.