Skip to content

[AAP] Update WAF ruleset to v1.15.0#7331

Merged
dromanol merged 4 commits into
masterfrom
dani/asm/ruleset_v1_15
Aug 8, 2025
Merged

[AAP] Update WAF ruleset to v1.15.0#7331
dromanol merged 4 commits into
masterfrom
dani/asm/ruleset_v1_15

Conversation

@dromanol

@dromanol dromanol commented Aug 4, 2025

Copy link
Copy Markdown
Contributor

Summary of changes

Update waf ruleset file to latest v1.15.0
Needed for thr JST analysis (Jira)

Reason for change

Implementation details

Test coverage

Other details

@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Aug 4, 2025

Copy link
Copy Markdown

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 096eb23 | Docs | Was this helpful? Give us feedback!

@pr-commenter

pr-commenter Bot commented Aug 4, 2025

Copy link
Copy Markdown

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7331 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.133
  • 2 benchmarks are slower, with geometric mean 1.149
  • 7 benchmarks have fewer allocations
  • 5 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 ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7331

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 5.72 KB 5.68 KB -36 B -0.63%
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.07 KB 5.99 KB -82 B -1.35%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 11μs 59.5ns 357ns 0 0 0 5.49 KB
master StartStopWithChild netcoreapp3.1 13.7μs 64.8ns 259ns 0 0 0 5.72 KB
master StartStopWithChild net472 22.7μs 125ns 748ns 0.907 0.227 0 6.07 KB
#7331 StartStopWithChild net6.0 10.8μs 38.7ns 150ns 0 0 0 5.5 KB
#7331 StartStopWithChild netcoreapp3.1 13.5μs 61.8ns 276ns 0 0 0 5.68 KB
#7331 StartStopWithChild net472 21.7μs 111ns 567ns 0.994 0.442 0.11 5.99 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 938μs 60.9ns 228ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.06ms 2.13μs 7.36μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.2ms 87.8ns 329ns 0 0 0 3.31 KB
#7331 WriteAndFlushEnrichedTraces net6.0 935μs 80.3ns 301ns 0 0 0 2.7 KB
#7331 WriteAndFlushEnrichedTraces netcoreapp3.1 1.03ms 335ns 1.3μs 0 0 0 2.7 KB
#7331 WriteAndFlushEnrichedTraces net472 1.2ms 88.6ns 332ns 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 335μs 1.6μs 6.81μs 0 0 0 198.49 KB
master AllCycleSimpleBody netcoreapp3.1 508μs 327ns 1.27μs 0 0 0 206.2 KB
master AllCycleSimpleBody net472 453μs 109ns 424ns 37.9 2.23 0 246.48 KB
master AllCycleMoreComplexBody net6.0 344μs 855ns 3.31μs 0 0 0 202 KB
master AllCycleMoreComplexBody netcoreapp3.1 494μs 1.72μs 6.67μs 0 0 0 209.62 KB
master AllCycleMoreComplexBody net472 459μs 94.5ns 353ns 37.9 2.23 0 249.99 KB
master ObjectExtractorSimpleBody net6.0 314ns 0.15ns 0.582ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 422ns 2.09ns 8.87ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 303ns 0.0214ns 0.0829ns 0.0443 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.33μs 32.6ns 156ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.9μs 2.46ns 9.51ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.74μs 2.65ns 9.57ns 0.574 0 0 3.8 KB
#7331 AllCycleSimpleBody net6.0 344μs 582ns 2.25μs 0 0 0 198.49 KB
#7331 AllCycleSimpleBody netcoreapp3.1 483μs 2.16μs 8.08μs 0 0 0 206.2 KB
#7331 AllCycleSimpleBody net472 453μs 107ns 399ns 37.9 2.23 0 246.48 KB
#7331 AllCycleMoreComplexBody net6.0 349μs 758ns 2.94μs 0 0 0 201.99 KB
#7331 AllCycleMoreComplexBody netcoreapp3.1 521μs 2.37μs 9.16μs 0 0 0 209.62 KB
#7331 AllCycleMoreComplexBody net472 458μs 95.1ns 356ns 37.9 2.23 0 249.99 KB
#7331 ObjectExtractorSimpleBody net6.0 312ns 1.56ns 6.96ns 0 0 0 280 B
#7331 ObjectExtractorSimpleBody netcoreapp3.1 406ns 0.429ns 1.66ns 0 0 0 272 B
#7331 ObjectExtractorSimpleBody net472 301ns 0.0453ns 0.175ns 0.044 0 0 281 B
#7331 ObjectExtractorMoreComplexBody net6.0 6.23μs 28.8ns 115ns 0 0 0 3.78 KB
#7331 ObjectExtractorMoreComplexBody netcoreapp3.1 7.88μs 35.7ns 138ns 0 0 0 3.69 KB
#7331 ObjectExtractorMoreComplexBody net472 6.71μs 1.2ns 4.33ns 0.602 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 80.7μs 7.85ns 30.4ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 98.7μs 162ns 607ns 0 0 0 32.4 KB
master EncodeArgs net472 108μs 4.27ns 16.6ns 4.88 0 0 32.51 KB
master EncodeLegacyArgs net6.0 146μs 109ns 422ns 0 0 0 2.15 KB
master EncodeLegacyArgs netcoreapp3.1 201μs 484ns 1.87μs 0 0 0 2.14 KB
master EncodeLegacyArgs net472 263μs 40.1ns 155ns 0 0 0 2.16 KB
#7331 EncodeArgs net6.0 78.5μs 49.4ns 191ns 0 0 0 32.4 KB
#7331 EncodeArgs netcoreapp3.1 97.4μs 211ns 816ns 0 0 0 32.4 KB
#7331 EncodeArgs net472 108μs 11ns 41ns 4.88 0 0 32.51 KB
#7331 EncodeLegacyArgs net6.0 142μs 52ns 201ns 0 0 0 2.15 KB
#7331 EncodeLegacyArgs netcoreapp3.1 198μs 208ns 807ns 0 0 0 2.14 KB
#7331 EncodeLegacyArgs net472 265μs 113ns 439ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 400μs 167ns 645ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 415μs 127ns 493ns 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 437μs 127ns 493ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 287μs 49.6ns 192ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 299μs 39.7ns 148ns 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 313μs 44.4ns 172ns 0 0 0 2.29 KB
#7331 RunWafRealisticBenchmark net6.0 398μs 83.2ns 311ns 0 0 0 4.56 KB
#7331 RunWafRealisticBenchmark netcoreapp3.1 412μs 78.1ns 282ns 0 0 0 4.48 KB
#7331 RunWafRealisticBenchmark net472 441μs 109ns 424ns 0 0 0 4.66 KB
#7331 RunWafRealisticBenchmarkWithAttack net6.0 292μs 49.9ns 193ns 0 0 0 2.24 KB
#7331 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 304μs 227ns 879ns 0 0 0 2.22 KB
#7331 RunWafRealisticBenchmarkWithAttack net472 317μs 69.9ns 271ns 0 0 0 2.29 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 61.1μs 27.1ns 97.6ns 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 70μs 83.1ns 288ns 0 0 0 17.43 KB
master SendRequest net472 0.00787ns 0.00238ns 0.00922ns 0 0 0 0 b
#7331 SendRequest net6.0 61.9μs 103ns 384ns 0 0 0 14.52 KB
#7331 SendRequest netcoreapp3.1 71.1μs 223ns 1.05μs 0 0 0 17.42 KB
#7331 SendRequest net472 0.00492ns 0.00111ns 0.0043ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7331

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1 0 b 1 B 1 B

Fewer allocations 🎉 in #7331

Benchmark Base Allocated Diff Allocated Change Change %
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.94ms 2.77μs 10.7μs 0 0 0 640.01 KB
master OriginalCharSlice netcoreapp3.1 2.13ms 8.67μs 33.6μs 0 0 0 640 KB
master OriginalCharSlice net472 2.64ms 189ns 706ns 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.38ms 309ns 1.2μs 0 0 0 7 B
master OptimizedCharSlice netcoreapp3.1 1.77ms 243ns 943ns 0 0 0 1 B
master OptimizedCharSlice net472 2.03ms 536ns 2.07μs 0 0 0 0 b
master OptimizedCharSliceWithPool net6.0 814μs 46.5ns 168ns 0 0 0 2 B
master OptimizedCharSliceWithPool netcoreapp3.1 802μs 88.9ns 344ns 0 0 0 0 b
master OptimizedCharSliceWithPool net472 1.19ms 77.9ns 291ns 0 0 0 0 b
#7331 OriginalCharSlice net6.0 1.88ms 635ns 2.37μs 0 0 0 640.01 KB
#7331 OriginalCharSlice netcoreapp3.1 2.09ms 5.5μs 21.3μs 0 0 0 640 KB
#7331 OriginalCharSlice net472 2.69ms 51.3ns 178ns 100 0 0 641.95 KB
#7331 OptimizedCharSlice net6.0 1.44ms 139ns 537ns 0 0 0 4 B
#7331 OptimizedCharSlice netcoreapp3.1 1.66ms 263ns 1.02μs 0 0 0 1 B
#7331 OptimizedCharSlice net472 1.95ms 361ns 1.3μs 0 0 0 0 b
#7331 OptimizedCharSliceWithPool net6.0 828μs 14.7ns 54.8ns 0 0 0 2 B
#7331 OptimizedCharSliceWithPool netcoreapp3.1 807μs 47.9ns 186ns 0 0 0 1 B
#7331 OptimizedCharSliceWithPool net472 1.14ms 98.4ns 368ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #7331

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 1.165 850,461.25 990,775.00

More allocations ⚠️ in #7331

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 42.03 KB 42.74 KB 712 B 1.69%

Fewer allocations 🎉 in #7331

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 56.05 KB 55.63 KB -417 B -0.74%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 42.08 KB 41.68 KB -401 B -0.95%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 693μs 522ns 2.02μs 0 0 0 42.08 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 651μs 3.61μs 25.6μs 0 0 0 42.03 KB
master WriteAndFlushEnrichedTraces net472 852μs 3.32μs 12.4μs 8.33 0 0 56.05 KB
#7331 WriteAndFlushEnrichedTraces net6.0 712μs 1.06μs 3.98μs 0 0 0 41.68 KB
#7331 WriteAndFlushEnrichedTraces netcoreapp3.1 694μs 3.38μs 13.5μs 0 0 0 42.74 KB
#7331 WriteAndFlushEnrichedTraces net472 979μs 5.67μs 47.8μs 4.46 0 0 55.63 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.9μs 8.55ns 33.1ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.56μs 8.97ns 34.7ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.75μs 2.86ns 11.1ns 0.15 0.0136 0 987 B
#7331 ExecuteNonQuery net6.0 1.92μs 9ns 37.1ns 0 0 0 1.02 KB
#7331 ExecuteNonQuery netcoreapp3.1 2.5μs 6.59ns 25.5ns 0 0 0 1.02 KB
#7331 ExecuteNonQuery net472 2.88μs 2.61ns 9.76ns 0.143 0.0143 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.72μs 0.74ns 2.87ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.27μs 9.69ns 37.5ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.58μs 2.81ns 10.9ns 0.162 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.74μs 8.86ns 38.6ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.53μs 12.1ns 49.8ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.77μs 4.45ns 17.3ns 0.17 0 0 1.1 KB
#7331 CallElasticsearch net6.0 1.84μs 9.05ns 38.4ns 0 0 0 1.03 KB
#7331 CallElasticsearch netcoreapp3.1 2.25μs 11.4ns 53.6ns 0 0 0 1.03 KB
#7331 CallElasticsearch net472 3.73μs 3.52ns 13.6ns 0.148 0 0 1.04 KB
#7331 CallElasticsearchAsync net6.0 1.82μs 9.29ns 40.5ns 0 0 0 1.01 KB
#7331 CallElasticsearchAsync netcoreapp3.1 2.39μs 11.6ns 52.1ns 0 0 0 1.08 KB
#7331 CallElasticsearchAsync net472 3.8μs 2.37ns 9.19ns 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.87μs 5.47ns 21.2ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.33μs 4.99ns 19.3ns 0 0 0 952 B
master ExecuteAsync net472 2.57μs 1.35ns 4.87ns 0.142 0 0 915 B
#7331 ExecuteAsync net6.0 1.8μs 9.11ns 38.6ns 0 0 0 952 B
#7331 ExecuteAsync netcoreapp3.1 2.33μs 6.53ns 25.3ns 0 0 0 952 B
#7331 ExecuteAsync net472 2.48μs 0.837ns 3.24ns 0.136 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.88μs 6ns 23.2ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.58μs 33.8ns 131ns 0 0 0 2.9 KB
master SendAsync net472 12.1μs 8.87ns 34.4ns 0.482 0 0 3.18 KB
#7331 SendAsync net6.0 6.95μs 19.5ns 73.1ns 0 0 0 2.36 KB
#7331 SendAsync netcoreapp3.1 8.51μs 14.9ns 57.6ns 0 0 0 2.9 KB
#7331 SendAsync net472 12.2μs 18.3ns 70.8ns 0.489 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Faster 🎉 More allocations ⚠️

Faster 🎉 in #7331

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 1.133 490,750.00 433,200.00

More allocations ⚠️ in #7331

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 247.37 KB 274.44 KB 27.07 KB 10.94%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 44.11 KB 46.42 KB 2.31 KB 5.24%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 277.96 KB 286.72 KB 8.76 KB 3.15%

Fewer allocations 🎉 in #7331

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 43.58 KB 42.68 KB -904 B -2.07%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 276.1 KB 249.69 KB -26.42 KB -9.57%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 46.2μs 251ns 1.28μs 0 0 0 44.11 KB
master StringConcatBenchmark netcoreapp3.1 49.1μs 254ns 1.41μs 0 0 0 43.58 KB
master StringConcatBenchmark net472 57.3μs 275ns 1.1μs 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 494μs 2.33μs 9.3μs 0 0 0 276.1 KB
master StringConcatAspectBenchmark netcoreapp3.1 489μs 2.49μs 11.7μs 0 0 0 247.37 KB
master StringConcatAspectBenchmark net472 405μs 2.22μs 13.5μs 0 0 0 277.96 KB
#7331 StringConcatBenchmark net6.0 41.4μs 215ns 1.2μs 0 0 0 46.42 KB
#7331 StringConcatBenchmark netcoreapp3.1 48.6μs 246ns 1.18μs 0 0 0 42.68 KB
#7331 StringConcatBenchmark net472 57.7μs 269ns 1.04μs 0 0 0 57.34 KB
#7331 StringConcatAspectBenchmark net6.0 434μs 1.72μs 5.97μs 0 0 0 249.69 KB
#7331 StringConcatAspectBenchmark netcoreapp3.1 513μs 1.95μs 7.04μs 0 0 0 274.44 KB
#7331 StringConcatAspectBenchmark net472 404μs 2.04μs 9.78μ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.62μs 12.1ns 45.4ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.43μs 16.4ns 67.6ns 0 0 0 1.7 KB
master EnrichedLog net472 3.88μs 3.16ns 12.2ns 0.252 0 0 1.64 KB
#7331 EnrichedLog net6.0 2.58μs 12.8ns 58.5ns 0 0 0 1.7 KB
#7331 EnrichedLog netcoreapp3.1 3.53μs 17.2ns 73ns 0 0 0 1.7 KB
#7331 EnrichedLog net472 3.94μs 3.13ns 12.1ns 0.255 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 122μs 53.6ns 208ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 128μs 170ns 638ns 0 0 0 4.31 KB
master EnrichedLog net472 166μs 197ns 762ns 0 0 0 4.51 KB
#7331 EnrichedLog net6.0 125μs 126ns 471ns 0 0 0 4.32 KB
#7331 EnrichedLog netcoreapp3.1 128μs 361ns 1.4μs 0 0 0 4.31 KB
#7331 EnrichedLog net472 168μs 38.6ns 134ns 0 0 0 4.52 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 5.05μs 6.82ns 26.4ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.63μs 16.2ns 60.6ns 0 0 0 2.26 KB
master EnrichedLog net472 7.58μs 7.21ns 27.9ns 0.306 0 0 2.08 KB
#7331 EnrichedLog net6.0 4.85μs 15.5ns 57.8ns 0 0 0 2.26 KB
#7331 EnrichedLog netcoreapp3.1 6.64μs 7.26ns 28.1ns 0 0 0 2.26 KB
#7331 EnrichedLog net472 7.51μs 5.71ns 22.1ns 0.299 0 0 2.08 KB
Benchmarks.Trace.RedisBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #7331

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.RedisBenchmark.SendReceive‑netcoreapp3.1 1.132 2,549.84 2,887.08

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 2.01μs 8.3ns 32.1ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.55μs 1.33ns 4.98ns 0 0 0 1.2 KB
master SendReceive net472 3.23μs 1.99ns 7.72ns 0.178 0 0 1.2 KB
#7331 SendReceive net6.0 2μs 10.1ns 43.8ns 0 0 0 1.2 KB
#7331 SendReceive netcoreapp3.1 2.88μs 12.1ns 46.8ns 0 0 0 1.2 KB
#7331 SendReceive net472 3.26μs 4.34ns 16.8ns 0.18 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.08μs 4.06ns 15.7ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.49μs 8.95ns 34.7ns 0 0 0 1.63 KB
master EnrichedLog net472 6.57μs 10.5ns 40.7ns 0.294 0 0 2.03 KB
#7331 EnrichedLog net6.0 4.11μs 16.2ns 62.7ns 0 0 0 1.58 KB
#7331 EnrichedLog netcoreapp3.1 5.61μs 16.9ns 65.6ns 0 0 0 1.63 KB
#7331 EnrichedLog net472 6.63μs 5.98ns 23.2ns 0.298 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 751ns 0.189ns 0.733ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 920ns 4.95ns 27.6ns 0 0 0 576 B
master StartFinishSpan net472 906ns 0.786ns 3.04ns 0.091 0 0 578 B
master StartFinishScope net6.0 902ns 4.3ns 18.3ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.1μs 5.6ns 25.7ns 0 0 0 696 B
master StartFinishScope net472 1.11μs 0.123ns 0.46ns 0.1 0 0 658 B
#7331 StartFinishSpan net6.0 729ns 3.98ns 23.2ns 0 0 0 576 B
#7331 StartFinishSpan netcoreapp3.1 943ns 0.189ns 0.731ns 0 0 0 576 B
#7331 StartFinishSpan net472 928ns 0.116ns 0.432ns 0.0887 0 0 578 B
#7331 StartFinishScope net6.0 930ns 4.76ns 22.8ns 0 0 0 696 B
#7331 StartFinishScope netcoreapp3.1 1.18μs 5.86ns 24.9ns 0 0 0 696 B
#7331 StartFinishScope net472 1.15μs 1.38ns 5.36ns 0.103 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.04μs 3.85ns 14.9ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.41μs 6.82ns 26.4ns 0 0 0 696 B
master RunOnMethodBegin net472 1.47μs 1.18ns 4.4ns 0.102 0 0 658 B
#7331 RunOnMethodBegin net6.0 1.05μs 5.55ns 27.2ns 0 0 0 696 B
#7331 RunOnMethodBegin netcoreapp3.1 1.37μs 5.32ns 20.6ns 0 0 0 696 B
#7331 RunOnMethodBegin net472 1.55μs 1.28ns 4.8ns 0.101 0 0 658 B

@dd-trace-dotnet-ci-bot

dd-trace-dotnet-ci-bot Bot commented Aug 4, 2025

Copy link
Copy Markdown

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 (7331) - mean (71ms)  : 71, 72
     .   : milestone, 71,
    master - mean (72ms)  : 70, 73
     .   : milestone, 72,

    section Baseline
    This PR (7331) - mean (68ms)  : 65, 71
     .   : milestone, 68,
    master - mean (68ms)  : 65, 71
     .   : milestone, 68,

    section CallTarget+Inlining+NGEN
    This PR (7331) - mean (1,028ms)  : 1006, 1050
     .   : milestone, 1028,
    master - mean (1,031ms)  : 1006, 1055
     .   : milestone, 1031,

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

    section Baseline
    This PR (7331) - mean (106ms)  : 104, 108
     .   : milestone, 106,
    master - mean (106ms)  : 103, 108
     .   : milestone, 106,

    section CallTarget+Inlining+NGEN
    This PR (7331) - mean (723ms)  : 715, 731
     .   : milestone, 723,
    master - mean (723ms)  : 713, 734
     .   : milestone, 723,

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

    section Baseline
    This PR (7331) - mean (94ms)  : 92, 96
     .   : milestone, 94,
    master - mean (94ms)  : 92, 96
     .   : milestone, 94,

    section CallTarget+Inlining+NGEN
    This PR (7331) - mean (675ms)  : 665, 685
     .   : milestone, 675,
    master - mean (679ms)  : 669, 688
     .   : milestone, 679,

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

    section Baseline
    This PR (7331) - mean (92ms)  : 90, 94
     .   : milestone, 92,
    master - mean (93ms)  : 91, 95
     .   : milestone, 93,

    section CallTarget+Inlining+NGEN
    This PR (7331) - mean (615ms)  : 604, 627
     .   : milestone, 615,
    master - mean (625ms)  : 616, 634
     .   : milestone, 625,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7331) - mean (201ms)  : 195, 207
     .   : milestone, 201,
    master - mean (202ms)  : 198, 205
     .   : milestone, 202,

    section Baseline
    This PR (7331) - mean (198ms)  : 192, 204
     .   : milestone, 198,
    master - mean (198ms)  : 191, 206
     .   : milestone, 198,

    section CallTarget+Inlining+NGEN
    This PR (7331) - mean (1,173ms)  : 1144, 1201
     .   : milestone, 1173,
    master - mean (1,168ms)  : 1146, 1189
     .   : milestone, 1168,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7331) - mean (285ms)  : 279, 292
     .   : milestone, 285,
    master - mean (289ms)  : 281, 296
     .   : milestone, 289,

    section Baseline
    This PR (7331) - mean (285ms)  : 279, 291
     .   : milestone, 285,
    master - mean (285ms)  : 277, 293
     .   : milestone, 285,

    section CallTarget+Inlining+NGEN
    This PR (7331) - mean (944ms)  : 922, 965
     .   : milestone, 944,
    master - mean (943ms)  : 919, 966
     .   : milestone, 943,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7331) - mean (280ms)  : 274, 287
     .   : milestone, 280,
    master - mean (279ms)  : 275, 284
     .   : milestone, 279,

    section Baseline
    This PR (7331) - mean (280ms)  : 275, 286
     .   : milestone, 280,
    master - mean (279ms)  : 273, 285
     .   : milestone, 279,

    section CallTarget+Inlining+NGEN
    This PR (7331) - mean (923ms)  : 895, 951
     .   : milestone, 923,
    master - mean (926ms)  : 902, 949
     .   : milestone, 926,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7331) - mean (279ms)  : 274, 284
     .   : milestone, 279,
    master - mean (278ms)  : 273, 283
     .   : milestone, 278,

    section Baseline
    This PR (7331) - mean (278ms)  : 271, 285
     .   : milestone, 278,
    master - mean (277ms)  : 270, 285
     .   : milestone, 277,

    section CallTarget+Inlining+NGEN
    This PR (7331) - mean (834ms)  : 815, 853
     .   : milestone, 834,
    master - mean (836ms)  : 812, 859
     .   : milestone, 836,

Loading

@github-actions

github-actions Bot commented Aug 5, 2025

Copy link
Copy Markdown
Contributor

Snapshots difference summary

The following differences have been observed in committed snapshots. It is meant to help the reviewer.
The diff is simplistic, so please check some files anyway while we improve it.

1 occurrences of :

-        "_dd.appsec.event_rules.version": "1.13.3"
+        "_dd.appsec.event_rules.version": "1.15.0",
+        "_dd.appsec.fp.http.endpoint": "http-get-7460da9d--",
+        "_dd.appsec.fp.http.header": "hdr-0000000000--3-98425651",
+        "_dd.appsec.fp.http.network": "net-0-0000000000"
[...]
-        "_dd.appsec.event_rules.loaded": 159.0,
+        "_dd.appsec.event_rules.loaded": 167.0,

1 occurrences of :

+        "_dd.appsec.fp.http.endpoint": "http-get-7460da9d--",
+        "_dd.appsec.fp.http.header": "hdr-0100000000-3c930dcb-1-4740ae63",
+        "_dd.appsec.fp.http.network": "net-0-0000000000",

1 occurrences of :

-        "_dd.appsec.event_rules.version": "1.13.3"
+        "_dd.appsec.event_rules.version": "1.15.0"

1 occurrences of :

-        "_dd.appsec.event_rules.version": "1.13.3",
+        "_dd.appsec.event_rules.version": "1.15.0",
[...]
+        "_dd.appsec.fp.http.endpoint": "http-get-7460da9d--",
+        "_dd.appsec.fp.http.header": "hdr-0000000000--3-98425651",
+        "_dd.appsec.fp.http.network": "net-0-0000000000",

2 occurrences of :

-        "_dd.appsec.event_rules.loaded": 159.0,
+        "_dd.appsec.event_rules.loaded": 167.0,

1 occurrences of :

+        "_dd.appsec.fp.http.endpoint": "http-get-7460da9d--",
+        "_dd.appsec.fp.http.header": "hdr-0000000000--3-98425651",
+        "_dd.appsec.fp.http.network": "net-0-0000000000",

2 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-post-a13f66cb--27691e7f,

5 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-get-8a5edab2--,

5 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-get-e573ec3f--,

5 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-post-c46d148e--4f79592e,

5 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-post-deb830ce--4f79592e,

5 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-post-dfc63662--4f79592e,

5 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-get-9ce5b35c--,

5 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-get-0cfc1178--,

5 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-get-8f75219c--,

1 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-8a5edab2-9f86d081-,
+      _dd.appsec.fp.http.header: hdr-0100000000-3626b5f8-9-6846cbb1,
+      _dd.appsec.fp.http.network: net-1-1000000000,

1 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-8a5edab2-9f86d081-,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-9-6846cbb1,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _dd.appsec.fp.session: ssn----<SessionFp>,

1 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-379f35ca--,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _dd.appsec.fp.session: ssn----<SessionFp>,

2 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-get-8a5edab2--,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _dd.appsec.fp.session: ssn----<SessionFp>,

1 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-c9ffce19--,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _dd.appsec.fp.session: ssn-5860faf0---<SessionFp>,

17 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,

4 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-post-ae2b84ee--c322e989,
+      _dd.appsec.fp.http.header: hdr-0000000100-3626b5f8-2-da57b738,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _dd.appsec.fp.session: ssn--<CookieFields>-<CookieValues>-<SessionFp>,

1 occurrences of :

-      _dd.appsec.event_rules.loaded: 159.0,
+      _dd.appsec.event_rules.loaded: 167.0,

1 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-get-7f4bf8ee-fccaf9f2-,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _dd.appsec.fp.session: ssn----<SessionFp>,

1 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-post-a13f66cb--27691e7f,
+      _dd.appsec.fp.http.header: hdr-0000000100-3626b5f8-2-da57b738,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _dd.appsec.fp.session: ssn----<SessionFp>,

2 occurrences of :

+      _dd.appsec.fp.http.endpoint: http-get-23d42bb3-44774db1-,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _dd.appsec.fp.session: ssn----<SessionFp>,

1 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-8a5edab2--,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,

2 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-c9ffce19--,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _dd.appsec.fp.session: ssn-5860faf0---,

1 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-8a5edab2--,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-3-98425651,
+      _dd.appsec.fp.http.network: net-1-1000000000,

2 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-c9ffce19--,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-3-98425651,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _dd.appsec.fp.session: ssn-5860faf0---,

1 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-7ab84831--,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,

1 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-c4cf151d--,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _dd.appsec.fp.session: ssn-5860faf0---,

1 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-7ab84831--,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-3-98425651,
+      _dd.appsec.fp.http.network: net-1-1000000000,

1 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-c4cf151d--,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-3-98425651,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _dd.appsec.fp.session: ssn-5860faf0---,

1 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-d2b1037e--,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,

1 occurrences of :

-      _dd.appsec.event_rules.version: 1.13.3,
+      _dd.appsec.event_rules.version: 1.15.0,
+      _dd.appsec.fp.http.endpoint: http-get-d2b1037e--,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-3-98425651,
+      _dd.appsec.fp.http.network: net-1-1000000000,

@dromanol
dromanol force-pushed the dani/asm/ruleset_v1_15 branch from 9500bb6 to aa18197 Compare August 6, 2025 15:13
@dromanol
dromanol marked this pull request as ready for review August 7, 2025 14:00
@dromanol
dromanol requested review from a team as code owners August 7, 2025 14:00

@e-n-0 e-n-0 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thnaks! 😄

Comment on lines +115 to +118
"_dd.appsec.fp.http.endpoint": "http-get-7460da9d--",
"_dd.appsec.fp.http.header": "hdr-0000000000--3-98425651",
"_dd.appsec.fp.http.network": "net-0-0000000000",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I see a lot of new fingerprint tags accross snapshots, should the ScrubSessionFingerprint() should be also applied everywhere? Why are they suddenly showing up?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Because a new rule was added in the ruleset

Snapshots

Fix fingerprints

Snapshots fixed

More snapshots

Fixed snapshots

Mvc5 snapshots

Fixed smoke snapshot

Smoke test Iis snapshot

Smoke snapshots

Iis smoke snapshot
@dromanol
dromanol force-pushed the dani/asm/ruleset_v1_15 branch from 5d4f657 to 7a623e3 Compare August 7, 2025 21:56
@dromanol
dromanol merged commit 455ad52 into master Aug 8, 2025
147 of 149 checks passed
@dromanol
dromanol deleted the dani/asm/ruleset_v1_15 branch August 8, 2025 14:52
@github-actions github-actions Bot added this to the vNext-v3 milestone Aug 8, 2025
bouwkast pushed a commit that referenced this pull request Aug 8, 2025
## Summary of changes

Fixes more flake in the IIS smoke tests

## Reason for change

A recent WAF rules update #7331 started adding more tags to spans, which
ultimately can cause flake. Additionally, there are other tags which are
only added to the very first span generated, but in a race-y way, so
that can cause flake

## Implementation details

Add more exclusions to the smoke tests in general. I signed off on these
exclusions with ASM (they suggested it!)

## Test coverage

If the tests pass, we're good

## Other details
<!-- Fixes #{issue} -->


<!--  ⚠️ Note:

Where possible, please obtain 2 approvals prior to merging. Unless
CODEOWNERS specifies otherwise, for external teams it is typically best
to have one review from a team member, and one review from apm-dotnet.
Trivial changes do not require 2 reviews.

MergeQueue is NOT enabled in this repository. If you have write access
to the repo, the PR has 1-2 approvals (see above), and all of the
required checks have passed, you can use the Squash and Merge button to
merge the PR. If you don't have write access, or you need help, reach
out in the #apm-dotnet channel in Slack.
-->
andrewlock added a commit that referenced this pull request Aug 11, 2025
@e-n-0 e-n-0 mentioned this pull request May 8, 2026
e-n-0 added a commit that referenced this pull request May 12, 2026
## Summary of changes

Add support for AAP trace-tagging rules from WAF and ASM_DD config.

## Reason for change


[RFC-1034](https://docs.google.com/document/d/1bqDtGgMJgsTW6I16iEcRn1lb9RRQjFRDGim8zRrbs0s/edit?tab=t.0)
lets AppSec rules attach trace attributes and request trace retention
without creating an AppSec event. The tracer needs to preserve those WAF
outputs and report them on the span with the right tag/metric types and
sampling priority.

Follow up of #7332 and #7331 (incorrectly reporting the capabilities as
they missed the implementation).

## Implementation details

- Parse WAF `keep` and `attributes` results, splitting schema
attributes, fingerprint attributes, and trace-tagging span attributes.
- Report trace-tagging attributes as tags or metrics based on their
native type. Numeric-looking strings stay strings.
- Preserve `JValue` scalar types when encoding WAF inputs.
- Add `rules_compat` support for ASM_DD configs and advertise the ASM_DD
multiconfig / trace-tagging capabilities.
- Keep API Security schema traces sampled even when the WAF returns
`keep:false`, while `keep:false` for plain trace-tagging rules does not
force `USER_KEEP`.

## Test coverage

- Added unit tests for WAF result parsing, typed attribute reporting,
`keep` / `HasKeep`, schema sampling, `JValue` encoding, RCM
capabilities, and `rules_compat`.
- Added an ASP.NET Core 5 integration snapshot for the four
trace-tagging variants: keep/no keep, event/no event, tags/metrics, and
sampling priority.
- Validated locally the system tests.

---
https://datadoghq.atlassian.net/browse/APPSEC-63122
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants