Skip to content

Update Aerospike integration to support 5.0.0#2639

Merged
andrewlock merged 6 commits into
masterfrom
andrew/aerospike-update
Apr 7, 2022
Merged

Update Aerospike integration to support 5.0.0#2639
andrewlock merged 6 commits into
masterfrom
andrew/aerospike-update

Conversation

@andrewlock

Copy link
Copy Markdown
Member

Summary of changes

  • Add support for Aerospike.Client v5.0.0
  • Bump other integration test versions
  • Add missing Microsoft.AspNetCore.Mvc.Core reference to IntegrationGroups

Reason for change

We want to support the latest versions of packages.

Implementation details

Aerospike.Client v5.0.0 drops support for net461 in favour of net472, however, as we currently only run the Aerospike tests on Linux, I've left the sample targeting the 4.x package by default, so we can still have the same degree of testing, without having to change any target frameworks.

The GeneratePackageVersions target needs to know in which NuGet packages each integration assembly can be found, otherwise it crashes. The Microsoft.AspNetCore.Mvc.Core dependency was added in #2495.

Test coverage

The usual, new version is tested on Linux against all netcore versions

Other details

Will supersede #2484 and #2634

@andrewlock andrewlock added type:enhancement Improvement to an existing feature area:automatic-instrumentation Automatic instrumentation managed C# code (Datadog.Trace.ClrProfiler.Managed) labels Apr 5, 2022
@andrewlock
andrewlock requested a review from a team as a code owner April 5, 2022 08:58
@andrewlock

This comment has been minimized.

@andrewlock
andrewlock force-pushed the andrew/aerospike-update branch from de3cf87 to ac944c4 Compare April 5, 2022 11:52
@andrewlock

This comment has been minimized.

@andrewlock

Copy link
Copy Markdown
Member Author

Benchmarks Report 🐌

Benchmarks for #2639 compared to master:

  • All benchmarks have the same speed
  • 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.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net472 909μs 2.98μs 11.5μs 0 0 0 3.16 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 693μs 2.59μs 9.7μs 0 0 0 2.57 KB
#2639 WriteAndFlushEnrichedTraces net472 916μs 3.19μs 11.5μs 0 0 0 3.16 KB
#2639 WriteAndFlushEnrichedTraces netcoreapp3.1 729μs 3.78μs 20μs 0 0 0 2.57 KB
Benchmarks.Trace.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 312ns 1.61ns 7.54ns 0.052 0 0 329 B
master AllCycleSimpleBody netcoreapp3.1 378ns 2.21ns 18.6ns 0.00451 0 0 328 B
master AllCycleMoreComplexBody net472 299ns 1.71ns 12.3ns 0.0482 0 0 305 B
master AllCycleMoreComplexBody netcoreapp3.1 371ns 2.11ns 14.6ns 0.00422 0 0 304 B
master BodyExtractorSimpleBody net472 423ns 1.73ns 7.13ns 0.057 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 433ns 2.11ns 8.45ns 0.00366 0 0 272 B
master BodyExtractorMoreComplexBody net472 24.1μs 80.5ns 301ns 1.18 0.0121 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 21μs 64.8ns 242ns 0.0935 0 0 6.75 KB
#2639 AllCycleSimpleBody net472 302ns 1.59ns 7.62ns 0.052 0 0 329 B
#2639 AllCycleSimpleBody netcoreapp3.1 370ns 1.59ns 5.96ns 0.00457 0 0 328 B
#2639 AllCycleMoreComplexBody net472 289ns 1.1ns 4.1ns 0.0482 0 0 305 B
#2639 AllCycleMoreComplexBody netcoreapp3.1 362ns 1.45ns 5.6ns 0.00416 0 0 304 B
#2639 BodyExtractorSimpleBody net472 432ns 2.19ns 11.4ns 0.057 0 0 361 B
#2639 BodyExtractorSimpleBody netcoreapp3.1 456ns 2.27ns 9.37ns 0.00377 0 0 272 B
#2639 BodyExtractorMoreComplexBody net472 24.7μs 94ns 364ns 1.18 0.0122 0 7.62 KB
#2639 BodyExtractorMoreComplexBody netcoreapp3.1 20.7μs 73.7ns 276ns 0.0842 0 0 6.75 KB
Benchmarks.Trace.AspNetCoreBenchmark - Unknown 🤷 Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 301μs 1.32μs 5.59μs 0.15 0 0 19.74 KB
#2639 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#2639 SendRequest netcoreapp3.1 304μs 1.4μs 5.62μs 0.145 0 0 19.74 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 net472 1.78μs 6.11ns 23.7ns 0.0936 0.000875 0 594 B
master ExecuteNonQuery netcoreapp3.1 1.52μs 7.34ns 29.4ns 0.00899 0 0 632 B
#2639 ExecuteNonQuery net472 1.81μs 8.89ns 36.7ns 0.0939 0.000903 0 594 B
#2639 ExecuteNonQuery netcoreapp3.1 1.46μs 4.34ns 16.2ns 0.00858 0 0 632 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 net472 2.73μs 14.8ns 83.9ns 0.126 0 0 802 B
master CallElasticsearch netcoreapp3.1 1.7μs 8.74ns 43.7ns 0.0109 0 0 792 B
master CallElasticsearchAsync net472 2.86μs 13.7ns 56.7ns 0.149 0 0 939 B
master CallElasticsearchAsync netcoreapp3.1 1.87μs 10.2ns 78.4ns 0.0126 0 0 912 B
#2639 CallElasticsearch net472 2.92μs 16.3ns 106ns 0.125 0 0 802 B
#2639 CallElasticsearch netcoreapp3.1 1.77μs 9.83ns 62.2ns 0.0107 0 0 792 B
#2639 CallElasticsearchAsync net472 2.96μs 13.7ns 53.2ns 0.149 0 0 939 B
#2639 CallElasticsearchAsync netcoreapp3.1 1.85μs 6.95ns 26ns 0.0124 0 0 912 B
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 3.19μs 8.43ns 30.4ns 0.168 0.0016 0 1.06 KB
master ExecuteAsync netcoreapp3.1 1.98μs 5.06ns 19.6ns 0.0138 0 0 1.03 KB
#2639 ExecuteAsync net472 3μs 13.2ns 56.2ns 0.167 0.00149 0 1.06 KB
#2639 ExecuteAsync netcoreapp3.1 2.13μs 9.37ns 36.3ns 0.0138 0 0 1.03 KB
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net472 6.78μs 25ns 96.9ns 0.361 0 0 2.28 KB
master SendAsync netcoreapp3.1 4.84μs 19.8ns 76.8ns 0.0313 0 0 2.21 KB
#2639 SendAsync net472 6.73μs 30.2ns 109ns 0.361 0 0 2.28 KB
#2639 SendAsync netcoreapp3.1 4.73μs 16.8ns 65ns 0.0304 0 0 2.21 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 net472 3.44μs 12.7ns 47.4ns 0.228 0 0 1.45 KB
master EnrichedLog netcoreapp3.1 3.25μs 12.9ns 51.6ns 0.0207 0 0 1.53 KB
#2639 EnrichedLog net472 3.4μs 10ns 34.7ns 0.227 0 0 1.45 KB
#2639 EnrichedLog netcoreapp3.1 3.14μs 17.1ns 96.8ns 0.0214 0 0 1.53 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 net472 295μs 1.24μs 4.3μs 0.443 0.148 0 4.33 KB
master EnrichedLog netcoreapp3.1 243μs 1.4μs 10.7μs 0 0 0 4.21 KB
#2639 EnrichedLog net472 291μs 1.13μs 4.21μs 0.431 0.144 0 4.33 KB
#2639 EnrichedLog netcoreapp3.1 230μs 1.02μs 3.96μs 0 0 0 4.21 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 net472 7.96μs 39.5ns 167ns 0.506 0 0 3.23 KB
master EnrichedLog netcoreapp3.1 6.59μs 37.9ns 310ns 0.0502 0 0 3.6 KB
#2639 EnrichedLog net472 8.32μs 36.3ns 136ns 0.505 0 0 3.23 KB
#2639 EnrichedLog netcoreapp3.1 6.4μs 34.4ns 215ns 0.051 0 0 3.6 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 net472 2.48μs 12.6ns 57.7ns 0.16 0 0 1.01 KB
master SendReceive netcoreapp3.1 2.1μs 9.95ns 41ns 0.0138 0 0 1.01 KB
#2639 SendReceive net472 2.44μs 13.3ns 71.5ns 0.161 0.0012 0 1.01 KB
#2639 SendReceive netcoreapp3.1 2.04μs 7.36ns 27.5ns 0.0138 0 0 1.01 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 net472 6.06μs 26.4ns 98.9ns 0.29 0 0 1.87 KB
master EnrichedLog netcoreapp3.1 5.07μs 22.4ns 86.8ns 0.0202 0 0 1.49 KB
#2639 EnrichedLog net472 6.11μs 29.2ns 117ns 0.291 0 0 1.87 KB
#2639 EnrichedLog netcoreapp3.1 5.38μs 22.3ns 86.4ns 0.0187 0 0 1.49 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 net472 900ns 3.4ns 13.6ns 0.0719 0 0 457 B
master StartFinishSpan netcoreapp3.1 879ns 2.83ns 10.6ns 0.00601 0 0 456 B
master StartFinishScope net472 1.11μs 3.98ns 14.9ns 0.0841 0 0 538 B
master StartFinishScope netcoreapp3.1 1.04μs 5ns 19.4ns 0.00768 0 0 576 B
#2639 StartFinishSpan net472 916ns 3.55ns 13.7ns 0.0716 0 0 457 B
#2639 StartFinishSpan netcoreapp3.1 878ns 3.24ns 12.5ns 0.00606 0 0 456 B
#2639 StartFinishScope net472 1.15μs 4.97ns 18.6ns 0.0845 0 0 538 B
#2639 StartFinishScope netcoreapp3.1 1.07μs 4.94ns 19.1ns 0.00781 0 0 576 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 net472 1.29μs 5.91ns 21.3ns 0.084 0 0 538 B
master RunOnMethodBegin netcoreapp3.1 1.16μs 5.9ns 28.3ns 0.00817 0 0 576 B
#2639 RunOnMethodBegin net472 1.31μs 6.02ns 23.3ns 0.0839 0 0 538 B
#2639 RunOnMethodBegin netcoreapp3.1 1.17μs 3.69ns 14.3ns 0.00805 0 0 576 B

@andrewlock
andrewlock force-pushed the andrew/aerospike-update branch from 3138fd3 to 5821937 Compare April 7, 2022 10:49
@andrewlock
andrewlock force-pushed the andrew/aerospike-update branch from 5821937 to 5498d63 Compare April 7, 2022 10:54
@andrewlock
andrewlock merged commit a001c88 into master Apr 7, 2022
@andrewlock
andrewlock deleted the andrew/aerospike-update branch April 7, 2022 12:13
@github-actions github-actions Bot added this to the vNext milestone Apr 7, 2022
@andrewlock

Copy link
Copy Markdown
Member Author

Code Coverage Report 📊

✔️ Merging #2639 into master will not change line coverage
✔️ Merging #2639 into master will not change branch coverage
✔️ Merging #2639 into master will not change complexity

master #2639 Change
Lines 13480 / 18464 13490 / 18464
Lines % 73% 73% 0% ✔️
Branches 7798 / 11017 7801 / 11017
Branches % 71% 71% 0% ✔️
Complexity 12307 12307 0 ✔️

View the full report for further details:

Datadog.Trace Breakdown ✔️

master #2639 Change
Lines % 73% 73% 0% ✔️
Branches % 71% 71% 0% ✔️
Complexity 12307 12307 0 ✔️

The following classes have significant coverage changes.

File Line coverage change Branch coverage change Complexity change
Datadog.Trace.Telemetry.JsonHttpClientTelemetryTransport 26% ✔️ 38% ✔️ 0 ✔️

View the full reports for further details:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:automatic-instrumentation Automatic instrumentation managed C# code (Datadog.Trace.ClrProfiler.Managed) type:enhancement Improvement to an existing feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants