Skip to content

[ASM] Added more traces to waf init#6982

Closed
daniel-romano-DD wants to merge 12 commits into
masterfrom
dani/asm/waf_init_traces
Closed

[ASM] Added more traces to waf init#6982
daniel-romano-DD wants to merge 12 commits into
masterfrom
dani/asm/waf_init_traces

Conversation

@daniel-romano-DD

Copy link
Copy Markdown
Contributor

Summary of changes

Added error traces to GetDelegateForNativeFunction

Reason for change

Try to diagnose a random exception in arm64

Implementation details

Test coverage

Other details

@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented May 16, 2025

Copy link
Copy Markdown

Datadog Report

Branch report: dani/asm/waf_init_traces
Commit report: f2bcaae
Test service: dd-trace-dotnet

❌ 2931 Failed (1 Known Flaky), 169084 Passed, 2187 Skipped, 17h 36m 24.05s Total Time

❌ Failed Tests (2931)

This report shows up to 5 failed tests.

  • TestApiSecurityScan - Datadog.Trace.Security.IntegrationTests.ApiSecurity.AspNetCore5ApiSecurityDisabled - Details

    Expand for error
     Results do not match.
     Differences:
     Received: Security.ApiSecurity.AspNetCore5.ApiSecOff.__url=_dataapi_model_body={-property_expectedStatusCode=Forbidden_containsAttack=True.received.txt
     Verified: Security.ApiSecurity.AspNetCore5.ApiSecOff.__url=_dataapi_model_body={-property_expectedStatusCode=Forbidden_containsAttack=True.verified.txt
     Compare Result:
       [
         {
           TraceId: Id_1,
           SpanId: Id_2,
           Name: aspnet_core_mvc.request,
     ...
    
  • TestApiSecurityScan - Datadog.Trace.Security.IntegrationTests.ApiSecurity.AspNetCore5ApiSecurityDisabled - Details

    Expand for error
     Results do not match.
     Differences:
     Received: Security.ApiSecurity.AspNetCore5.ApiSecOff.__url=_dataapi_empty-model_body={-property_expectedStatusCode=NoContent_containsAttack=False.received.txt
     Verified: Security.ApiSecurity.AspNetCore5.ApiSecOff.__url=_dataapi_empty-model_body={-property_expectedStatusCode=NoContent_containsAttack=False.verified.txt
     Compare Result:
       [
         {
           TraceId: Id_1,
           SpanId: Id_2,
           Name: aspnet_core_mvc.request,
     ...
    
  • TestApiSecurityScan - Datadog.Trace.Security.IntegrationTests.ApiSecurity.AspNetCore5ApiSecurityDisabled - Details

    Expand for error
     Results do not match.
     Differences:
     Received: Security.ApiSecurity.AspNetCore5.ApiSecOff.__url=_dataapi_empty-model_body={-property_expectedStatusCode=NoContent_containsAttack=False.received.txt
     Verified: Security.ApiSecurity.AspNetCore5.ApiSecOff.__url=_dataapi_empty-model_body={-property_expectedStatusCode=NoContent_containsAttack=False.verified.txt
     Compare Result:
       [
         {
           TraceId: Id_1,
           SpanId: Id_2,
           Name: aspnet_core_mvc.request,
     ...
    
  • TestApiSecurityScan - Datadog.Trace.Security.IntegrationTests.ApiSecurity.AspNetCore5ApiSecurityDisabled - Details

    Expand for error
     Results do not match.
     Differences:
     Received: Security.ApiSecurity.AspNetCore5.ApiSecOff.__url=_dataapi_model_body={-property_expectedStatusCode=OK_containsAttack=False.received.txt
     Verified: Security.ApiSecurity.AspNetCore5.ApiSecOff.__url=_dataapi_model_body={-property_expectedStatusCode=OK_containsAttack=False.verified.txt
     Compare Result:
       [
         {
           TraceId: Id_1,
           SpanId: Id_2,
           Name: aspnet_core_mvc.request,
     ...
    
  • TestApiSecurityScan - Datadog.Trace.Security.IntegrationTests.ApiSecurity.AspNetCore5ApiSecurityDisabled - Details

    Expand for error
     Results do not match.
     Differences:
     Received: Security.ApiSecurity.AspNetCore5.ApiSecOff.__url=_dataapi_model_body={-property_expectedStatusCode=Forbidden_containsAttack=True.received.txt
     Verified: Security.ApiSecurity.AspNetCore5.ApiSecOff.__url=_dataapi_model_body={-property_expectedStatusCode=Forbidden_containsAttack=True.verified.txt
     Compare Result:
       [
         {
           TraceId: Id_1,
           SpanId: Id_2,
           Name: aspnet_core_mvc.request,
     ...
    

@andrewlock

andrewlock commented May 16, 2025

Copy link
Copy Markdown
Member

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 Baseline
    This PR (6982) - mean (68ms)  : 65, 71
     .   : milestone, 68,
    master - mean (68ms)  : 65, 70
     .   : milestone, 68,

    section CallTarget+Inlining+NGEN
    This PR (6982) - mean (1,003ms)  : 978, 1029
     .   : milestone, 1003,
    master - mean (1,003ms)  : 976, 1030
     .   : milestone, 1003,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6982) - mean (103ms)  : 99, 107
     .   : milestone, 103,
    master - mean (102ms)  : 100, 104
     .   : milestone, 102,

    section CallTarget+Inlining+NGEN
    This PR (6982) - mean (689ms)  : 670, 708
     .   : milestone, 689,
    master - mean (695ms)  : 678, 712
     .   : milestone, 695,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6982) - mean (89ms)  : 87, 91
     .   : milestone, 89,
    master - mean (89ms)  : 87, 91
     .   : milestone, 89,

    section CallTarget+Inlining+NGEN
    This PR (6982) - mean (653ms)  : 629, 676
     .   : milestone, 653,
    master - mean (654ms)  : 634, 673
     .   : milestone, 654,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6982) - mean (190ms)  : 185, 195
     .   : milestone, 190,
    master - mean (190ms)  : 186, 193
     .   : milestone, 190,

    section CallTarget+Inlining+NGEN
    This PR (6982) - mean (1,111ms)  : 1083, 1140
     .   : milestone, 1111,
    master - mean (1,113ms)  : 1087, 1140
     .   : milestone, 1113,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6982) - mean (269ms)  : 265, 272
     .   : milestone, 269,
    master - mean (269ms)  : 266, 272
     .   : milestone, 269,

    section CallTarget+Inlining+NGEN
    This PR (6982) - mean (875ms)  : 847, 903
     .   : milestone, 875,
    master - mean (878ms)  : 849, 906
     .   : milestone, 878,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6982) - mean (262ms)  : 259, 266
     .   : milestone, 262,
    master - mean (261ms)  : 258, 264
     .   : milestone, 261,

    section CallTarget+Inlining+NGEN
    This PR (6982) - mean (865ms)  : 830, 900
     .   : milestone, 865,
    master - mean (866ms)  : 832, 900
     .   : milestone, 866,

Loading

@pr-commenter

pr-commenter Bot commented May 16, 2025

Copy link
Copy Markdown

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #6982 compared to master:

  • All benchmarks have the same speed
  • 6 benchmarks have fewer allocations
  • 4 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 #6982

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 5.69 KB 5.73 KB 39 B 0.69%

Fewer allocations 🎉 in #6982

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net6.0 5.56 KB 5.54 KB -28 B -0.50%
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.18 KB 6.12 KB -57 B -0.92%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.9μs 59ns 344ns 0 0 0 5.56 KB
master StartStopWithChild netcoreapp3.1 14.2μs 52.9ns 205ns 0 0 0 5.69 KB
master StartStopWithChild net472 21.7μs 120ns 699ns 0.896 0.224 0 6.18 KB
#6982 StartStopWithChild net6.0 10.4μs 58.9ns 404ns 0 0 0 5.54 KB
#6982 StartStopWithChild netcoreapp3.1 14μs 66.8ns 259ns 0 0 0 5.73 KB
#6982 StartStopWithChild net472 22.5μs 122ns 657ns 1.07 0.322 0.107 6.12 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #6982

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 3.33 KB 3.31 KB -23 B -0.69%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 934μs 69.1ns 239ns 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.03ms 43.8ns 170ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.26ms 727ns 2.81μs 0 0 0 3.33 KB
#6982 WriteAndFlushEnrichedTraces net6.0 921μs 122ns 456ns 0 0 0 2.7 KB
#6982 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 77ns 278ns 0 0 0 2.7 KB
#6982 WriteAndFlushEnrichedTraces net472 1.22ms 138ns 533ns 0 0 0 3.31 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 332μs 1.67μs 7.46μs 0 0 0 197.06 KB
master AllCycleSimpleBody netcoreapp3.1 509μs 1.47μs 5.68μs 0 0 0 204.77 KB
master AllCycleSimpleBody net472 437μs 132ns 494ns 36.6 2.16 0 236.35 KB
master AllCycleMoreComplexBody net6.0 341μs 569ns 2.2μs 0 0 0 200.57 KB
master AllCycleMoreComplexBody netcoreapp3.1 483μs 779ns 3.02μs 0 0 0 208.18 KB
master AllCycleMoreComplexBody net472 445μs 129ns 500ns 37.9 2.23 0 239.88 KB
master ObjectExtractorSimpleBody net6.0 309ns 0.101ns 0.38ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 406ns 2.24ns 13ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 302ns 0.0188ns 0.0652ns 0.044 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.33μs 28.9ns 116ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.65μs 38ns 161ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.79μs 1.09ns 4.24ns 0.578 0 0 3.8 KB
#6982 AllCycleSimpleBody net6.0 330μs 728ns 2.72μs 0 0 0 197.06 KB
#6982 AllCycleSimpleBody netcoreapp3.1 496μs 1.87μs 7.25μs 0 0 0 204.77 KB
#6982 AllCycleSimpleBody net472 434μs 127ns 477ns 36.6 2.16 0 236.35 KB
#6982 AllCycleMoreComplexBody net6.0 337μs 1.43μs 5.54μs 0 0 0 200.56 KB
#6982 AllCycleMoreComplexBody netcoreapp3.1 491μs 1.08μs 4.05μs 0 0 0 208.18 KB
#6982 AllCycleMoreComplexBody net472 446μs 145ns 562ns 37.9 2.23 0 239.88 KB
#6982 ObjectExtractorSimpleBody net6.0 316ns 1.72ns 8.92ns 0 0 0 280 B
#6982 ObjectExtractorSimpleBody netcoreapp3.1 403ns 2.21ns 12.7ns 0 0 0 272 B
#6982 ObjectExtractorSimpleBody net472 303ns 0.166ns 0.643ns 0.0446 0 0 281 B
#6982 ObjectExtractorMoreComplexBody net6.0 6.38μs 27.8ns 108ns 0 0 0 3.78 KB
#6982 ObjectExtractorMoreComplexBody netcoreapp3.1 7.93μs 8.9ns 34.5ns 0 0 0 3.69 KB
#6982 ObjectExtractorMoreComplexBody net472 6.67μs 1.33ns 4.8ns 0.601 0 0 3.8 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Unknown 🤷 Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 N/A N/A N/A NaN NaN NaN 0 b
master EncodeArgs netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master EncodeArgs net472 N/A N/A N/A NaN NaN NaN 0 b
master EncodeLegacyArgs net6.0 N/A N/A N/A NaN NaN NaN 0 b
master EncodeLegacyArgs netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master EncodeLegacyArgs net472 N/A N/A N/A NaN NaN NaN 0 b
#6982 EncodeArgs net6.0 N/A N/A N/A NaN NaN NaN 0 b
#6982 EncodeArgs netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#6982 EncodeArgs net472 N/A N/A N/A NaN NaN NaN 0 b
#6982 EncodeLegacyArgs net6.0 N/A N/A N/A NaN NaN NaN 0 b
#6982 EncodeLegacyArgs netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#6982 EncodeLegacyArgs net472 N/A N/A N/A NaN NaN NaN 0 b
Benchmarks.Trace.Asm.AppSecWafBenchmark - Unknown 🤷 Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmark netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmark net472 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmarkWithAttack net6.0 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmarkWithAttack net472 N/A N/A N/A NaN NaN NaN 0 b
#6982 RunWafRealisticBenchmark net6.0 N/A N/A N/A NaN NaN NaN 0 b
#6982 RunWafRealisticBenchmark netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#6982 RunWafRealisticBenchmark net472 N/A N/A N/A NaN NaN NaN 0 b
#6982 RunWafRealisticBenchmarkWithAttack net6.0 N/A N/A N/A NaN NaN NaN 0 b
#6982 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
#6982 RunWafRealisticBenchmarkWithAttack net472 N/A N/A N/A NaN NaN NaN 0 b
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 61.2μs 32.2ns 125ns 0 0 0 14.53 KB
master SendRequest netcoreapp3.1 70.4μs 114ns 426ns 0 0 0 17.42 KB
master SendRequest net472 0.00615ns 0.00198ns 0.00765ns 0 0 0 0 b
#6982 SendRequest net6.0 59.9μs 57.8ns 224ns 0 0 0 14.53 KB
#6982 SendRequest netcoreapp3.1 71.3μs 65.1ns 252ns 0 0 0 17.42 KB
#6982 SendRequest net472 0.00673ns 0.00169ns 0.00653ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #6982

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 56.09 KB 56.53 KB 436 B 0.78%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 41.8 KB 42.08 KB 281 B 0.67%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 653μs 3.14μs 12.2μs 0 0 0 41.75 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 726μs 3.89μs 28.3μs 0 0 0 41.8 KB
master WriteAndFlushEnrichedTraces net472 986μs 5.72μs 50.2μs 4.81 0 0 56.09 KB
#6982 WriteAndFlushEnrichedTraces net6.0 725μs 4.07μs 25.8μs 0 0 0 41.79 KB
#6982 WriteAndFlushEnrichedTraces netcoreapp3.1 718μs 2.21μs 8.56μs 0 0 0 42.08 KB
#6982 WriteAndFlushEnrichedTraces net472 909μs 1.57μs 6.09μs 8.33 0 0 56.53 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.95μs 1.32ns 4.94ns 0 0 0 1.03 KB
master ExecuteNonQuery netcoreapp3.1 2.41μs 10.2ns 38ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.66μs 2.6ns 10.1ns 0.146 0.0133 0 995 B
#6982 ExecuteNonQuery net6.0 1.91μs 7.5ns 29ns 0 0 0 1.03 KB
#6982 ExecuteNonQuery netcoreapp3.1 2.46μs 8.85ns 34.3ns 0 0 0 1.02 KB
#6982 ExecuteNonQuery net472 2.7μs 4.47ns 16.7ns 0.148 0.0135 0 995 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.84μs 0.912ns 3.41ns 0 0 0 1.04 KB
master CallElasticsearch netcoreapp3.1 2.48μs 1.87ns 7ns 0 0 0 1.04 KB
master CallElasticsearch net472 3.59μs 1.95ns 7.54ns 0.162 0 0 1.05 KB
master CallElasticsearchAsync net6.0 1.83μs 5.79ns 22.4ns 0 0 0 1.02 KB
master CallElasticsearchAsync netcoreapp3.1 2.39μs 2.71ns 10.5ns 0 0 0 1.09 KB
master CallElasticsearchAsync net472 3.81μs 2.73ns 10.6ns 0.175 0 0 1.11 KB
#6982 CallElasticsearch net6.0 1.76μs 1.26ns 4.89ns 0 0 0 1.04 KB
#6982 CallElasticsearch netcoreapp3.1 2.3μs 4.13ns 16ns 0 0 0 1.04 KB
#6982 CallElasticsearch net472 3.54μs 3.72ns 14.4ns 0.16 0 0 1.05 KB
#6982 CallElasticsearchAsync net6.0 1.84μs 7.05ns 27.3ns 0 0 0 1.02 KB
#6982 CallElasticsearchAsync netcoreapp3.1 2.35μs 9.03ns 35ns 0 0 0 1.09 KB
#6982 CallElasticsearchAsync net472 3.82μs 2.58ns 9.98ns 0.173 0 0 1.11 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.85μs 7.41ns 28.7ns 0 0 0 960 B
master ExecuteAsync netcoreapp3.1 2.35μs 7.17ns 27.8ns 0 0 0 960 B
master ExecuteAsync net472 2.77μs 7.52ns 29.1ns 0.14 0 0 923 B
#6982 ExecuteAsync net6.0 1.79μs 1.56ns 5.83ns 0 0 0 960 B
#6982 ExecuteAsync netcoreapp3.1 2.3μs 9.95ns 34.5ns 0 0 0 960 B
#6982 ExecuteAsync net472 2.59μs 1.77ns 6.61ns 0.142 0 0 923 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.91μs 8.79ns 32.9ns 0 0 0 2.37 KB
master SendAsync netcoreapp3.1 8.46μs 18.7ns 72.6ns 0 0 0 2.9 KB
master SendAsync net472 12.3μs 10ns 37.6ns 0.489 0 0 3.19 KB
#6982 SendAsync net6.0 7.21μs 4.81ns 18ns 0 0 0 2.37 KB
#6982 SendAsync netcoreapp3.1 8.4μs 16ns 62.1ns 0 0 0 2.9 KB
#6982 SendAsync net472 12.2μs 8.7ns 33.7ns 0.489 0 0 3.19 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #6982

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 57.34 KB 65.54 KB 8.19 KB 14.29%

Fewer allocations 🎉 in #6982

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 43.25 KB 42.81 KB -440 B -1.02%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 44.76 KB 44.26 KB -496 B -1.11%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 286.72 KB 278.53 KB -8.19 KB -2.86%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 44μs 478ns 4.51μs 0 0 0 44.76 KB
master StringConcatBenchmark netcoreapp3.1 50μs 291ns 2.38μs 0 0 0 43.25 KB
master StringConcatBenchmark net472 57.1μs 247ns 1.02μs 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 455μs 2.13μs 7.97μs 0 0 0 259.18 KB
master StringConcatAspectBenchmark netcoreapp3.1 544μs 2.19μs 8.19μs 0 0 0 273.74 KB
master StringConcatAspectBenchmark net472 405μs 1.54μs 5.76μs 0 0 0 286.72 KB
#6982 StringConcatBenchmark net6.0 41.8μs 233ns 1.36μs 0 0 0 44.26 KB
#6982 StringConcatBenchmark netcoreapp3.1 47.7μs 303ns 2.89μs 0 0 0 42.81 KB
#6982 StringConcatBenchmark net472 57.3μs 148ns 535ns 0 0 0 65.54 KB
#6982 StringConcatAspectBenchmark net6.0 460μs 2.09μs 8.35μs 0 0 0 259.42 KB
#6982 StringConcatAspectBenchmark netcoreapp3.1 525μs 2.63μs 11.2μs 0 0 0 273.36 KB
#6982 StringConcatAspectBenchmark net472 402μs 1.46μs 5.64μs 0 0 0 278.53 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.59μs 13.4ns 62.9ns 0 0 0 1.76 KB
master EnrichedLog netcoreapp3.1 3.54μs 18.4ns 84.2ns 0 0 0 1.76 KB
master EnrichedLog net472 4.08μs 3.06ns 11.8ns 0.265 0 0 1.69 KB
#6982 EnrichedLog net6.0 2.6μs 12.5ns 50.1ns 0 0 0 1.76 KB
#6982 EnrichedLog netcoreapp3.1 3.53μs 12.7ns 49.3ns 0 0 0 1.76 KB
#6982 EnrichedLog net472 3.84μs 2.79ns 10.8ns 0.267 0 0 1.69 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 124μs 133ns 499ns 0 0 0 4.37 KB
master EnrichedLog netcoreapp3.1 126μs 24.7ns 85.6ns 0 0 0 4.37 KB
master EnrichedLog net472 167μs 75.1ns 281ns 0 0 0 4.57 KB
#6982 EnrichedLog net6.0 125μs 476ns 1.78μs 0 0 0 4.37 KB
#6982 EnrichedLog netcoreapp3.1 131μs 437ns 1.69μs 0 0 0 4.37 KB
#6982 EnrichedLog net472 168μs 315ns 1.22μs 0 0 0 4.57 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.9μs 4.18ns 16.2ns 0 0 0 2.32 KB
master EnrichedLog netcoreapp3.1 6.55μs 10.4ns 40.1ns 0 0 0 2.32 KB
master EnrichedLog net472 7.45μs 7.31ns 28.3ns 0.335 0 0 2.14 KB
#6982 EnrichedLog net6.0 5.03μs 23.6ns 81.9ns 0 0 0 2.32 KB
#6982 EnrichedLog netcoreapp3.1 6.69μs 30.5ns 118ns 0 0 0 2.32 KB
#6982 EnrichedLog net472 7.3μs 4.75ns 18.4ns 0.325 0 0 2.14 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 2.02μs 9.2ns 36.8ns 0 0 0 1.21 KB
master SendReceive netcoreapp3.1 2.62μs 9.83ns 38.1ns 0 0 0 1.21 KB
master SendReceive net472 3.1μs 4.22ns 16.4ns 0.183 0 0 1.21 KB
#6982 SendReceive net6.0 2μs 6.39ns 24.8ns 0 0 0 1.21 KB
#6982 SendReceive netcoreapp3.1 2.6μs 12.4ns 49.6ns 0 0 0 1.21 KB
#6982 SendReceive net472 3.14μs 4.99ns 19.3ns 0.186 0 0 1.21 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.1μs 11.8ns 44.1ns 0 0 0 1.64 KB
master EnrichedLog netcoreapp3.1 5.65μs 21.3ns 82.3ns 0 0 0 1.69 KB
master EnrichedLog net472 6.71μs 5.05ns 18.9ns 0.302 0 0 2.08 KB
#6982 EnrichedLog net6.0 4.2μs 3.67ns 13.2ns 0 0 0 1.64 KB
#6982 EnrichedLog netcoreapp3.1 5.6μs 7.38ns 28.6ns 0 0 0 1.69 KB
#6982 EnrichedLog net472 6.52μs 4.96ns 18.6ns 0.327 0 0 2.08 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 777ns 3.81ns 15.7ns 0 0 0 584 B
master StartFinishSpan netcoreapp3.1 951ns 0.333ns 1.29ns 0 0 0 584 B
master StartFinishSpan net472 926ns 0.193ns 0.723ns 0.0928 0 0 586 B
master StartFinishScope net6.0 892ns 0.425ns 1.59ns 0 0 0 704 B
master StartFinishScope netcoreapp3.1 1.17μs 5.63ns 22.5ns 0 0 0 704 B
master StartFinishScope net472 1.11μs 0.273ns 0.985ns 0.106 0 0 666 B
#6982 StartFinishSpan net6.0 759ns 0.589ns 2.2ns 0 0 0 584 B
#6982 StartFinishSpan netcoreapp3.1 961ns 4.44ns 17.7ns 0 0 0 584 B
#6982 StartFinishSpan net472 929ns 0.208ns 0.807ns 0.0931 0 0 586 B
#6982 StartFinishScope net6.0 881ns 3.96ns 15.3ns 0 0 0 704 B
#6982 StartFinishScope netcoreapp3.1 1.16μs 6.48ns 38.9ns 0 0 0 704 B
#6982 StartFinishScope net472 1.17μs 0.586ns 2.27ns 0.106 0 0 666 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.03μs 0.477ns 1.85ns 0 0 0 704 B
master RunOnMethodBegin netcoreapp3.1 1.36μs 0.838ns 3.24ns 0 0 0 704 B
master RunOnMethodBegin net472 1.42μs 0.932ns 3.61ns 0.0991 0 0 666 B
#6982 RunOnMethodBegin net6.0 1.04μs 5.43ns 26ns 0 0 0 704 B
#6982 RunOnMethodBegin netcoreapp3.1 1.38μs 6.85ns 29ns 0 0 0 704 B
#6982 RunOnMethodBegin net472 1.35μs 0.577ns 2.24ns 0.101 0 0 666 B

Comment thread tracer/src/Datadog.Trace/AppSec/Waf/NativeBindings/WafLibraryInvoker.cs Outdated
@daniel-romano-DD daniel-romano-DD force-pushed the dani/asm/waf_init_traces branch from 5cc6bc0 to 715c517 Compare May 21, 2025 10:30
@daniel-romano-DD daniel-romano-DD force-pushed the dani/asm/waf_init_traces branch from 0c7a917 to 40c8354 Compare May 21, 2025 20:18
@andrewlock

Copy link
Copy Markdown
Member

Superseded by

@andrewlock andrewlock closed this Jun 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants