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

Don't instrument most dotnet SDK calls #5564

Merged
merged 15 commits into from
May 16, 2024
Merged

Don't instrument most dotnet SDK calls #5564

merged 15 commits into from
May 16, 2024

Conversation

andrewlock
Copy link
Member

@andrewlock andrewlock commented May 15, 2024

Summary of changes

If we detect that we're running a .NET SDK command, bail-out of instrumentation

Reason for change

There are bugs in the runtime, particularly around event pipes, which can cause crashes on exit. Instrumenting .NET SDK commands (like build or restore) is unlikely to be of benefit to customers, will increase latency, and comes at the risk of stability issues, so makes sense to bail out. This is particularly important in auto-instrumentation/single step scenarios.

Note that there are obviously some dotnet commands we do want to instrument:

  • If we're in CI Visibility mode, we need to instrument dotnet test and exec testhost
    • The previous checks for this were much fuzzier then added here, but also missed some edge-cases
    • I kept some of the fuzziness there, to reduce the risk of suddenly not implementing somewhere
  • I have kept dotnet run as instrumented, although AFAICT, it always calls exec MyApp.exe or similar so we theoretically wouldn't need to? Seemed safer to keep it though
  • Only bailing out of dotnet exec for known commands like csc.dll and VBCSCompiler.exe

Implementation details

  • Changed the GetCurrentProcessCommandLine() function to return both the "full" command line as well as the individual arguments

Test coverage

Added integration checks to confirm that we don't instrument the following:

dotnet new
dotnet build
dotnet restore
dotnet publish

But that we do instrument

dotnet run
dotnet test

All our existing tests cover the standard mode of dotnet MyApp.dll

Other details

Hopefully resolves internal ticket: https://datadoghq.atlassian.net/browse/AIT-9034

These are example logs from the native loader for a dotnet build command:

[2024-05-15 10:24:54.054 | info | PId: 57932 | TId: 48116] Process CommandLine: "C:\Program Files\dotnet\dotnet.exe" exec "C:\Program Files\dotnet\sdk\8.0.104\Roslyn\bincore\VBCSCompiler.dll" "-pipename:ym28Y6mOAJLWuk5DKlOyc5M0M_UKI+jCaZbVAPH_xF8"
[2024-05-15 10:24:54.055 | info | PId: 57932 | TId: 48116] The Tracer Profiler has been disabled because the process is 'dotnet' but an unsupported command was detected

@andrewlock andrewlock added the area:native-library Automatic instrumentation native C++ code (Datadog.Trace.ClrProfiler.Native) label May 15, 2024
@andrewlock andrewlock requested review from a team as code owners May 15, 2024 12:58
@datadog-ddstaging
Copy link

datadog-ddstaging bot commented May 15, 2024

Datadog Report

Branch report: andrew/exclude-csc
Commit report: 8023556
Test service: dd-trace-dotnet

✅ 0 Failed, 340013 Passed, 2330 Skipped, 22h 44m 59.3s Total Time

@andrewlock
Copy link
Member Author

andrewlock commented May 15, 2024

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 (5564) - mean (74ms)  : 63, 85
     .   : milestone, 74,
    master - mean (75ms)  : 67, 83
     .   : milestone, 75,

    section CallTarget+Inlining+NGEN
    This PR (5564) - mean (1,012ms)  : 977, 1047
     .   : milestone, 1012,
    master - mean (1,013ms)  : 987, 1039
     .   : milestone, 1013,

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

    section CallTarget+Inlining+NGEN
    This PR (5564) - mean (722ms)  : 696, 748
     .   : milestone, 722,
    master - mean (729ms)  : 708, 750
     .   : milestone, 729,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5564) - mean (93ms)  : 90, 96
     .   : milestone, 93,
    master - mean (94ms)  : 90, 97
     .   : milestone, 94,

    section CallTarget+Inlining+NGEN
    This PR (5564) - mean (684ms)  : 663, 705
     .   : milestone, 684,
    master - mean (679ms)  : 655, 703
     .   : milestone, 679,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5564) - mean (193ms)  : 188, 199
     .   : milestone, 193,
    master - mean (193ms)  : 189, 196
     .   : milestone, 193,

    section CallTarget+Inlining+NGEN
    This PR (5564) - mean (1,113ms)  : 1092, 1135
     .   : milestone, 1113,
    master - mean (1,115ms)  : 1091, 1139
     .   : milestone, 1115,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5564) - mean (275ms)  : 270, 281
     .   : milestone, 275,
    master - mean (276ms)  : 270, 281
     .   : milestone, 276,

    section CallTarget+Inlining+NGEN
    This PR (5564) - mean (910ms)  : 893, 928
     .   : milestone, 910,
    master - mean (913ms)  : 891, 935
     .   : milestone, 913,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5564) - mean (265ms)  : 261, 270
     .   : milestone, 265,
    master - mean (265ms)  : 261, 269
     .   : milestone, 265,

    section CallTarget+Inlining+NGEN
    This PR (5564) - mean (894ms)  : 871, 917
     .   : milestone, 894,
    master - mean (895ms)  : 873, 917
     .   : milestone, 895,

Loading

Copy link
Collaborator

@gleocadie gleocadie left a comment

Choose a reason for hiding this comment

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

Few things. Good startup to move from C# to C++ 😆

shared/src/native-src/pal.h Show resolved Hide resolved
shared/src/native-src/pal.h Outdated Show resolved Hide resolved
tracer/src/Datadog.Tracer.Native/cor_profiler.cpp Outdated Show resolved Hide resolved
@andrewlock
Copy link
Member Author

andrewlock commented May 15, 2024

Benchmarks Report for tracer 🐌

Benchmarks for #5564 compared to master:

  • 1 benchmarks are slower, with geometric mean 1.152
  • All benchmarks have the same 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.78μs 49.4ns 324ns 0.0258 0.0129 0 7.55 KB
master StartStopWithChild netcoreapp3.1 10.7μs 57.4ns 309ns 0.0311 0.0155 0 7.65 KB
master StartStopWithChild net472 17.1μs 63.8ns 247ns 1.35 0.374 0.116 8.07 KB
#5564 StartStopWithChild net6.0 8.58μs 48.4ns 325ns 0.0198 0.00793 0 7.56 KB
#5564 StartStopWithChild netcoreapp3.1 10.6μs 59.9ns 398ns 0.0266 0.0107 0 7.65 KB
#5564 StartStopWithChild net472 17.2μs 56.9ns 220ns 1.34 0.357 0.102 8.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 470μs 251ns 940ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 638μs 396ns 1.43μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 820μs 267ns 1.04μs 0.408 0 0 3.3 KB
#5564 WriteAndFlushEnrichedTraces net6.0 471μs 183ns 710ns 0 0 0 2.7 KB
#5564 WriteAndFlushEnrichedTraces netcoreapp3.1 640μs 113ns 422ns 0 0 0 2.7 KB
#5564 WriteAndFlushEnrichedTraces net472 825μs 424ns 1.64μs 0.411 0 0 3.3 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 167μs 207ns 800ns 0.25 0 0 18.49 KB
master SendRequest netcoreapp3.1 192μs 359ns 1.39μs 0.193 0 0 20.66 KB
master SendRequest net472 0.000453ns 0.000143ns 0.000553ns 0 0 0 0 b
#5564 SendRequest net6.0 170μs 288ns 1.12μs 0.169 0 0 18.49 KB
#5564 SendRequest netcoreapp3.1 193μs 389ns 1.5μs 0.193 0 0 20.66 KB
#5564 SendRequest net472 0.143ns 0.00104ns 0.0039ns 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 534μs 261ns 1.01μs 0.536 0 0 41.53 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 647μs 398ns 1.38μs 0.334 0 0 41.74 KB
master WriteAndFlushEnrichedTraces net472 862μs 4.36μs 19μs 8.08 2.55 0.425 53.28 KB
#5564 WriteAndFlushEnrichedTraces net6.0 539μs 339ns 1.27μs 0.548 0 0 41.65 KB
#5564 WriteAndFlushEnrichedTraces netcoreapp3.1 633μs 1.17μs 4.06μs 0.332 0 0 41.71 KB
#5564 WriteAndFlushEnrichedTraces net472 855μs 3.99μs 16μs 8.19 2.59 0.431 53.23 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.14μs 1.45ns 5.41ns 0.0114 0 0 808 B
master ExecuteNonQuery netcoreapp3.1 1.52μs 2.67ns 10.3ns 0.0106 0 0 808 B
master ExecuteNonQuery net472 1.74μs 0.356ns 1.28ns 0.122 0 0 770 B
#5564 ExecuteNonQuery net6.0 1.08μs 0.579ns 2.24ns 0.0113 0 0 808 B
#5564 ExecuteNonQuery netcoreapp3.1 1.56μs 0.711ns 2.75ns 0.0109 0 0 808 B
#5564 ExecuteNonQuery net472 1.73μs 0.669ns 2.5ns 0.122 0 0 770 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.33μs 0.876ns 3.28ns 0.014 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 1.6μs 1.22ns 4.41ns 0.0137 0 0 1.03 KB
master CallElasticsearch net472 2.49μs 0.814ns 3.04ns 0.166 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.36μs 0.572ns 2.14ns 0.0137 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 1.69μs 2.46ns 9.21ns 0.0144 0 0 1.08 KB
master CallElasticsearchAsync net472 2.62μs 1.1ns 3.98ns 0.174 0 0 1.1 KB
#5564 CallElasticsearch net6.0 1.25μs 0.467ns 1.81ns 0.0144 0 0 1.03 KB
#5564 CallElasticsearch netcoreapp3.1 1.6μs 1.28ns 4.79ns 0.0138 0 0 1.03 KB
#5564 CallElasticsearch net472 2.45μs 0.988ns 3.83ns 0.165 0 0 1.04 KB
#5564 CallElasticsearchAsync net6.0 1.24μs 0.421ns 1.58ns 0.0143 0 0 1.01 KB
#5564 CallElasticsearchAsync netcoreapp3.1 1.77μs 1.28ns 4.8ns 0.0144 0 0 1.08 KB
#5564 CallElasticsearchAsync net472 2.56μs 1.42ns 5.48ns 0.175 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.27μs 0.575ns 2.15ns 0.0134 0 0 952 B
master ExecuteAsync netcoreapp3.1 1.67μs 0.304ns 1.1ns 0.0124 0 0 952 B
master ExecuteAsync net472 1.76μs 1.37ns 5.29ns 0.145 0 0 915 B
#5564 ExecuteAsync net6.0 1.32μs 1.09ns 4.2ns 0.0132 0 0 952 B
#5564 ExecuteAsync netcoreapp3.1 1.66μs 0.558ns 2.09ns 0.0125 0 0 952 B
#5564 ExecuteAsync net472 1.82μs 1.59ns 6.18ns 0.145 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 4.08μs 1.43ns 5.52ns 0.0306 0 0 2.27 KB
master SendAsync netcoreapp3.1 5.22μs 2.27ns 8.48ns 0.0392 0 0 2.81 KB
master SendAsync net472 7.68μs 3.69ns 14.3ns 0.502 0 0 3.18 KB
#5564 SendAsync net6.0 4.31μs 1.84ns 7.14ns 0.0321 0 0 2.27 KB
#5564 SendAsync netcoreapp3.1 5.16μs 1.77ns 6.38ns 0.036 0 0 2.81 KB
#5564 SendAsync net472 7.66μs 2.42ns 9.38ns 0.502 0 0 3.18 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 1.5μs 0.49ns 1.9ns 0.0239 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 2.24μs 0.867ns 3.13ns 0.0227 0 0 1.7 KB
master EnrichedLog net472 2.7μs 1.42ns 5.49ns 0.258 0 0 1.62 KB
#5564 EnrichedLog net6.0 1.58μs 0.488ns 1.89ns 0.0238 0 0 1.7 KB
#5564 EnrichedLog netcoreapp3.1 2.15μs 2.06ns 7.69ns 0.0227 0 0 1.7 KB
#5564 EnrichedLog net472 2.7μs 1.4ns 5.43ns 0.257 0 0 1.62 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 113μs 50.9ns 191ns 0.0564 0 0 4.28 KB
master EnrichedLog netcoreapp3.1 118μs 155ns 600ns 0.0589 0 0 4.28 KB
master EnrichedLog net472 147μs 58.6ns 227ns 0.667 0.222 0 4.46 KB
#5564 EnrichedLog net6.0 113μs 101ns 376ns 0.0572 0 0 4.28 KB
#5564 EnrichedLog netcoreapp3.1 118μs 91ns 341ns 0 0 0 4.28 KB
#5564 EnrichedLog net472 147μs 63.6ns 246ns 0.661 0.22 0 4.46 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 3.08μs 0.921ns 3.57ns 0.0309 0 0 2.25 KB
master EnrichedLog netcoreapp3.1 4.2μs 3.93ns 15.2ns 0.0297 0 0 2.25 KB
master EnrichedLog net472 4.91μs 1.65ns 6.4ns 0.328 0 0 2.07 KB
#5564 EnrichedLog net6.0 2.82μs 0.693ns 2.5ns 0.0308 0 0 2.25 KB
#5564 EnrichedLog netcoreapp3.1 4.25μs 1.38ns 5.33ns 0.0298 0 0 2.25 KB
#5564 EnrichedLog net472 4.79μs 2.16ns 8.35ns 0.328 0 0 2.07 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.31μs 0.673ns 2.52ns 0.0171 0 0 1.2 KB
master SendReceive netcoreapp3.1 1.76μs 1.05ns 4.05ns 0.0159 0 0 1.2 KB
master SendReceive net472 2.1μs 0.816ns 3.16ns 0.191 0 0 1.2 KB
#5564 SendReceive net6.0 1.44μs 0.477ns 1.85ns 0.0165 0 0 1.2 KB
#5564 SendReceive netcoreapp3.1 1.86μs 1.07ns 4ns 0.0165 0 0 1.2 KB
#5564 SendReceive net472 2.23μs 1.62ns 6.28ns 0.191 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 2.74μs 0.818ns 3.06ns 0.0219 0 0 1.6 KB
master EnrichedLog netcoreapp3.1 4.04μs 3.21ns 12.4ns 0.0221 0 0 1.65 KB
master EnrichedLog net472 4.45μs 1.87ns 7.23ns 0.323 0 0 2.04 KB
#5564 EnrichedLog net6.0 2.73μs 0.787ns 3.05ns 0.0221 0 0 1.6 KB
#5564 EnrichedLog netcoreapp3.1 4.02μs 1.78ns 6.91ns 0.0201 0 0 1.65 KB
#5564 EnrichedLog net472 4.44μs 2.29ns 8.86ns 0.322 0 0 2.04 KB
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #5564

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑netcoreapp3.1 1.152 835.23 962.50

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 522ns 0.111ns 0.415ns 0.00805 0 0 576 B
master StartFinishSpan netcoreapp3.1 727ns 1ns 3.75ns 0.00786 0 0 576 B
master StartFinishSpan net472 760ns 0.269ns 1.04ns 0.0914 0 0 578 B
master StartFinishScope net6.0 564ns 0.213ns 0.739ns 0.00974 0 0 696 B
master StartFinishScope netcoreapp3.1 835ns 0.203ns 0.732ns 0.00962 0 0 696 B
master StartFinishScope net472 1.09μs 1.01ns 3.63ns 0.104 0 0 658 B
#5564 StartFinishSpan net6.0 477ns 0.306ns 1.18ns 0.00796 0 0 576 B
#5564 StartFinishSpan netcoreapp3.1 729ns 0.776ns 3.01ns 0.0077 0 0 576 B
#5564 StartFinishSpan net472 798ns 0.64ns 2.22ns 0.0917 0 0 578 B
#5564 StartFinishScope net6.0 617ns 0.363ns 1.36ns 0.00982 0 0 696 B
#5564 StartFinishScope netcoreapp3.1 962ns 0.564ns 2.11ns 0.00914 0 0 696 B
#5564 StartFinishScope net472 1.03μs 0.88ns 3.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 690ns 0.356ns 1.38ns 0.00997 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 873ns 0.393ns 1.52ns 0.00953 0 0 696 B
master RunOnMethodBegin net472 1.22μs 0.522ns 2.02ns 0.104 0 0 658 B
#5564 RunOnMethodBegin net6.0 639ns 0.144ns 0.519ns 0.00965 0 0 696 B
#5564 RunOnMethodBegin netcoreapp3.1 909ns 0.441ns 1.65ns 0.00907 0 0 696 B
#5564 RunOnMethodBegin net472 1.17μs 0.761ns 2.95ns 0.104 0 0 658 B

@andrewlock
Copy link
Member Author

andrewlock commented May 15, 2024

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 (5564) (11.791M)   : 0, 11790681
    master (11.879M)   : 0, 11879110
    benchmarks/2.9.0 (11.983M)   : 0, 11982622

    section Automatic
    This PR (5564) (8.007M)   : 0, 8007275
    master (8.054M)   : 0, 8053530
    benchmarks/2.9.0 (8.324M)   : 0, 8324349

    section Trace stats
    master (8.362M)   : 0, 8361687

    section Manual
    This PR (5564) (10.251M)   : 0, 10251409
    master (10.229M)   : 0, 10229080

    section Manual + Automatic
    This PR (5564) (7.648M)   : 0, 7648286
    master (7.641M)   : 0, 7641349

    section Version Conflict
    master (6.825M)   : 0, 6824800

Loading
gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (5564) (9.666M)   : 0, 9665885
    master (9.599M)   : 0, 9598656
    benchmarks/2.9.0 (9.587M)   : 0, 9587201

    section Automatic
    This PR (5564) (6.638M)   : 0, 6638144
    master (6.588M)   : 0, 6588326

    section Trace stats
    master (6.893M)   : 0, 6892670

    section Manual
    This PR (5564) (8.228M)   : 0, 8227740
    master (8.131M)   : 0, 8130516

    section Manual + Automatic
    This PR (5564) (6.252M)   : 0, 6252495
    master (6.167M)   : 0, 6167127

    section Version Conflict
    master (5.576M)   : 0, 5575919

Loading
gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (5564) (9.809M)   : 0, 9809076
    master (9.987M)   : 0, 9986822
    benchmarks/2.9.0 (9.913M)   : 0, 9912627

    section Automatic
    This PR (5564) (6.961M)   : 0, 6961022
    master (6.986M)   : 0, 6985911
    benchmarks/2.9.0 (7.312M)   : 0, 7312269

    section Trace stats
    master (7.286M)   : 0, 7285868

    section Manual
    This PR (5564) (8.550M)   : 0, 8549982
    master (8.789M)   : 0, 8788786

    section Manual + Automatic
    This PR (5564) (6.701M)   : 0, 6700898
    master (6.745M)   : 0, 6745109

    section Version Conflict
    master (6.204M)   : 0, 6204499

Loading

Copy link
Member

@tonyredondo tonyredondo left a comment

Choose a reason for hiding this comment

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

LGTM tested in macOS 👍🏻 all good.

shared/src/native-src/pal.h Outdated Show resolved Hide resolved
tracer/src/Datadog.Tracer.Native/cor_profiler.cpp Outdated Show resolved Hide resolved
andrewlock and others added 2 commits May 16, 2024 13:52
@andrewlock andrewlock merged commit 7e62608 into master May 16, 2024
65 of 68 checks passed
@andrewlock andrewlock deleted the andrew/exclude-csc branch May 16, 2024 13:24
@github-actions github-actions bot added this to the vNext-v2 milestone May 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:native-library Automatic instrumentation native C++ code (Datadog.Trace.ClrProfiler.Native)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants