Skip to content

Conversation

@lucaspimentel
Copy link
Member

@lucaspimentel lucaspimentel commented Oct 3, 2025

Summary

Adds DD_AGENT_FEATURE_POLLING_ENABLED environment variable (default: true) to allow disabling the agent discovery service. When disabled, the tracer uses NullDiscoveryService instead of querying the agent for available endpoints.

Motivation

In certain environments, such as Azure Functions with the Rust agent, the discovery endpoint is not available. Currently, the tracer always attempts to query the discovery service, which results in unnecessary network calls and potential errors in these scenarios.

Changes

  • Added DD_AGENT_FEATURE_POLLING_ENABLED configuration key to ConfigurationKeys.cs
  • Added AgentFeaturePollingEnabled property to TracerSettings (defaults to true)
  • Updated TracerManagerFactory.GetDiscoveryService() to return NullDiscoveryService.Instance when disabled
  • Changed GetDiscoveryService() visibility from protected to internal virtual for consistency with override in TestOptimizationTracerManagerFactory
  • Added unit test DiscoveryServiceCanBeDisabled to verify both enabled and disabled states

Test Plan

  • Unit test verifies setting is read correctly
  • Unit test verifies DiscoveryService is returned when enabled
  • Unit test verifies NullDiscoveryService.Instance is returned when disabled
  • Manual testing in Azure Functions environment with Rust agent

🤖 Generated with Claude Code

@datadog-datadog-prod-us1

This comment has been minimized.

@dd-trace-dotnet-ci-bot
Copy link

dd-trace-dotnet-ci-bot bot commented Oct 3, 2025

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.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7616) - mean (72ms)  : 71, 73
     .   : milestone, 72,
    master - mean (75ms)  : 74, 76
     .   : milestone, 75,

    section Baseline
    This PR (7616) - mean (69ms)  : 67, 70
     .   : milestone, 69,
    master - mean (71ms)  : 69, 73
     .   : milestone, 71,

    section CallTarget+Inlining+NGEN
    This PR (7616) - mean (1,045ms)  : 1002, 1087
     .   : milestone, 1045,
    master - mean (1,069ms)  : 1007, 1131
     .   : milestone, 1069,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7616) - mean (107ms)  : 106, 108
     .   : milestone, 107,
    master - mean (112ms)  : 109, 114
     .   : milestone, 112,

    section Baseline
    This PR (7616) - mean (106ms)  : 103, 108
     .   : milestone, 106,
    master - mean (111ms)  : 108, 113
     .   : milestone, 111,

    section CallTarget+Inlining+NGEN
    This PR (7616) - mean (744ms)  : 726, 762
     .   : milestone, 744,
    master - mean (761ms)  : 735, 788
     .   : milestone, 761,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7616) - mean (94ms)  : 93, 96
     .   : milestone, 94,
    master - mean (103ms)  : 101, 105
     .   : milestone, 103,

    section Baseline
    This PR (7616) - mean (95ms)  : 93, 96
     .   : milestone, 95,
    master - mean (100ms)  : 96, 104
     .   : milestone, 100,

    section CallTarget+Inlining+NGEN
    This PR (7616) - mean (706ms)  : 677, 735
     .   : milestone, 706,
    master - mean (721ms)  : 681, 761
     .   : milestone, 721,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7616) - mean (93ms)  : 92, 95
     .   : milestone, 93,
    master - mean (98ms)  : 96, 101
     .   : milestone, 98,

    section Baseline
    This PR (7616) - mean (92ms)  : 90, 94
     .   : milestone, 92,
    master - mean (97ms)  : 94, 100
     .   : milestone, 97,

    section CallTarget+Inlining+NGEN
    This PR (7616) - mean (662ms)  : 643, 681
     .   : milestone, 662,
    master - mean (679ms)  : 664, 693
     .   : milestone, 679,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7616) - mean (197ms)  : 194, 200
     .   : milestone, 197,
    master - mean (197ms)  : 194, 200
     .   : milestone, 197,

    section Baseline
    This PR (7616) - mean (193ms)  : 190, 196
     .   : milestone, 193,
    master - mean (194ms)  : 190, 197
     .   : milestone, 194,

    section CallTarget+Inlining+NGEN
    This PR (7616) - mean (1,164ms)  : 1107, 1221
     .   : milestone, 1164,
    master - mean (1,166ms)  : 1111, 1220
     .   : milestone, 1166,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7616) - mean (277ms)  : 274, 279
     .   : milestone, 277,
    master - mean (278ms)  : 274, 281
     .   : milestone, 278,

    section Baseline
    This PR (7616) - mean (277ms)  : 272, 281
     .   : milestone, 277,
    master - mean (278ms)  : 273, 283
     .   : milestone, 278,

    section CallTarget+Inlining+NGEN
    This PR (7616) - mean (947ms)  : 900, 994
     .   : milestone, 947,
    master - mean (947ms)  : 898, 996
     .   : milestone, 947,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7616) - mean (270ms)  : 267, 273
     .   : milestone, 270,
    master - mean (271ms)  : 268, 274
     .   : milestone, 271,

    section Baseline
    This PR (7616) - mean (269ms)  : 265, 273
     .   : milestone, 269,
    master - mean (272ms)  : 266, 278
     .   : milestone, 272,

    section CallTarget+Inlining+NGEN
    This PR (7616) - mean (934ms)  : 882, 987
     .   : milestone, 934,
    master - mean (935ms)  : 873, 996
     .   : milestone, 935,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7616) - mean (270ms)  : 266, 273
     .   : milestone, 270,
    master - mean (271ms)  : 266, 276
     .   : milestone, 271,

    section Baseline
    This PR (7616) - mean (269ms)  : 265, 273
     .   : milestone, 269,
    master - mean (269ms)  : 265, 274
     .   : milestone, 269,

    section CallTarget+Inlining+NGEN
    This PR (7616) - mean (855ms)  : 829, 882
     .   : milestone, 855,
    master - mean (861ms)  : 836, 886
     .   : milestone, 861,

Loading

@lucaspimentel lucaspimentel marked this pull request as ready for review October 3, 2025 22:13
@lucaspimentel lucaspimentel requested review from a team as code owners October 3, 2025 22:13
@lucaspimentel lucaspimentel changed the title Add configuration option to disable agent discovery service [config] Add DD_DISCOVERY_SERVICE_ENABLED to disable agent discovery service Oct 8, 2025
@lucaspimentel lucaspimentel changed the title [config] Add DD_DISCOVERY_SERVICE_ENABLED to disable agent discovery service [config] Add DD_DISCOVERY_SERVICE_ENABLED setting Oct 9, 2025
@lucaspimentel lucaspimentel force-pushed the lpimentel/disable-discovery-service branch from 7ac24dd to 252a234 Compare October 10, 2025 19:23
@lucaspimentel
Copy link
Member Author

lucaspimentel commented Oct 20, 2025

dd-trace-java went with DD_TRACE_SERVICE_DISCOVERY_ENABLED.
See DataDog/dd-trace-java#9705.

Sorry, different feature. "Service discovery" vs "discovery service". I changed the name to DD_AGENT_FEATURE_POLLING_ENABLED to avoid confusion.

@mcculls
Copy link

mcculls commented Oct 21, 2025

dd-trace-java went with DD_TRACE_SERVICE_DISCOVERY_ENABLED.
See DataDog/dd-trace-java#9705.

we can change it to DD_SERVICE_DISCOVERY_ENABLED in dd-trace-java if we want to align on that name

@lucaspimentel lucaspimentel force-pushed the lpimentel/disable-discovery-service branch from 5ab8f99 to 2fbfdd1 Compare October 21, 2025 17:58
@pr-commenter
Copy link

pr-commenter bot commented Oct 21, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7616 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.120
  • 3 benchmarks are slower, with geometric mean 1.398
  • 5 benchmarks have fewer allocations
  • 6 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 ✔️ More allocations ⚠️

More allocations ⚠️ in #7616

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 5.99 KB 6.05 KB 63 B 1.05%
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 5.68 KB 5.72 KB 35 B 0.62%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.8μs 58ns 343ns 0 0 0 5.51 KB
master StartStopWithChild netcoreapp3.1 14.1μs 26.9ns 104ns 0 0 0 5.68 KB
master StartStopWithChild net472 22.5μs 118ns 625ns 1.04 0.415 0.104 5.99 KB
#7616 StartStopWithChild net6.0 11μs 57.2ns 280ns 0 0 0 5.51 KB
#7616 StartStopWithChild netcoreapp3.1 13.9μs 73.4ns 382ns 0 0 0 5.72 KB
#7616 StartStopWithChild net472 21.7μs 114ns 766ns 0.994 0.331 0.11 6.05 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 940μs 73.2ns 253ns 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 180ns 673ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.19ms 133ns 459ns 0 0 0 3.31 KB
#7616 WriteAndFlushEnrichedTraces net6.0 942μs 97.6ns 365ns 0 0 0 2.71 KB
#7616 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 235ns 909ns 0 0 0 2.7 KB
#7616 WriteAndFlushEnrichedTraces net472 1.22ms 242ns 936ns 0 0 0 3.31 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Unknown 🤷 Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleSimpleBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleSimpleBody net472 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleMoreComplexBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleMoreComplexBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master AllCycleMoreComplexBody net472 N/A N/A N/A NaN NaN NaN 0 b
master ObjectExtractorSimpleBody net6.0 323ns 1.67ns 8.36ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 403ns 0.182ns 0.703ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 295ns 0.0707ns 0.245ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.38μs 29.5ns 118ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.72μs 20.7ns 80ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.71μs 1.47ns 5.68ns 0.602 0 0 3.8 KB
#7616 AllCycleSimpleBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
#7616 AllCycleSimpleBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#7616 AllCycleSimpleBody net472 N/A N/A N/A NaN NaN NaN 0 b
#7616 AllCycleMoreComplexBody net6.0 N/A N/A N/A NaN NaN NaN 0 b
#7616 AllCycleMoreComplexBody netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#7616 AllCycleMoreComplexBody net472 N/A N/A N/A NaN NaN NaN 0 b
#7616 ObjectExtractorSimpleBody net6.0 321ns 1.81ns 11.6ns 0 0 0 280 B
#7616 ObjectExtractorSimpleBody netcoreapp3.1 397ns 2.17ns 12.1ns 0 0 0 272 B
#7616 ObjectExtractorSimpleBody net472 296ns 0.0434ns 0.168ns 0.0433 0 0 281 B
#7616 ObjectExtractorMoreComplexBody net6.0 6.33μs 4.2ns 14.6ns 0 0 0 3.78 KB
#7616 ObjectExtractorMoreComplexBody netcoreapp3.1 7.78μs 39.5ns 185ns 0 0 0 3.69 KB
#7616 ObjectExtractorMoreComplexBody net472 6.78μs 2.68ns 10ns 0.574 0 0 3.8 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 78.8μs 370ns 1.48μs 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 98.2μs 50.8ns 190ns 0 0 0 32.4 KB
master EncodeArgs net472 112μs 4.51ns 17.5ns 5.04 0 0 32.51 KB
master EncodeLegacyArgs net6.0 141μs 23.7ns 85.4ns 0 0 0 2.15 KB
master EncodeLegacyArgs netcoreapp3.1 199μs 549ns 2.13μs 0 0 0 2.15 KB
master EncodeLegacyArgs net472 264μs 35.9ns 129ns 0 0 0 2.16 KB
#7616 EncodeArgs net6.0 76.7μs 141ns 510ns 0 0 0 32.4 KB
#7616 EncodeArgs netcoreapp3.1 96.5μs 237ns 917ns 0 0 0 32.4 KB
#7616 EncodeArgs net472 109μs 22.9ns 88.7ns 4.89 0 0 32.51 KB
#7616 EncodeLegacyArgs net6.0 143μs 56.2ns 210ns 0 0 0 2.15 KB
#7616 EncodeLegacyArgs netcoreapp3.1 201μs 756ns 2.93μs 0 0 0 2.14 KB
#7616 EncodeLegacyArgs net472 261μs 19.9ns 69ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #7616

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑netcoreapp3.1 2.082 415,632.71 865,451.29

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 391μs 38.2ns 148ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 416μs 57.8ns 208ns 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 429μs 39.6ns 153ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 289μs 32.8ns 127ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 699μs 9.43μs 94.3μs 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 310μs 31.6ns 114ns 0 0 0 2.29 KB
#7616 RunWafRealisticBenchmark net6.0 397μs 148ns 535ns 0 0 0 4.55 KB
#7616 RunWafRealisticBenchmark netcoreapp3.1 813μs 14.1μs 140μs 0 0 0 4.48 KB
#7616 RunWafRealisticBenchmark net472 428μs 33.6ns 121ns 0 0 0 4.66 KB
#7616 RunWafRealisticBenchmarkWithAttack net6.0 292μs 46.1ns 179ns 0 0 0 2.24 KB
#7616 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 676μs 14.1μs 141μs 0 0 0 2.22 KB
#7616 RunWafRealisticBenchmarkWithAttack net472 309μs 27.9ns 105ns 0 0 0 2.29 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7616

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.AspNetCoreBenchmark.SendRequest‑net6.0 14.67 KB 14.52 KB -149 B -1.02%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 61.6μs 82.4ns 308ns 0 0 0 14.67 KB
master SendRequest netcoreapp3.1 72μs 105ns 555ns 0 0 0 17.42 KB
master SendRequest net472 0.00434ns 0.00176ns 0.00684ns 0 0 0 0 b
#7616 SendRequest net6.0 60.1μs 49.3ns 191ns 0 0 0 14.52 KB
#7616 SendRequest netcoreapp3.1 71.7μs 200ns 747ns 0 0 0 17.42 KB
#7616 SendRequest net472 0.0069ns 0.00224ns 0.00866ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #7616

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1 1.160 817,014.17 947,647.77

More allocations ⚠️ in #7616

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑netcoreapp3.1 1 B 2 B 1 B 100.00%

Fewer allocations 🎉 in #7616

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 4 B 3 B -1 B -25.00%
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 7 B 4 B -3 B -42.86%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 1.9ms 429ns 1.66μs 0 0 0 640.01 KB
master OriginalCharSlice netcoreapp3.1 2.13ms 7.72μs 29.9μs 0 0 0 640 KB
master OriginalCharSlice net472 2.67ms 137ns 531ns 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.46ms 282ns 1.09μs 0 0 0 7 B
master OptimizedCharSlice netcoreapp3.1 1.67ms 407ns 1.58μs 0 0 0 1 B
master OptimizedCharSlice net472 1.97ms 302ns 1.13μs 0 0 0 73 B
master OptimizedCharSliceWithPool net6.0 854μs 31.1ns 120ns 0 0 0 4 B
master OptimizedCharSliceWithPool netcoreapp3.1 817μs 191ns 741ns 0 0 0 0 b
master OptimizedCharSliceWithPool net472 1.14ms 138ns 515ns 0 0 0 47 B
#7616 OriginalCharSlice net6.0 1.89ms 4.58μs 17.7μs 0 0 0 640 KB
#7616 OriginalCharSlice netcoreapp3.1 2.13ms 10.3μs 41.2μs 0 0 0 640 KB
#7616 OriginalCharSlice net472 2.64ms 145ns 543ns 100 0 0 641.95 KB
#7616 OptimizedCharSlice net6.0 1.36ms 337ns 1.26μs 0 0 0 4 B
#7616 OptimizedCharSlice netcoreapp3.1 1.76ms 956ns 3.7μs 0 0 0 2 B
#7616 OptimizedCharSlice net472 1.9ms 192ns 745ns 0 0 0 73 B
#7616 OptimizedCharSliceWithPool net6.0 902μs 168ns 652ns 0 0 0 3 B
#7616 OptimizedCharSliceWithPool netcoreapp3.1 948μs 196ns 706ns 0 0 0 0 b
#7616 OptimizedCharSliceWithPool net472 1.13ms 83ns 321ns 0 0 0 47 B
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7616

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 55.74 KB 56.32 KB 583 B 1.05%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 705μs 3.45μs 15.4μs 0 0 0 41.62 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 685μs 1.24μs 4.48μs 0 0 0 41.82 KB
master WriteAndFlushEnrichedTraces net472 917μs 3.85μs 14.4μs 4.46 0 0 55.74 KB
#7616 WriteAndFlushEnrichedTraces net6.0 650μs 2.12μs 8.22μs 0 0 0 41.71 KB
#7616 WriteAndFlushEnrichedTraces netcoreapp3.1 709μs 3.46μs 15.1μs 0 0 0 42.03 KB
#7616 WriteAndFlushEnrichedTraces net472 968μs 5.55μs 42.7μs 8.93 0 0 56.32 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.87μs 9.22ns 40.2ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.67μs 7.53ns 29.2ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.8μs 2.81ns 10.5ns 0.154 0.014 0 987 B
#7616 ExecuteNonQuery net6.0 1.91μs 0.856ns 3.31ns 0 0 0 1.02 KB
#7616 ExecuteNonQuery netcoreapp3.1 2.66μs 2.59ns 9.71ns 0 0 0 1.02 KB
#7616 ExecuteNonQuery net472 2.83μs 3.62ns 14ns 0.155 0.0141 0 987 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.74μs 7.82ns 30.3ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.29μs 10.6ns 42.3ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.52μs 1.56ns 5.4ns 0.161 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.77μs 1.35ns 5.24ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.37μs 9.76ns 37.8ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.64μs 1.32ns 4.77ns 0.165 0 0 1.1 KB
#7616 CallElasticsearch net6.0 1.74μs 1.28ns 4.95ns 0 0 0 1.03 KB
#7616 CallElasticsearch netcoreapp3.1 2.19μs 7.86ns 30.4ns 0 0 0 1.03 KB
#7616 CallElasticsearch net472 3.58μs 4.93ns 19.1ns 0.161 0 0 1.04 KB
#7616 CallElasticsearchAsync net6.0 1.85μs 7.87ns 30.5ns 0 0 0 1.01 KB
#7616 CallElasticsearchAsync netcoreapp3.1 2.33μs 4.64ns 18ns 0 0 0 1.08 KB
#7616 CallElasticsearchAsync net472 3.77μs 5.97ns 23.1ns 0.17 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.89μs 5.38ns 20.8ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.5μs 11ns 42.7ns 0 0 0 952 B
master ExecuteAsync net472 2.7μs 2.11ns 8.18ns 0.134 0 0 915 B
#7616 ExecuteAsync net6.0 1.9μs 9.4ns 42.1ns 0 0 0 952 B
#7616 ExecuteAsync netcoreapp3.1 2.44μs 8.87ns 34.3ns 0 0 0 952 B
#7616 ExecuteAsync net472 2.56μs 3.53ns 13.7ns 0.142 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 6.8μs 13ns 48.6ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.83μs 16.2ns 60.6ns 0 0 0 2.9 KB
master SendAsync net472 12.3μs 7.04ns 27.3ns 0.49 0 0 3.18 KB
#7616 SendAsync net6.0 6.84μs 6.52ns 24.4ns 0 0 0 2.36 KB
#7616 SendAsync netcoreapp3.1 8.46μs 10.3ns 39.9ns 0 0 0 2.9 KB
#7616 SendAsync net472 12.4μs 8.46ns 32.8ns 0.496 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Faster 🎉 More allocations ⚠️

Faster 🎉 in #7616

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 1.120 525,000.00 468,800.00

More allocations ⚠️ in #7616

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 257.21 KB 276.94 KB 19.73 KB 7.67%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 278.53 KB 286.72 KB 8.19 KB 2.94%

Fewer allocations 🎉 in #7616

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 279.54 KB 275.98 KB -3.56 KB -1.27%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 87.84 KB 42.78 KB -45.06 KB -51.29%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 41.1μs 185ns 963ns 0 0 0 43.1 KB
master StringConcatBenchmark netcoreapp3.1 49.8μs 288ns 2.69μs 0 0 0 87.84 KB
master StringConcatBenchmark net472 57.2μs 156ns 564ns 0 0 0 65.54 KB
master StringConcatAspectBenchmark net6.0 528μs 2.16μs 7.8μs 0 0 0 279.54 KB
master StringConcatAspectBenchmark netcoreapp3.1 485μs 1.63μs 5.88μs 0 0 0 257.21 KB
master StringConcatAspectBenchmark net472 406μs 2.15μs 11.6μs 0 0 0 278.53 KB
#7616 StringConcatBenchmark net6.0 44.7μs 249ns 1.43μs 0 0 0 43.1 KB
#7616 StringConcatBenchmark netcoreapp3.1 50.2μs 327ns 3.1μs 0 0 0 42.78 KB
#7616 StringConcatBenchmark net472 57.3μs 247ns 923ns 0 0 0 65.54 KB
#7616 StringConcatAspectBenchmark net6.0 470μs 2.1μs 7.58μs 0 0 0 275.98 KB
#7616 StringConcatAspectBenchmark netcoreapp3.1 516μs 1.29μs 4.67μs 0 0 0 276.94 KB
#7616 StringConcatAspectBenchmark net472 405μs 2.17μs 11.3μs 0 0 0 286.72 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 2.6μs 13.5ns 66.4ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.61μs 12.4ns 48.2ns 0 0 0 1.7 KB
master EnrichedLog net472 3.86μs 4.71ns 18.3ns 0.25 0 0 1.64 KB
#7616 EnrichedLog net6.0 2.73μs 11.7ns 45.4ns 0 0 0 1.7 KB
#7616 EnrichedLog netcoreapp3.1 3.62μs 17.5ns 72.1ns 0 0 0 1.7 KB
#7616 EnrichedLog net472 4.07μs 3.47ns 13ns 0.243 0 0 1.64 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 123μs 65ns 243ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 129μs 525ns 1.89μs 0 0 0 4.31 KB
master EnrichedLog net472 167μs 60.3ns 233ns 0 0 0 4.52 KB
#7616 EnrichedLog net6.0 122μs 34.7ns 120ns 0 0 0 4.31 KB
#7616 EnrichedLog netcoreapp3.1 126μs 35.2ns 122ns 0 0 0 4.31 KB
#7616 EnrichedLog net472 181μs 102ns 394ns 0 0 0 4.51 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 4.99μs 8.55ns 33.1ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.71μs 26.1ns 101ns 0 0 0 2.26 KB
master EnrichedLog net472 7.61μs 9.36ns 36.3ns 0.305 0 0 2.08 KB
#7616 EnrichedLog net6.0 5.03μs 23ns 89ns 0 0 0 2.26 KB
#7616 EnrichedLog netcoreapp3.1 7.03μs 13ns 50.3ns 0 0 0 2.26 KB
#7616 EnrichedLog net472 7.84μs 8.38ns 32.4ns 0.313 0 0 2.08 KB
Benchmarks.Trace.RedisBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #7616

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.RedisBenchmark.SendReceive‑net6.0 1.130 1,942.59 2,196.07

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 1.94μs 1.54ns 5.35ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.75μs 3.57ns 13.8ns 0 0 0 1.2 KB
master SendReceive net472 3.14μs 1.07ns 3.72ns 0.189 0 0 1.2 KB
#7616 SendReceive net6.0 2.2μs 1.22ns 4.73ns 0 0 0 1.2 KB
#7616 SendReceive netcoreapp3.1 2.68μs 6.35ns 23.8ns 0 0 0 1.2 KB
#7616 SendReceive net472 3.09μs 2.45ns 9.47ns 0.185 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 4.33μs 5ns 18ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.66μs 12ns 46.6ns 0 0 0 1.63 KB
master EnrichedLog net472 6.57μs 7.75ns 30ns 0.295 0 0 2.03 KB
#7616 EnrichedLog net6.0 4.23μs 10.6ns 41ns 0 0 0 1.58 KB
#7616 EnrichedLog netcoreapp3.1 5.67μs 13.1ns 50.7ns 0 0 0 1.63 KB
#7616 EnrichedLog net472 6.46μs 6.44ns 24.9ns 0.322 0 0 2.03 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 net6.0 795ns 1.27ns 4.91ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 958ns 5.25ns 25.7ns 0 0 0 576 B
master StartFinishSpan net472 965ns 0.136ns 0.509ns 0.0912 0 0 578 B
master StartFinishScope net6.0 933ns 0.221ns 0.829ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.22μs 5.8ns 24.6ns 0 0 0 696 B
master StartFinishScope net472 1.15μs 0.24ns 0.93ns 0.104 0 0 658 B
#7616 StartFinishSpan net6.0 797ns 0.25ns 0.97ns 0 0 0 576 B
#7616 StartFinishSpan netcoreapp3.1 972ns 3.68ns 14.2ns 0 0 0 576 B
#7616 StartFinishSpan net472 956ns 0.0504ns 0.195ns 0.0877 0 0 578 B
#7616 StartFinishScope net6.0 970ns 5.16ns 23.1ns 0 0 0 696 B
#7616 StartFinishScope netcoreapp3.1 1.18μs 5.58ns 20.9ns 0 0 0 696 B
#7616 StartFinishScope net472 1.18μs 0.314ns 1.21ns 0.1 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 1.05μs 4.94ns 19.1ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.42μs 6.32ns 23.6ns 0 0 0 696 B
master RunOnMethodBegin net472 1.45μs 0.565ns 2.19ns 0.102 0 0 658 B
#7616 RunOnMethodBegin net6.0 1.06μs 3.73ns 13.5ns 0 0 0 696 B
#7616 RunOnMethodBegin netcoreapp3.1 1.4μs 7.18ns 33.7ns 0 0 0 697 B
#7616 RunOnMethodBegin net472 1.42μs 0.541ns 1.95ns 0.101 0 0 658 B

@lucaspimentel lucaspimentel changed the title [config] Add DD_DISCOVERY_SERVICE_ENABLED setting [config] Add DD_AGENT_FEATURE_POLLING_ENABLED setting Oct 22, 2025
@lucaspimentel lucaspimentel force-pushed the lpimentel/disable-discovery-service branch from 2fbfdd1 to c28a6f3 Compare October 23, 2025 22:48
@lucaspimentel lucaspimentel changed the title [config] Add DD_AGENT_FEATURE_POLLING_ENABLED setting Add DD_AGENT_FEATURE_POLLING_ENABLED setting Oct 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants