-
Notifications
You must be signed in to change notification settings - Fork 141
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
[Profiler] Change profiler to use the libdatadog dynamic library instead #6301
base: master
Are you sure you want to change the base?
Conversation
Datadog ReportBranch report: ❌ 13 Failed (1 Known Flaky), 450417 Passed, 3212 Skipped, 21h 25m 56.97s Total Time ❌ Failed Tests (13)
|
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 (6301) - mean (74ms) : 66, 81
. : milestone, 74,
master - mean (71ms) : 64, 78
. : milestone, 71,
section CallTarget+Inlining+NGEN
This PR (6301) - mean (1,218ms) : crit, 1075, 1361
. : crit, milestone, 1218,
master - mean (1,109ms) : 1083, 1135
. : milestone, 1109,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6301) - mean (109ms) : 107, 112
. : milestone, 109,
master - mean (109ms) : 106, 112
. : milestone, 109,
section CallTarget+Inlining+NGEN
This PR (6301) - mean (772ms) : 754, 791
. : milestone, 772,
master - mean (772ms) : 752, 791
. : milestone, 772,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6301) - mean (93ms) : 90, 96
. : milestone, 93,
master - mean (92ms) : 91, 94
. : milestone, 92,
section CallTarget+Inlining+NGEN
This PR (6301) - mean (725ms) : 712, 739
. : milestone, 725,
master - mean (726ms) : 711, 741
. : milestone, 726,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6301) - mean (191ms) : 186, 196
. : milestone, 191,
master - mean (192ms) : 186, 198
. : milestone, 192,
section CallTarget+Inlining+NGEN
This PR (6301) - mean (1,218ms) : 1195, 1241
. : milestone, 1218,
master - mean (1,214ms) : 1192, 1237
. : milestone, 1214,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6301) - mean (276ms) : 273, 280
. : milestone, 276,
master - mean (278ms) : 272, 284
. : milestone, 278,
section CallTarget+Inlining+NGEN
This PR (6301) - mean (942ms) : 921, 963
. : milestone, 942,
master - mean (949ms) : 933, 965
. : milestone, 949,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (6301) - mean (265ms) : 260, 270
. : milestone, 265,
master - mean (266ms) : 262, 270
. : milestone, 266,
section CallTarget+Inlining+NGEN
This PR (6301) - mean (925ms) : 905, 946
. : milestone, 925,
master - mean (931ms) : 914, 948
. : milestone, 931,
|
6211ed7
to
11e14e2
Compare
Benchmarks Report for tracer 🐌Benchmarks for #6301 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 - Slower
|
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.AspNetCoreBenchmark.SendRequest‑net6.0 | 1.386 | 150,861.89 | 209,129.71 | several? |
Benchmarks.Trace.AspNetCoreBenchmark.SendRequest‑netcoreapp3.1 | 1.283 | 170,897.93 | 219,231.21 | multimodal |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | SendRequest |
net6.0 | 151μs | 879ns | 7.81μs | 0.146 | 0 | 0 | 14.47 KB |
master | SendRequest |
netcoreapp3.1 | 173μs | 1.01μs | 10μs | 0.155 | 0 | 0 | 17.27 KB |
master | SendRequest |
net472 | 0.000363ns | 0.000352ns | 0.00132ns | 0 | 0 | 0 | 0 b |
#6301 | SendRequest |
net6.0 | 203μs | 3.3μs | 33μs | 0.132 | 0 | 0 | 14.47 KB |
#6301 | SendRequest |
netcoreapp3.1 | 216μs | 2.43μs | 24.3μs | 0.183 | 0 | 0 | 17.27 KB |
#6301 | SendRequest |
net472 | 0.000128ns | 0.000102ns | 0.000396ns | 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 | 556μs | 2.12μs | 8.2μs | 0.571 | 0 | 0 | 41.66 KB |
master | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 676μs | 3.09μs | 14.8μs | 0.37 | 0 | 0 | 41.73 KB |
master | WriteAndFlushEnrichedTraces |
net472 | 892μs | 2.61μs | 10.1μs | 8.04 | 2.23 | 0.446 | 53.32 KB |
#6301 | WriteAndFlushEnrichedTraces |
net6.0 | 584μs | 2.98μs | 17.9μs | 0.561 | 0 | 0 | 41.74 KB |
#6301 | WriteAndFlushEnrichedTraces |
netcoreapp3.1 | 711μs | 3.54μs | 21.3μs | 0.347 | 0 | 0 | 41.86 KB |
#6301 | WriteAndFlushEnrichedTraces |
net472 | 871μs | 3.98μs | 14.9μs | 8.39 | 2.52 | 0.419 | 53.26 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.37μs | 1.21ns | 4.7ns | 0.0144 | 0 | 0 | 1.02 KB |
master | ExecuteNonQuery |
netcoreapp3.1 | 1.82μs | 1.62ns | 6.28ns | 0.0137 | 0 | 0 | 1.02 KB |
master | ExecuteNonQuery |
net472 | 2.13μs | 2.15ns | 8.32ns | 0.156 | 0.00108 | 0 | 987 B |
#6301 | ExecuteNonQuery |
net6.0 | 1.26μs | 0.841ns | 3.15ns | 0.0144 | 0 | 0 | 1.02 KB |
#6301 | ExecuteNonQuery |
netcoreapp3.1 | 1.7μs | 1.82ns | 6.8ns | 0.0136 | 0 | 0 | 1.02 KB |
#6301 | ExecuteNonQuery |
net472 | 2.09μs | 1.91ns | 7.39ns | 0.157 | 0.00104 | 0 | 987 B |
Benchmarks.Trace.ElasticsearchBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #6301
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net6.0
1.114
1,187.49
1,323.40
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net6.0 | 1.114 | 1,187.49 | 1,323.40 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | CallElasticsearch |
net6.0 | 1.17μs | 0.499ns | 1.87ns | 0.0136 | 0 | 0 | 976 B |
master | CallElasticsearch |
netcoreapp3.1 | 1.58μs | 0.727ns | 2.72ns | 0.0127 | 0 | 0 | 976 B |
master | CallElasticsearch |
net472 | 2.58μs | 1.82ns | 7.07ns | 0.157 | 0 | 0 | 995 B |
master | CallElasticsearchAsync |
net6.0 | 1.19μs | 0.567ns | 2.12ns | 0.013 | 0 | 0 | 952 B |
master | CallElasticsearchAsync |
netcoreapp3.1 | 1.6μs | 0.717ns | 2.78ns | 0.0137 | 0 | 0 | 1.02 KB |
master | CallElasticsearchAsync |
net472 | 2.69μs | 1.03ns | 3.85ns | 0.166 | 0 | 0 | 1.05 KB |
#6301 | CallElasticsearch |
net6.0 | 1.17μs | 0.739ns | 2.86ns | 0.0135 | 0 | 0 | 976 B |
#6301 | CallElasticsearch |
netcoreapp3.1 | 1.54μs | 0.695ns | 2.6ns | 0.0132 | 0 | 0 | 976 B |
#6301 | CallElasticsearch |
net472 | 2.65μs | 1.36ns | 5.08ns | 0.158 | 0 | 0 | 995 B |
#6301 | CallElasticsearchAsync |
net6.0 | 1.32μs | 0.681ns | 2.46ns | 0.0132 | 0 | 0 | 952 B |
#6301 | CallElasticsearchAsync |
netcoreapp3.1 | 1.58μs | 1.16ns | 4.34ns | 0.0135 | 0 | 0 | 1.02 KB |
#6301 | CallElasticsearchAsync |
net472 | 2.62μs | 0.837ns | 3.13ns | 0.166 | 0 | 0 | 1.05 KB |
Benchmarks.Trace.GraphQLBenchmark - Faster 🎉 Same allocations ✔️
Faster 🎉 in #6301
Benchmark
base/diff
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net6.0
1.126
1,414.49
1,256.73
Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net6.0 | 1.126 | 1,414.49 | 1,256.73 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | ExecuteAsync |
net6.0 | 1.41μs | 0.86ns | 3.33ns | 0.0135 | 0 | 0 | 952 B |
master | ExecuteAsync |
netcoreapp3.1 | 1.61μs | 0.577ns | 2.08ns | 0.0131 | 0 | 0 | 952 B |
master | ExecuteAsync |
net472 | 1.82μs | 0.762ns | 2.85ns | 0.145 | 0 | 0 | 915 B |
#6301 | ExecuteAsync |
net6.0 | 1.26μs | 0.408ns | 1.58ns | 0.0137 | 0 | 0 | 952 B |
#6301 | ExecuteAsync |
netcoreapp3.1 | 1.63μs | 0.639ns | 2.39ns | 0.0129 | 0 | 0 | 952 B |
#6301 | ExecuteAsync |
net472 | 1.76μs | 0.831ns | 3.11ns | 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.28μs | 1.2ns | 4.47ns | 0.0323 | 0 | 0 | 2.31 KB |
master | SendAsync |
netcoreapp3.1 | 5.42μs | 15.4ns | 59.8ns | 0.0376 | 0 | 0 | 2.85 KB |
master | SendAsync |
net472 | 7.34μs | 2.32ns | 9ns | 0.492 | 0 | 0 | 3.12 KB |
#6301 | SendAsync |
net6.0 | 4.49μs | 1.79ns | 6.95ns | 0.0314 | 0 | 0 | 2.31 KB |
#6301 | SendAsync |
netcoreapp3.1 | 5.41μs | 4.33ns | 16.8ns | 0.0379 | 0 | 0 | 2.85 KB |
#6301 | SendAsync |
net472 | 7.33μs | 1.83ns | 7.07ns | 0.495 | 0 | 0 | 3.12 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.45μs | 0.784ns | 2.83ns | 0.0226 | 0 | 0 | 1.64 KB |
master | EnrichedLog |
netcoreapp3.1 | 2.18μs | 0.945ns | 3.54ns | 0.0218 | 0 | 0 | 1.64 KB |
master | EnrichedLog |
net472 | 2.54μs | 1.75ns | 6.54ns | 0.249 | 0 | 0 | 1.57 KB |
#6301 | EnrichedLog |
net6.0 | 1.54μs | 0.632ns | 2.45ns | 0.023 | 0 | 0 | 1.64 KB |
#6301 | EnrichedLog |
netcoreapp3.1 | 2.09μs | 0.847ns | 3.17ns | 0.0221 | 0 | 0 | 1.64 KB |
#6301 | EnrichedLog |
net472 | 2.67μs | 2.23ns | 8.65ns | 0.249 | 0 | 0 | 1.57 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 | 121μs | 127ns | 492ns | 0.0609 | 0 | 0 | 4.28 KB |
master | EnrichedLog |
netcoreapp3.1 | 125μs | 212ns | 820ns | 0 | 0 | 0 | 4.28 KB |
master | EnrichedLog |
net472 | 152μs | 141ns | 545ns | 0.684 | 0.228 | 0 | 4.46 KB |
#6301 | EnrichedLog |
net6.0 | 120μs | 141ns | 547ns | 0.0607 | 0 | 0 | 4.28 KB |
#6301 | EnrichedLog |
netcoreapp3.1 | 126μs | 188ns | 728ns | 0 | 0 | 0 | 4.28 KB |
#6301 | EnrichedLog |
net472 | 151μs | 92.6ns | 321ns | 0.678 | 0.226 | 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.2μs | 1ns | 3.87ns | 0.0304 | 0 | 0 | 2.2 KB |
master | EnrichedLog |
netcoreapp3.1 | 4.18μs | 1.04ns | 3.91ns | 0.0293 | 0 | 0 | 2.2 KB |
master | EnrichedLog |
net472 | 4.79μs | 1.61ns | 5.57ns | 0.318 | 0 | 0 | 2.02 KB |
#6301 | EnrichedLog |
net6.0 | 2.94μs | 0.724ns | 2.8ns | 0.0308 | 0 | 0 | 2.2 KB |
#6301 | EnrichedLog |
netcoreapp3.1 | 4.26μs | 5.06ns | 19.6ns | 0.0294 | 0 | 0 | 2.2 KB |
#6301 | EnrichedLog |
net472 | 4.87μs | 1.18ns | 4.27ns | 0.319 | 0 | 0 | 2.02 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.33μs | 0.772ns | 2.99ns | 0.0158 | 0 | 0 | 1.14 KB |
master | SendReceive |
netcoreapp3.1 | 1.86μs | 0.538ns | 2.08ns | 0.0148 | 0 | 0 | 1.14 KB |
master | SendReceive |
net472 | 2.06μs | 1.59ns | 5.95ns | 0.183 | 0 | 0 | 1.16 KB |
#6301 | SendReceive |
net6.0 | 1.36μs | 0.737ns | 2.85ns | 0.0156 | 0 | 0 | 1.14 KB |
#6301 | SendReceive |
netcoreapp3.1 | 1.74μs | 0.72ns | 2.79ns | 0.0148 | 0 | 0 | 1.14 KB |
#6301 | SendReceive |
net472 | 2.04μs | 1.12ns | 4.32ns | 0.183 | 0 | 0 | 1.16 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.73μs | 0.649ns | 2.43ns | 0.0218 | 0 | 0 | 1.6 KB |
master | EnrichedLog |
netcoreapp3.1 | 3.99μs | 2.16ns | 8.38ns | 0.022 | 0 | 0 | 1.65 KB |
master | EnrichedLog |
net472 | 4.29μs | 2.27ns | 8.48ns | 0.322 | 0 | 0 | 2.04 KB |
#6301 | EnrichedLog |
net6.0 | 2.74μs | 1.34ns | 5ns | 0.0219 | 0 | 0 | 1.6 KB |
#6301 | EnrichedLog |
netcoreapp3.1 | 4.03μs | 1.3ns | 5.03ns | 0.0222 | 0 | 0 | 1.65 KB |
#6301 | EnrichedLog |
net472 | 4.42μs | 1.34ns | 5.2ns | 0.324 | 0 | 0 | 2.04 KB |
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #6301
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472
1.172
599.32
702.68
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0
1.161
481.37
559.01
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 | 1.172 | 599.32 | 702.68 | |
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 | 1.161 | 481.37 | 559.01 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StartFinishSpan |
net6.0 | 398ns | 0.624ns | 2.42ns | 0.008 | 0 | 0 | 576 B |
master | StartFinishSpan |
netcoreapp3.1 | 612ns | 0.604ns | 2.26ns | 0.00772 | 0 | 0 | 576 B |
master | StartFinishSpan |
net472 | 599ns | 0.633ns | 2.37ns | 0.0917 | 0 | 0 | 578 B |
master | StartFinishScope |
net6.0 | 482ns | 0.756ns | 2.93ns | 0.00971 | 0 | 0 | 696 B |
master | StartFinishScope |
netcoreapp3.1 | 759ns | 0.973ns | 3.77ns | 0.00945 | 0 | 0 | 696 B |
master | StartFinishScope |
net472 | 919ns | 1.84ns | 7.11ns | 0.104 | 0 | 0 | 658 B |
#6301 | StartFinishSpan |
net6.0 | 416ns | 0.675ns | 2.61ns | 0.00801 | 0 | 0 | 576 B |
#6301 | StartFinishSpan |
netcoreapp3.1 | 580ns | 0.644ns | 2.41ns | 0.00784 | 0 | 0 | 576 B |
#6301 | StartFinishSpan |
net472 | 703ns | 1.15ns | 4.47ns | 0.0915 | 0 | 0 | 578 B |
#6301 | StartFinishScope |
net6.0 | 558ns | 0.917ns | 3.55ns | 0.00968 | 0 | 0 | 696 B |
#6301 | StartFinishScope |
netcoreapp3.1 | 724ns | 0.788ns | 3.05ns | 0.00921 | 0 | 0 | 696 B |
#6301 | StartFinishScope |
net472 | 893ns | 1.13ns | 4.38ns | 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 | 599ns | 0.34ns | 1.32ns | 0.00976 | 0 | 0 | 696 B |
master | RunOnMethodBegin |
netcoreapp3.1 | 930ns | 1.45ns | 5.23ns | 0.00935 | 0 | 0 | 696 B |
master | RunOnMethodBegin |
net472 | 1.13μs | 2.19ns | 8.49ns | 0.104 | 0 | 0 | 658 B |
#6301 | RunOnMethodBegin |
net6.0 | 649ns | 0.815ns | 3.16ns | 0.00969 | 0 | 0 | 696 B |
#6301 | RunOnMethodBegin |
netcoreapp3.1 | 878ns | 1.13ns | 4.38ns | 0.00941 | 0 | 0 | 696 B |
#6301 | RunOnMethodBegin |
net472 | 1.08μs | 2.15ns | 8.33ns | 0.104 | 0 | 0 | 658 B |
cedf2e0
to
59958ab
Compare
968a5f1
to
8e19154
Compare
Summary of changes
Use
libdatadog
shared library instead of static link against it.Reason for change
Tracer is going to use the Rust crate
datapipeline
to send their traces and so. This C API for datapipeline will be part of thelibdatadog
shared file.Since we cannot static link the profiler and the tracer against libdatadog (two Rust runtimes in the same process would bring hell), we need to use the dynamic library (Linux
sofile
and Windowsdll
).This PR is a first step: Having profiler using the shared library and ensuring that it works.
Implementation details
libdatadog
14.2.0 (nuget package contains only the dynamic libraries. The static lib is in another nuget packagelibdatadog-static
. This was done due to size restriction by NuGet.org. NuGet package must be less 250MB).RPATH
in the ELF to instruct the dynamic loader where to look for libdatadog dynamic library.FindLibDatadog.cmake
to copy libdatadog sofile in the output of the cmake libraryLoadLibraryEx
in the Native loader to instruct the dynamic loader where to look for libdatadog dynamic library.Test coverage
Other details