Skip to content

[AAP] Update waf and add support for security_response_id#7807

Merged
e-n-0 merged 11 commits intomasterfrom
flavien/waf_security_response_id
Dec 9, 2025
Merged

[AAP] Update waf and add support for security_response_id#7807
e-n-0 merged 11 commits intomasterfrom
flavien/waf_security_response_id

Conversation

@e-n-0
Copy link
Member

@e-n-0 e-n-0 commented Nov 12, 2025

Summary of changes

This PR:

  • updates the WAF to version v1.30.0
  • implements the Blocking Response Unique Identifier (rfc)

Reason for change

Implementation details

  • Updated the WAF
  • Added SecurityResponseId in block actions
  • Updated the HTML/JSON templates (ref)

Test coverage

Unit tested:

  • JSON blocking responses with security_response_id
  • HTML blocking responses with security_response_id element
  • Custom redirect URLs with security_response_id query parameter

Integration tests:

  • Updated all snapshots so it includes the security_response_id on all blocked requests
  • Verified that the showed blocking template correctly display the same security response id present in the security event.

System tests: DataDog/system-tests#5517

@github-actions
Copy link
Contributor

github-actions bot commented Nov 12, 2025

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.

2 occurrences of :

-        "_dd.appsec.waf.version": "1.28.1",
+        "_dd.appsec.waf.version": "1.30.0",

6 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"rasp-932-110","name":"OS command injection exploit","tags":{"category":"vulnerability_trigger","type":"command_injection"}},"rule_matches":[{"operator":"cmdi_detector","operator_value":"","parameters":[{"address":null,"highlight":["/bin/rebootCommand"],"key_path":null,"value":null}]}],"span_id": XXX}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"rasp-932-110","name":"OS command injection exploit","tags":{"category":"vulnerability_trigger","type":"command_injection"}},"rule_matches":[{"operator":"cmdi_detector","operator_value":"","parameters":[{"address":null,"highlight":["/bin/rebootCommand"],"key_path":null,"value":null}]}],"security_response_id":"Guid_2","span_id": XXX}]},

6 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"rasp-932-100","name":"Shell command injection exploit","tags":{"category":"vulnerability_trigger","type":"command_injection"}},"rule_matches":[{"operator":"shi_detector","operator_value":"","parameters":[{"address":null,"highlight":[";evilCommand"],"key_path":null,"value":null}]}],"span_id": XXX}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"rasp-932-100","name":"Shell command injection exploit","tags":{"category":"vulnerability_trigger","type":"command_injection"}},"rule_matches":[{"operator":"shi_detector","operator_value":"","parameters":[{"address":null,"highlight":[";evilCommand"],"key_path":null,"value":null}]}],"security_response_id":"Guid_2","span_id": XXX}]},

7 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"rasp-001-001","name":"Path traversal attack","tags":{"category":"vulnerability_trigger","type":"lfi"}},"rule_matches":[{"operator":"lfi_detector","operator_value":"","parameters":[{"address":null,"highlight":["/etc/password"],"key_path":null,"value":null}]}],"span_id": XXX}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"rasp-001-001","name":"Path traversal attack","tags":{"category":"vulnerability_trigger","type":"lfi"}},"rule_matches":[{"operator":"lfi_detector","operator_value":"","parameters":[{"address":null,"highlight":["/etc/password"],"key_path":null,"value":null}]}],"security_response_id":"Guid_2","span_id": XXX}]},

10 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"rasp-002-001","name":"Server-side request forgery","tags":{"category":"vulnerability_trigger","type":"ssrf"}},"rule_matches":[{"operator":"ssrf_detector","operator_value":"","parameters":[{"address":null,"highlight":["127.0.0.1"],"key_path":null,"value":null}]}],"span_id": XXX}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"rasp-002-001","name":"Server-side request forgery","tags":{"category":"vulnerability_trigger","type":"ssrf"}},"rule_matches":[{"operator":"ssrf_detector","operator_value":"","parameters":[{"address":null,"highlight":["127.0.0.1"],"key_path":null,"value":null}]}],"security_response_id":"Guid_2","span_id": XXX}]},

6 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"rasp-942-100","name":"SQL injection exploit","tags":{"category":"vulnerability_trigger","type":"sql_injection"}},"rule_matches":[{"operator":"sqli_detector","operator_value":"","parameters":[{"address":null,"highlight":["' or '1'='1"],"key_path":null,"value":null}]}],"span_id": XXX}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"rasp-942-100","name":"SQL injection exploit","tags":{"category":"vulnerability_trigger","type":"sql_injection"}},"rule_matches":[{"operator":"sqli_detector","operator_value":"","parameters":[{"address":null,"highlight":["' or '1'='1"],"key_path":null,"value":null}]}],"security_response_id":"Guid_2","span_id": XXX}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"rasp-001-001","name":"Path traversal attack","tags":{"category":"vulnerability_trigger","type":"lfi"}},"rule_matches":[{"operator":"lfi_detector","operator_value":"","parameters":[{"address":null,"highlight":["/etc/password"],"key_path":null,"value":null}]}],"span_id": XXX}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"rasp-001-001","name":"Path traversal attack","tags":{"category":"vulnerability_trigger","type":"lfi"}},"rule_matches":[{"operator":"lfi_detector","operator_value":"","parameters":[{"address":null,"highlight":["/etc/password"],"key_path":null,"value":null}]}],"security_response_id":"Guid_3","span_id": XXX}]},

3 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"crs-932-160","name":"Remote Command Execution: Unix Shell Code Found","tags":{"category":"attack_attempt","type":"command_injection"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dev/zero"],"key_path":["Property"],"value":"dev/zero"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"crs-932-160","name":"Remote Command Execution: Unix Shell Code Found","tags":{"category":"attack_attempt","type":"command_injection"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dev/zero"],"key_path":["Property"],"value":"dev/zero"}]}],"security_response_id":"Guid_2"}]},

3 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-011","name":"No fun","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"fun","parameters":[{"address":"server.request.uri.raw","highlight":["fun"],"key_path":[],"value":"/health?q=fun"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-011","name":"No fun","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"fun","parameters":[{"address":"server.request.uri.raw","highlight":["fun"],"key_path":[],"value":"/health?q=fun"}]}],"security_response_id":"Guid_2"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-011","name":"No fun","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"fun","parameters":[{"address":"server.request.uri.raw","highlight":["fun"],"key_path":[],"value":"/Home/Privacy?q=fun"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-011","name":"No fun","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"fun","parameters":[{"address":"server.request.uri.raw","highlight":["fun"],"key_path":[],"value":"/Home/Privacy?q=fun"}]}],"security_response_id":"Guid_2"}]},

7 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"ublock","name":"Hello","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"hello","parameters":[{"address":"server.request.headers.no_cookies","highlight":["hello"],"key_path":["user-agent"],"value":"mistake not... hello/v"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"ublock","name":"Hello","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"hello","parameters":[{"address":"server.request.headers.no_cookies","highlight":["hello"],"key_path":["user-agent"],"value":"mistake not... hello/v"}]}],"security_response_id":"Guid_2"}]},

7 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"ublock","name":"Hello","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"hello","parameters":[{"address":"server.request.headers.no_cookies","highlight":["hello"],"key_path":["user-agent"],"value":"mistake not... hello/v"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"ublock","name":"Hello","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"hello","parameters":[{"address":"server.request.headers.no_cookies","highlight":["hello"],"key_path":["user-agent"],"value":"mistake not... hello/v"}]}],"security_response_id":"Guid_3"}]},

7 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"ublock","name":"Hello","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"hello","parameters":[{"address":"server.request.headers.no_cookies","highlight":["hello"],"key_path":["user-agent"],"value":"mistake not... hello/v"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"ublock","name":"Hello","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"hello","parameters":[{"address":"server.request.headers.no_cookies","highlight":["hello"],"key_path":["user-agent"],"value":"mistake not... hello/v"}]}],"security_response_id":"Guid_4"}]},

7 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"ublock","name":"Hello","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"hello","parameters":[{"address":"server.request.headers.no_cookies","highlight":["hello"],"key_path":["user-agent"],"value":"mistake not... hello/v"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"ublock","name":"Hello","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"hello","parameters":[{"address":"server.request.headers.no_cookies","highlight":["hello"],"key_path":["user-agent"],"value":"mistake not... hello/v"}]}],"security_response_id":"Guid_5"}]},

7 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"ublock","name":"Hello","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"hello","parameters":[{"address":"server.request.headers.no_cookies","highlight":["hello"],"key_path":["user-agent"],"value":"mistake not... hello/v"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"ublock","name":"Hello","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"hello","parameters":[{"address":"server.request.headers.no_cookies","highlight":["hello"],"key_path":["user-agent"],"value":"mistake not... hello/v"}]}],"security_response_id":"Guid_6"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property2"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property2"],"value":"dummy_rule"}]}],"security_response_id":"Guid_2"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property2"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property2"],"value":"dummy_rule"}]}],"security_response_id":"Guid_3"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property2"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property2"],"value":"dummy_rule"}]}],"security_response_id":"Guid_4"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property2"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property2"],"value":"dummy_rule"}]}],"security_response_id":"Guid_5"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property2"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property2"],"value":"dummy_rule"}]}],"security_response_id":"Guid_6"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property"],"value":"dummy_rule"}]}],"security_response_id":"Guid_2"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property"],"value":"dummy_rule"}]}],"security_response_id":"Guid_3"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property"],"value":"dummy_rule"}]}],"security_response_id":"Guid_4"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property"],"value":"dummy_rule"}]}],"security_response_id":"Guid_5"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dummy_rule"],"key_path":["Property"],"value":"dummy_rule"}]}],"security_response_id":"Guid_6"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-011","name":"No fun","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"fun","parameters":[{"address":"server.request.uri.raw","highlight":["fun"],"key_path":[],"value":"/health?q=fun"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-011","name":"No fun","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"fun","parameters":[{"address":"server.request.uri.raw","highlight":["fun"],"key_path":[],"value":"/health?q=fun"}]}],"security_response_id":"Guid_3"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-011","name":"No fun","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"fun","parameters":[{"address":"server.request.uri.raw","highlight":["fun"],"key_path":[],"value":"/health?q=fun"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-011","name":"No fun","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"fun","parameters":[{"address":"server.request.uri.raw","highlight":["fun"],"key_path":[],"value":"/health?q=fun"}]}],"security_response_id":"Guid_4"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-011","name":"No fun","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"fun","parameters":[{"address":"server.request.uri.raw","highlight":["fun"],"key_path":[],"value":"/health?q=fun"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-011","name":"No fun","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"fun","parameters":[{"address":"server.request.uri.raw","highlight":["fun"],"key_path":[],"value":"/health?q=fun"}]}],"security_response_id":"Guid_5"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-011","name":"No fun","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"fun","parameters":[{"address":"server.request.uri.raw","highlight":["fun"],"key_path":[],"value":"/health?q=fun"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-011","name":"No fun","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"fun","parameters":[{"address":"server.request.uri.raw","highlight":["fun"],"key_path":[],"value":"/health?q=fun"}]}],"security_response_id":"Guid_6"}]},

3 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-009","name":"Test block on response header","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"en-us|krypton","parameters":[{"address":"server.response.headers.no_cookies","highlight":["krypton"],"key_path":["content-language"],"value":"krypton"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-009","name":"Test block on response header","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"en-us|krypton","parameters":[{"address":"server.response.headers.no_cookies","highlight":["krypton"],"key_path":["content-language"],"value":"krypton"}]}],"security_response_id":"Guid_2"}]},

3 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-009","name":"Test block on response header","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"en-us|krypton","parameters":[{"address":"server.response.headers.no_cookies","highlight":["krypton"],"key_path":["content-language"],"value":"krypton"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-009","name":"Test block on response header","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"en-us|krypton","parameters":[{"address":"server.response.headers.no_cookies","highlight":["krypton"],"key_path":["content-language"],"value":"krypton"}]}],"security_response_id":"Guid_3"}]},

3 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-009","name":"Test block on response header","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"en-us|krypton","parameters":[{"address":"server.response.headers.no_cookies","highlight":["krypton"],"key_path":["content-language"],"value":"krypton"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-009","name":"Test block on response header","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"en-us|krypton","parameters":[{"address":"server.response.headers.no_cookies","highlight":["krypton"],"key_path":["content-language"],"value":"krypton"}]}],"security_response_id":"Guid_4"}]},

3 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-009","name":"Test block on response header","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"en-us|krypton","parameters":[{"address":"server.response.headers.no_cookies","highlight":["krypton"],"key_path":["content-language"],"value":"krypton"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-009","name":"Test block on response header","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"en-us|krypton","parameters":[{"address":"server.response.headers.no_cookies","highlight":["krypton"],"key_path":["content-language"],"value":"krypton"}]}],"security_response_id":"Guid_5"}]},

3 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-009","name":"Test block on response header","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"en-us|krypton","parameters":[{"address":"server.response.headers.no_cookies","highlight":["krypton"],"key_path":["content-language"],"value":"krypton"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-009","name":"Test block on response header","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"en-us|krypton","parameters":[{"address":"server.response.headers.no_cookies","highlight":["krypton"],"key_path":["content-language"],"value":"krypton"}]}],"security_response_id":"Guid_6"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-010","name":"No teapot","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"418","parameters":[{"address":"server.response.status","highlight":["418"],"key_path":[],"value":"418"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-010","name":"No teapot","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"418","parameters":[{"address":"server.response.status","highlight":["418"],"key_path":[],"value":"418"}]}],"security_response_id":"Guid_2"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-010","name":"No teapot","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"418","parameters":[{"address":"server.response.status","highlight":["418"],"key_path":[],"value":"418"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-010","name":"No teapot","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"418","parameters":[{"address":"server.response.status","highlight":["418"],"key_path":[],"value":"418"}]}],"security_response_id":"Guid_3"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-010","name":"No teapot","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"418","parameters":[{"address":"server.response.status","highlight":["418"],"key_path":[],"value":"418"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-010","name":"No teapot","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"418","parameters":[{"address":"server.response.status","highlight":["418"],"key_path":[],"value":"418"}]}],"security_response_id":"Guid_4"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-010","name":"No teapot","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"418","parameters":[{"address":"server.response.status","highlight":["418"],"key_path":[],"value":"418"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-010","name":"No teapot","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"418","parameters":[{"address":"server.response.status","highlight":["418"],"key_path":[],"value":"418"}]}],"security_response_id":"Guid_5"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-010","name":"No teapot","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"418","parameters":[{"address":"server.response.status","highlight":["418"],"key_path":[],"value":"418"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"tst-037-010","name":"No teapot","tags":{"category":"attack_attempt","type":"lfi"}},"rule_matches":[{"operator":"match_regex","operator_value":"418","parameters":[{"address":"server.response.status","highlight":["418"],"key_path":[],"value":"418"}]}],"security_response_id":"Guid_6"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule-custom-block","name":"Dummy rule to test blocking with a custom action","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.query","highlight":["dummy_custom_action"],"key_path":["arg","0"],"value":"dummy_custom_action"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule-custom-block","name":"Dummy rule to test blocking with a custom action","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.query","highlight":["dummy_custom_action"],"key_path":["arg","0"],"value":"dummy_custom_action"}]}],"security_response_id":"Guid_2"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule-custom-block","name":"Dummy rule to test blocking with a custom action","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.query","highlight":["dummy_custom_action"],"key_path":["arg","0"],"value":"dummy_custom_action"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule-custom-block","name":"Dummy rule to test blocking with a custom action","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.query","highlight":["dummy_custom_action"],"key_path":["arg","0"],"value":"dummy_custom_action"}]}],"security_response_id":"Guid_3"}]},

6 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.query","highlight":["dummy_rule"],"key_path":["arg","0"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.query","highlight":["dummy_rule"],"key_path":["arg","0"],"value":"dummy_rule"}]}],"security_response_id":"Guid_2"}]},

6 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.query","highlight":["dummy_rule"],"key_path":["arg","0"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.query","highlight":["dummy_rule"],"key_path":["arg","0"],"value":"dummy_rule"}]}],"security_response_id":"Guid_3"}]},

8 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"blk-001-001","name":"Block IP Addresses","tags":{"category":"security_response","type":"block_ip"}},"rule_matches":[{"operator":"ip_match","operator_value":"","parameters":[{"address":"http.client_ip","highlight":["86.242.244.246"],"key_path":[],"value":"86.242.244.246"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"blk-001-001","name":"Block IP Addresses","tags":{"category":"security_response","type":"block_ip"}},"rule_matches":[{"operator":"ip_match","operator_value":"","parameters":[{"address":"http.client_ip","highlight":["86.242.244.246"],"key_path":[],"value":"86.242.244.246"}]}],"security_response_id":"Guid_2"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"blk-001-001","name":"Block IP Addresses","tags":{"category":"security_response","type":"block_ip"}},"rule_matches":[{"operator":"ip_match","operator_value":"","parameters":[{"address":"http.client_ip","highlight":["86.242.244.246"],"key_path":[],"value":"86.242.244.246"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"blk-001-001","name":"Block IP Addresses","tags":{"category":"security_response","type":"block_ip"}},"rule_matches":[{"operator":"ip_match","operator_value":"","parameters":[{"address":"http.client_ip","highlight":["86.242.244.246"],"key_path":[],"value":"86.242.244.246"}]}],"security_response_id":"Guid_3"}]},

7 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"blk-001-002","name":"Block User Addresses","tags":{"category":"security_response","type":"block_user"}},"rule_matches":[{"operator":"exact_match","operator_value":"","parameters":[{"address":"usr.id","highlight":["user3"],"key_path":[],"value":"user3"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"blk-001-002","name":"Block User Addresses","tags":{"category":"security_response","type":"block_user"}},"rule_matches":[{"operator":"exact_match","operator_value":"","parameters":[{"address":"usr.id","highlight":["user3"],"key_path":[],"value":"user3"}]}],"security_response_id":"Guid_2"}]},

2 occurrences of :

-      _dd.appsec.waf.version: 1.28.1,
+      _dd.appsec.waf.version: 1.30.0,

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"ua0-600-56x","name":"Datadog test scanner - blocking version: user-agent","tags":{"category":"attack_attempt","type":"attack_tool"}},"rule_matches":[{"operator":"match_regex","operator_value":"^dd-test-scanner-log-block(?:$|/|\\s)","parameters":[{"address":"server.request.headers.no_cookies","highlight":["dd-test-scanner-log-block"],"key_path":["user-agent"],"value":"dd-test-scanner-log-block"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"ua0-600-56x","name":"Datadog test scanner - blocking version: user-agent","tags":{"category":"attack_attempt","type":"attack_tool"}},"rule_matches":[{"operator":"match_regex","operator_value":"^dd-test-scanner-log-block(?:$|/|\\s)","parameters":[{"address":"server.request.headers.no_cookies","highlight":["dd-test-scanner-log-block"],"key_path":["user-agent"],"value":"dd-test-scanner-log-block"}]}],"security_response_id":"Guid_2"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"ua0-600-56x","name":"Datadog test scanner - blocking version: user-agent","tags":{"category":"attack_attempt","type":"attack_tool"}},"rule_matches":[{"operator":"match_regex","operator_value":"^dd-test-scanner-log-block(?:$|/|\\s)","parameters":[{"address":"server.request.headers.no_cookies","highlight":["dd-test-scanner-log-block"],"key_path":["user-agent"],"value":"dd-test-scanner-log-block"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"ua0-600-56x","name":"Datadog test scanner - blocking version: user-agent","tags":{"category":"attack_attempt","type":"attack_tool"}},"rule_matches":[{"operator":"match_regex","operator_value":"^dd-test-scanner-log-block(?:$|/|\\s)","parameters":[{"address":"server.request.headers.no_cookies","highlight":["dd-test-scanner-log-block"],"key_path":["user-agent"],"value":"dd-test-scanner-log-block"}]}],"security_response_id":"Guid_3"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"crs-942-290","name":"Finds basic MongoDB SQL injection attempts","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[?\\$(?:(?:s(?:lic|iz)|wher)e|e(?:lemMatch|xists|q)|n(?:o[rt]|in?|e)|l(?:ike|te?)|t(?:ext|ype)|a(?:ll|nd)|jsonSchema|between|regex|x?or|div|mod)\\]?)\\b)","parameters":[{"address":"server.request.query","highlight":["[$slice"],"key_path":["[$slice]"],"value":"[$slice]"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"crs-942-290","name":"Finds basic MongoDB SQL injection attempts","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[?\\$(?:(?:s(?:lic|iz)|wher)e|e(?:lemMatch|xists|q)|n(?:o[rt]|in?|e)|l(?:ike|te?)|t(?:ext|ype)|a(?:ll|nd)|jsonSchema|between|regex|x?or|div|mod)\\]?)\\b)","parameters":[{"address":"server.request.query","highlight":["[$slice"],"key_path":["[$slice]"],"value":"[$slice]"}]}],"security_response_id":"Guid_2"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"blk-001-002","name":"Block User Addresses","tags":{"category":"security_response","type":"block_user"}},"rule_matches":[{"operator":"exact_match","operator_value":"","parameters":[{"address":"usr.id","highlight":["blocked-user"],"key_path":[],"value":"blocked-user"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"blk-001-002","name":"Block User Addresses","tags":{"category":"security_response","type":"block_user"}},"rule_matches":[{"operator":"exact_match","operator_value":"","parameters":[{"address":"usr.id","highlight":["blocked-user"],"key_path":[],"value":"blocked-user"}]}],"security_response_id":"Guid_2"}]},

3 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"blk-001-002","name":"Block User Addresses","tags":{"category":"security_response","type":"block_user"}},"rule_matches":[{"operator":"exact_match","operator_value":"","parameters":[{"address":"usr.id","highlight":["Guid_2"],"key_path":[],"value":"Guid_2"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"blk-001-002","name":"Block User Addresses","tags":{"category":"security_response","type":"block_user"}},"rule_matches":[{"operator":"exact_match","operator_value":"","parameters":[{"address":"usr.id","highlight":["Guid_2"],"key_path":[],"value":"Guid_2"}]}],"security_response_id":"Guid_3"}]},

3 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"blk-001-002","name":"Block User Addresses","tags":{"category":"security_response","type":"block_user"}},"rule_matches":[{"operator":"exact_match","operator_value":"","parameters":[{"address":"usr.id","highlight":["blocked-user"],"key_path":[],"value":"blocked-user"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"blk-001-002","name":"Block User Addresses","tags":{"category":"security_response","type":"block_user"}},"rule_matches":[{"operator":"exact_match","operator_value":"","parameters":[{"address":"usr.id","highlight":["blocked-user"],"key_path":[],"value":"blocked-user"}]}],"security_response_id":"Guid_3"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"canary_rule_redirect_200","name":"Canary rule redirect 200","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"Canary\\/v3_200","parameters":[{"address":"server.request.headers.no_cookies","highlight":["Canary/v3_200"],"key_path":["user-agent"],"value":"Mistake Not... Canary/v3_200"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"canary_rule_redirect_200","name":"Canary rule redirect 200","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"Canary\\/v3_200","parameters":[{"address":"server.request.headers.no_cookies","highlight":["Canary/v3_200"],"key_path":["user-agent"],"value":"Mistake Not... Canary/v3_200"}]}],"security_response_id":"Guid_2"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"canary_rule_redirect_302","name":"Canary rule redirect 302","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"Canary\\/v3_302","parameters":[{"address":"server.request.headers.no_cookies","highlight":["Canary/v3_302"],"key_path":["user-agent"],"value":"Mistake Not... Canary/v3_302"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"canary_rule_redirect_302","name":"Canary rule redirect 302","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"match_regex","operator_value":"Canary\\/v3_302","parameters":[{"address":"server.request.headers.no_cookies","highlight":["Canary/v3_302"],"key_path":["user-agent"],"value":"Mistake Not... Canary/v3_302"}]}],"security_response_id":"Guid_2"}]},

8 occurrences of :

-      http.response.headers.content-length: 167,
+      http.response.headers.content-length: 225,

4 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"crs-932-160","name":"Remote Command Execution: Unix Shell Code Found","tags":{"category":"attack_attempt","type":"command_injection"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dev/zero"],"key_path":["model","Dog2"],"value":"dev/zero"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"crs-932-160","name":"Remote Command Execution: Unix Shell Code Found","tags":{"category":"attack_attempt","type":"command_injection"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.body","highlight":["dev/zero"],"key_path":["model","Dog2"],"value":"dev/zero"}]}],"security_response_id":"Guid_2"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"ua0-600-16x","name":"SQL power injector","tags":{"category":"attack_attempt","type":"attack_tool"}},"rule_matches":[{"operator":"match_regex","operator_value":"sql power injector","parameters":[{"address":"server.request.headers.no_cookies","highlight":["sql power injector"],"key_path":["user-agent"],"value":"Mistake Not... (sql power injector)"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"ua0-600-16x","name":"SQL power injector","tags":{"category":"attack_attempt","type":"attack_tool"}},"rule_matches":[{"operator":"match_regex","operator_value":"sql power injector","parameters":[{"address":"server.request.headers.no_cookies","highlight":["sql power injector"],"key_path":["user-agent"],"value":"Mistake Not... (sql power injector)"}]}],"security_response_id":"Guid_2"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.body","highlight":["[blocking_test]"],"key_path":["miscModel","Property1"],"value":"[blocking_test]"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.body","highlight":["[blocking_test]"],"key_path":["miscModel","Property1"],"value":"[blocking_test]"}]}],"security_response_id":"Guid_2"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.body","highlight":["[blocking_test]"],"key_path":["miscModel","Property1"],"value":"[blocking_test]"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.body","highlight":["[blocking_test]"],"key_path":["miscModel","Property1"],"value":"[blocking_test]"}]}],"security_response_id":"Guid_3"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.body","highlight":["[blocking_test]"],"key_path":["miscModel","Property1"],"value":"[blocking_test]"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.body","highlight":["[blocking_test]"],"key_path":["miscModel","Property1"],"value":"[blocking_test]"}]}],"security_response_id":"Guid_4"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.body","highlight":["[blocking_test]"],"key_path":["miscModel","Property1"],"value":"[blocking_test]"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.body","highlight":["[blocking_test]"],"key_path":["miscModel","Property1"],"value":"[blocking_test]"}]}],"security_response_id":"Guid_5"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.body","highlight":["[blocking_test]"],"key_path":["miscModel","Property1"],"value":"[blocking_test]"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.body","highlight":["[blocking_test]"],"key_path":["miscModel","Property1"],"value":"[blocking_test]"}]}],"security_response_id":"Guid_6"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.query","highlight":["[blocking_test]"],"key_path":["arg","0"],"value":"[blocking_test]"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.query","highlight":["[blocking_test]"],"key_path":["arg","0"],"value":"[blocking_test]"}]}],"security_response_id":"Guid_2"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.query","highlight":["[blocking_test]"],"key_path":["arg","0"],"value":"[blocking_test]"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.query","highlight":["[blocking_test]"],"key_path":["arg","0"],"value":"[blocking_test]"}]}],"security_response_id":"Guid_3"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.query","highlight":["[blocking_test]"],"key_path":["arg","0"],"value":"[blocking_test]"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.query","highlight":["[blocking_test]"],"key_path":["arg","0"],"value":"[blocking_test]"}]}],"security_response_id":"Guid_4"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.query","highlight":["[blocking_test]"],"key_path":["arg","0"],"value":"[blocking_test]"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.query","highlight":["[blocking_test]"],"key_path":["arg","0"],"value":"[blocking_test]"}]}],"security_response_id":"Guid_5"}]},

2 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.query","highlight":["[blocking_test]"],"key_path":["arg","0"],"value":"[blocking_test]"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"block-on-path-params","name":"Block on path params","tags":{"category":"attack_attempt","type":"nosql_injection"}},"rule_matches":[{"operator":"match_regex","operator_value":"(?i:(?:\\[blocking_test\\]))","parameters":[{"address":"server.request.query","highlight":["[blocking_test]"],"key_path":["arg","0"],"value":"[blocking_test]"}]}],"security_response_id":"Guid_6"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.response.headers.no_cookies","highlight":["dummy_rule"],"key_path":["x-test"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.response.headers.no_cookies","highlight":["dummy_rule"],"key_path":["x-test"],"value":"dummy_rule"}]}],"security_response_id":"Guid_2"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.response.headers.no_cookies","highlight":["dummy_rule"],"key_path":["x-test"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.response.headers.no_cookies","highlight":["dummy_rule"],"key_path":["x-test"],"value":"dummy_rule"}]}],"security_response_id":"Guid_3"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.response.headers.no_cookies","highlight":["dummy_rule"],"key_path":["x-test"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.response.headers.no_cookies","highlight":["dummy_rule"],"key_path":["x-test"],"value":"dummy_rule"}]}],"security_response_id":"Guid_4"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.response.headers.no_cookies","highlight":["dummy_rule"],"key_path":["x-test"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.response.headers.no_cookies","highlight":["dummy_rule"],"key_path":["x-test"],"value":"dummy_rule"}]}],"security_response_id":"Guid_5"}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.response.headers.no_cookies","highlight":["dummy_rule"],"key_path":["x-test"],"value":"dummy_rule"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"test-dummy-rule","name":"Dummy rule to test blocking","tags":{"category":"attack_attempt","type":"security_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.response.headers.no_cookies","highlight":["dummy_rule"],"key_path":["x-test"],"value":"dummy_rule"}]}],"security_response_id":"Guid_6"}]},

@pr-commenter
Copy link

pr-commenter bot commented Nov 12, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7807 compared to master:

  • 3 benchmarks are slower, with geometric mean 1.315
  • 2 benchmarks have fewer allocations
  • 2 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 ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.9μs 58.1ns 308ns 0 0 0 5.5 KB
master StartStopWithChild netcoreapp3.1 14μs 73.8ns 369ns 0 0 0 5.71 KB
master StartStopWithChild net472 22.6μs 114ns 534ns 1.05 0.419 0.105 6.01 KB
#7807 StartStopWithChild net6.0 11.1μs 60.3ns 336ns 0 0 0 5.5 KB
#7807 StartStopWithChild netcoreapp3.1 14.2μs 68.2ns 281ns 0 0 0 5.71 KB
#7807 StartStopWithChild net472 21.9μs 98.1ns 354ns 0.867 0.217 0 6 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 1.27ms 508ns 1.97μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.37ms 479ns 1.79μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.72ms 792ns 2.74μs 0 0 0 3.26 KB
#7807 WriteAndFlushEnrichedTraces net6.0 1.29ms 349ns 1.3μs 0 0 0 2.7 KB
#7807 WriteAndFlushEnrichedTraces netcoreapp3.1 1.38ms 888ns 3.44μs 0 0 0 2.7 KB
#7807 WriteAndFlushEnrichedTraces net472 1.71ms 214ns 829ns 0 0 0 3.26 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 1.11μs 4.88ns 18.2ns 0 0 0 1.22 KB
master AllCycleSimpleBody netcoreapp3.1 1.4μs 7.96ns 55.1ns 0 0 0 1.2 KB
master AllCycleSimpleBody net472 1.02μs 0.618ns 2.39ns 0.193 0 0 1.23 KB
master AllCycleMoreComplexBody net6.0 7.23μs 37ns 181ns 0 0 0 4.72 KB
master AllCycleMoreComplexBody netcoreapp3.1 8.85μs 45.5ns 208ns 0 0 0 4.62 KB
master AllCycleMoreComplexBody net472 7.73μs 4.7ns 18.2ns 0.734 0 0 4.74 KB
master ObjectExtractorSimpleBody net6.0 321ns 0.214ns 0.828ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 406ns 2.14ns 10.5ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 295ns 0.0247ns 0.0925ns 0.0445 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.31μs 30.5ns 122ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.94μs 38ns 152ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.7μs 1.87ns 7.22ns 0.572 0 0 3.8 KB
#7807 AllCycleSimpleBody net6.0 1.1μs 5.96ns 32.1ns 0 0 0 1.22 KB
#7807 AllCycleSimpleBody netcoreapp3.1 1.38μs 7.75ns 50.2ns 0 0 0 1.2 KB
#7807 AllCycleSimpleBody net472 1.01μs 0.178ns 0.667ns 0.191 0 0 1.23 KB
#7807 AllCycleMoreComplexBody net6.0 7.3μs 35.9ns 161ns 0 0 0 4.72 KB
#7807 AllCycleMoreComplexBody netcoreapp3.1 8.99μs 44.3ns 198ns 0 0 0 4.62 KB
#7807 AllCycleMoreComplexBody net472 7.81μs 3.77ns 14.6ns 0.743 0 0 4.74 KB
#7807 ObjectExtractorSimpleBody net6.0 322ns 0.151ns 0.584ns 0 0 0 280 B
#7807 ObjectExtractorSimpleBody netcoreapp3.1 403ns 0.147ns 0.569ns 0 0 0 272 B
#7807 ObjectExtractorSimpleBody net472 295ns 0.0423ns 0.164ns 0.0446 0 0 281 B
#7807 ObjectExtractorMoreComplexBody net6.0 6.27μs 33ns 175ns 0 0 0 3.78 KB
#7807 ObjectExtractorMoreComplexBody netcoreapp3.1 7.87μs 36.8ns 147ns 0 0 0 3.69 KB
#7807 ObjectExtractorMoreComplexBody net472 6.7μs 2.85ns 11ns 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 76.5μs 50.7ns 190ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 98.6μs 139ns 539ns 0 0 0 32.4 KB
master EncodeArgs net472 110μs 20.2ns 78.4ns 4.94 0 0 32.5 KB
master EncodeLegacyArgs net6.0 145μs 26.7ns 103ns 0 0 0 2.14 KB
master EncodeLegacyArgs netcoreapp3.1 195μs 14ns 52.4ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 264μs 21.9ns 84.7ns 0 0 0 2.14 KB
#7807 EncodeArgs net6.0 76.4μs 226ns 847ns 0 0 0 32.4 KB
#7807 EncodeArgs netcoreapp3.1 98.8μs 263ns 983ns 0 0 0 32.4 KB
#7807 EncodeArgs net472 109μs 20.2ns 75.6ns 4.89 0 0 32.5 KB
#7807 EncodeLegacyArgs net6.0 145μs 12.2ns 44.1ns 0 0 0 2.14 KB
#7807 EncodeLegacyArgs netcoreapp3.1 199μs 37ns 143ns 0 0 0 2.14 KB
#7807 EncodeLegacyArgs net472 266μs 28.8ns 112ns 0 0 0 2.15 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 426μs 1.66μs 6.22μs 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 628μs 20.9μs 209μs 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 501μs 608ns 2.35μs 0 0 0 0 b
master RunWafRealisticBenchmarkWithAttack net6.0 310μs 1.49μs 5.77μs 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 360μs 3.71μs 36.2μs 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 369μs 413ns 1.55μs 0 0 0 0 b
#7807 RunWafRealisticBenchmark net6.0 411μs 510ns 1.84μs 0 0 0 4.55 KB
#7807 RunWafRealisticBenchmark netcoreapp3.1 474μs 4.9μs 47.5μs 0 0 0 4.48 KB
#7807 RunWafRealisticBenchmark net472 486μs 539ns 2.02μs 0 0 0 0 b
#7807 RunWafRealisticBenchmarkWithAttack net6.0 310μs 1.03μs 3.84μs 0 0 0 2.24 KB
#7807 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 362μs 4.48μs 44.4μs 0 0 0 2.22 KB
#7807 RunWafRealisticBenchmarkWithAttack net472 362μs 729ns 2.83μs 0 0 0 0 b
Benchmarks.Trace.AspNetCoreBenchmark - Unknown 🤷 Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 83.4μs 95.6ns 331ns 0 0 0 18.97 KB
master SendRequest netcoreapp3.1 98.1μs 430ns 2.91μs 0 0 0 21.18 KB
master SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#7807 SendRequest net6.0 83.7μs 239ns 896ns 0 0 0 18.97 KB
#7807 SendRequest netcoreapp3.1 97.4μs 486ns 2.57μs 0 0 0 21.19 KB
#7807 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #7807

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑netcoreapp3.1 1.682 1,657,900.00 2,788,050.00
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 1.126 1,362,200.00 1,534,300.00

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 2.03ms 1.16μs 4.18μs 0 0 0 640 KB
master OriginalCharSlice netcoreapp3.1 3.89ms 1.77μs 6.63μs 0 0 0 640.05 KB
master OriginalCharSlice net472 2.62ms 603ns 2.26μs 0 0 0 638.98 KB
master OptimizedCharSlice net6.0 1.36ms 633ns 2.37μs 0 0 0 0 b
master OptimizedCharSlice netcoreapp3.1 1.66ms 5.17μs 33.9μs 0 0 0 0 b
master OptimizedCharSlice net472 1.89ms 759ns 2.94μs 0 0 0 0 b
master OptimizedCharSliceWithPool net6.0 1.06ms 979ns 3.79μs 0 0 0 0 b
master OptimizedCharSliceWithPool netcoreapp3.1 1.86ms 1.67μs 6.46μs 0 0 0 0 b
master OptimizedCharSliceWithPool net472 1.14ms 977ns 3.78μs 0 0 0 0 b
#7807 OriginalCharSlice net6.0 2.13ms 3.09μs 12μs 0 0 0 640 KB
#7807 OriginalCharSlice netcoreapp3.1 3.89ms 978ns 3.52μs 0 0 0 640.05 KB
#7807 OriginalCharSlice net472 2.62ms 519ns 1.87μs 0 0 0 638.98 KB
#7807 OptimizedCharSlice net6.0 1.54ms 2.01μs 7.78μs 0 0 0 0 b
#7807 OptimizedCharSlice netcoreapp3.1 2.79ms 619ns 2.32μs 0 0 0 0 b
#7807 OptimizedCharSlice net472 2ms 787ns 3.05μs 0 0 0 0 b
#7807 OptimizedCharSliceWithPool net6.0 1.05ms 467ns 1.75μs 0 0 0 0 b
#7807 OptimizedCharSliceWithPool netcoreapp3.1 1.88ms 876ns 3.39μs 0 0 0 0 b
#7807 OptimizedCharSliceWithPool net472 1.17ms 903ns 3.5μs 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7807

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 41.62 KB 42.18 KB 560 B 1.35%

Fewer allocations 🎉 in #7807

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 43.27 KB 41.98 KB -1.3 KB -3.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 727μs 3.51μs 14.5μs 0 0 0 41.62 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 801μs 3.49μs 12.6μs 0 0 0 43.27 KB
master WriteAndFlushEnrichedTraces net472 960μs 4.53μs 17.5μs 5.21 0 0 55.55 KB
#7807 WriteAndFlushEnrichedTraces net6.0 673μs 3.26μs 17.9μs 0 0 0 42.18 KB
#7807 WriteAndFlushEnrichedTraces netcoreapp3.1 762μs 4.32μs 30.9μs 0 0 0 41.98 KB
#7807 WriteAndFlushEnrichedTraces net472 880μs 3.71μs 13.9μs 4.46 0 0 55.78 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.93μs 2.12ns 7.92ns 0 0 0 968 B
master ExecuteNonQuery netcoreapp3.1 2.54μs 7.12ns 27.6ns 0 0 0 960 B
master ExecuteNonQuery net472 2.85μs 1.57ns 5.86ns 0.143 0 0 931 B
#7807 ExecuteNonQuery net6.0 1.9μs 7.22ns 27.9ns 0 0 0 968 B
#7807 ExecuteNonQuery netcoreapp3.1 2.53μs 8.37ns 31.3ns 0 0 0 960 B
#7807 ExecuteNonQuery net472 2.84μs 1.72ns 6.42ns 0.141 0 0 931 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.71μs 8.21ns 32.8ns 0 0 0 952 B
master CallElasticsearch netcoreapp3.1 2.21μs 9.66ns 37.4ns 0 0 0 968 B
master CallElasticsearch net472 3.4μs 3.84ns 14.9ns 0.136 0 0 955 B
master CallElasticsearchAsync net6.0 1.69μs 8.7ns 38.9ns 0 0 0 928 B
master CallElasticsearchAsync netcoreapp3.1 2.49μs 9.09ns 32.8ns 0 0 0 1.02 KB
master CallElasticsearchAsync net472 3.54μs 5.85ns 22.7ns 0.159 0 0 1.01 KB
#7807 CallElasticsearch net6.0 1.74μs 5.76ns 20.8ns 0 0 0 952 B
#7807 CallElasticsearch netcoreapp3.1 2.31μs 11.4ns 49.7ns 0 0 0 968 B
#7807 CallElasticsearch net472 3.38μs 3.01ns 11.6ns 0.151 0 0 955 B
#7807 CallElasticsearchAsync net6.0 1.83μs 1.91ns 6.88ns 0 0 0 928 B
#7807 CallElasticsearchAsync netcoreapp3.1 2.43μs 7.03ns 27.2ns 0 0 0 1.02 KB
#7807 CallElasticsearchAsync net472 3.5μs 2.74ns 10.6ns 0.156 0 0 1.01 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 1ns 3.61ns 0 0 0 896 B
master ExecuteAsync netcoreapp3.1 2.45μs 4.56ns 17.7ns 0 0 0 896 B
master ExecuteAsync net472 2.53μs 2.68ns 10.4ns 0.127 0 0 859 B
#7807 ExecuteAsync net6.0 1.77μs 8.3ns 32.2ns 0 0 0 896 B
#7807 ExecuteAsync netcoreapp3.1 2.42μs 4.08ns 15.8ns 0 0 0 896 B
#7807 ExecuteAsync net472 2.62μs 6.18ns 24ns 0.129 0 0 858 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 7.05μs 12.6ns 48.7ns 0 0 0 2.29 KB
master SendAsync netcoreapp3.1 8.29μs 15.1ns 58.3ns 0 0 0 2.83 KB
master SendAsync net472 12.3μs 6.37ns 24.7ns 0.431 0 0 3.08 KB
#7807 SendAsync net6.0 7.09μs 14.9ns 55.8ns 0 0 0 2.29 KB
#7807 SendAsync netcoreapp3.1 8.32μs 34.4ns 133ns 0 0 0 2.83 KB
#7807 SendAsync net472 12.2μs 9.31ns 36ns 0.486 0 0 3.08 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Slower ⚠️ More allocations ⚠️

Slower ⚠️ in #7807

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 1.201 428,100.00 514,100.00 bimodal

More allocations ⚠️ in #7807

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 248.25 KB 276.86 KB 28.61 KB 11.52%

Fewer allocations 🎉 in #7807

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 272.65 KB 256.27 KB -16.38 KB -6.01%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 45.3μs 235ns 1.08μs 0 0 0 42.51 KB
master StringConcatBenchmark netcoreapp3.1 49.7μs 282ns 1.99μs 0 0 0 42.54 KB
master StringConcatBenchmark net472 57μs 299ns 1.49μs 0 0 0 49.15 KB
master StringConcatAspectBenchmark net6.0 476μs 1.66μs 8.8μs 0 0 0 272.65 KB
master StringConcatAspectBenchmark netcoreapp3.1 434μs 6.43μs 63.7μs 0 0 0 248.25 KB
master StringConcatAspectBenchmark net472 396μs 1.31μs 4.72μs 0 0 0 270.34 KB
#7807 StringConcatBenchmark net6.0 44.3μs 240ns 1.8μs 0 0 0 42.51 KB
#7807 StringConcatBenchmark netcoreapp3.1 50.3μs 247ns 1.08μs 0 0 0 42.54 KB
#7807 StringConcatBenchmark net472 58.1μs 145ns 523ns 0 0 0 49.15 KB
#7807 StringConcatAspectBenchmark net6.0 467μs 1.23μs 4.91μs 0 0 0 256.27 KB
#7807 StringConcatAspectBenchmark netcoreapp3.1 513μs 1.04μs 5.22μs 0 0 0 276.86 KB
#7807 StringConcatAspectBenchmark net472 413μs 2.2μs 11.4μs 0 0 0 270.34 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.64μs 13.8ns 64.9ns 0 0 0 1.69 KB
master EnrichedLog netcoreapp3.1 3.63μs 1.96ns 7.59ns 0 0 0 1.7 KB
master EnrichedLog net472 3.77μs 4.73ns 18.3ns 0.245 0 0 1.6 KB
#7807 EnrichedLog net6.0 2.72μs 2.04ns 7.62ns 0 0 0 1.69 KB
#7807 EnrichedLog netcoreapp3.1 3.52μs 18.5ns 90.6ns 0 0 0 1.7 KB
#7807 EnrichedLog net472 3.9μs 6.97ns 27ns 0.252 0 0 1.6 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 134μs 723ns 3.96μs 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 138μs 704ns 3.15μs 0 0 0 4.31 KB
master EnrichedLog net472 168μs 779ns 3.48μs 0 0 0 4.51 KB
#7807 EnrichedLog net6.0 124μs 73.6ns 275ns 0 0 0 4.31 KB
#7807 EnrichedLog netcoreapp3.1 128μs 134ns 482ns 0 0 0 4.31 KB
#7807 EnrichedLog net472 166μs 98.4ns 381ns 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 5.05μs 5.03ns 19.5ns 0 0 0 2.24 KB
master EnrichedLog netcoreapp3.1 6.89μs 18.8ns 67.9ns 0 0 0 2.26 KB
master EnrichedLog net472 7.59μs 5.38ns 20.1ns 0.302 0 0 2.05 KB
#7807 EnrichedLog net6.0 5.18μs 8.77ns 31.6ns 0 0 0 2.24 KB
#7807 EnrichedLog netcoreapp3.1 6.98μs 24.8ns 89.3ns 0 0 0 2.26 KB
#7807 EnrichedLog net472 7.63μs 4.53ns 17.6ns 0.304 0 0 2.05 KB
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 1.87μs 10.4ns 61.6ns 0 0 0 1.12 KB
master SendReceive netcoreapp3.1 2.59μs 11.2ns 43.3ns 0 0 0 1.14 KB
master SendReceive net472 2.82μs 2.14ns 8.03ns 0.169 0 0 1.12 KB
#7807 SendReceive net6.0 1.97μs 8.92ns 34.5ns 0 0 0 1.12 KB
#7807 SendReceive netcoreapp3.1 2.62μs 12.7ns 50.8ns 0 0 0 1.14 KB
#7807 SendReceive net472 2.94μs 0.957ns 3.58ns 0.163 0 0 1.12 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.28μs 6.24ns 24.2ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.77μs 10.2ns 38.3ns 0 0 0 1.63 KB
master EnrichedLog net472 6.58μs 6.82ns 26.4ns 0.296 0 0 2.03 KB
#7807 EnrichedLog net6.0 4.4μs 6.35ns 24.6ns 0 0 0 1.59 KB
#7807 EnrichedLog netcoreapp3.1 5.63μs 5.38ns 20.8ns 0 0 0 1.63 KB
#7807 EnrichedLog net472 6.6μs 6.77ns 26.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 773ns 3.83ns 15.8ns 0 0 0 520 B
master StartFinishSpan netcoreapp3.1 963ns 5.18ns 26.4ns 0 0 0 520 B
master StartFinishSpan net472 908ns 0.376ns 1.41ns 0.082 0 0 522 B
master StartFinishScope net6.0 887ns 4.55ns 20.9ns 0 0 0 640 B
master StartFinishScope netcoreapp3.1 1.17μs 4.97ns 19.2ns 0 0 0 640 B
master StartFinishScope net472 1.11μs 0.318ns 1.19ns 0.0949 0 0 602 B
master StartFinishTwoScopes net6.0 1.81μs 1.91ns 7.13ns 0 0 0 1.19 KB
master StartFinishTwoScopes netcoreapp3.1 2.29μs 3.38ns 13.1ns 0 0 0 1.19 KB
master StartFinishTwoScopes net472 2.18μs 0.462ns 1.66ns 0.163 0 0 1.08 KB
#7807 StartFinishSpan net6.0 769ns 0.422ns 1.63ns 0 0 0 520 B
#7807 StartFinishSpan netcoreapp3.1 949ns 4.99ns 23.9ns 0 0 0 520 B
#7807 StartFinishSpan net472 899ns 0.26ns 1.01ns 0.0813 0 0 522 B
#7807 StartFinishScope net6.0 932ns 4.8ns 21.5ns 0 0 0 640 B
#7807 StartFinishScope netcoreapp3.1 1.15μs 4.92ns 19.1ns 0 0 0 640 B
#7807 StartFinishScope net472 1.15μs 1.46ns 5.25ns 0.0939 0 0 602 B
#7807 StartFinishTwoScopes net6.0 1.79μs 8.38ns 34.6ns 0 0 0 1.19 KB
#7807 StartFinishTwoScopes netcoreapp3.1 2.23μs 11.5ns 57.3ns 0 0 0 1.19 KB
#7807 StartFinishTwoScopes net472 2.16μs 1.62ns 5.86ns 0.163 0 0 1.08 KB
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.07μs 5.19ns 21.4ns 0 0 0 640 B
master RunOnMethodBegin netcoreapp3.1 1.38μs 7.31ns 36.6ns 0 0 0 640 B
master RunOnMethodBegin net472 1.45μs 0.578ns 2.24ns 0.0945 0 0 602 B
#7807 RunOnMethodBegin net6.0 1.08μs 3.43ns 13.3ns 0 0 0 640 B
#7807 RunOnMethodBegin netcoreapp3.1 1.38μs 7.12ns 32.6ns 0 0 0 640 B
#7807 RunOnMethodBegin net472 1.42μs 0.394ns 1.52ns 0.0924 0 0 602 B

@e-n-0 e-n-0 force-pushed the flavien/waf_security_response_id branch from b9b45f9 to 5c5e07a Compare December 2, 2025 14:50
@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Dec 2, 2025

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

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

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

dd-trace-dotnet-ci-bot bot commented Dec 2, 2025

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (7807) and master.

✅ No regressions detected - check the details below

Full Metrics Comparison

FakeDbCommand

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration75.56 ± (75.52 - 76.29) ms75.91 ± (75.78 - 76.56) ms+0.5%✅⬆️
.NET Framework 4.8 - Bailout
duration81.07 ± (80.73 - 81.53) ms80.13 ± (79.91 - 80.55) ms-1.2%
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1068.62 ± (1071.25 - 1081.73) ms1064.01 ± (1061.73 - 1068.12) ms-0.4%
.NET Core 3.1 - Baseline
process.internal_duration_ms22.99 ± (22.90 - 23.08) ms22.87 ± (22.79 - 22.94) ms-0.5%
process.time_to_main_ms88.36 ± (88.00 - 88.72) ms88.17 ± (87.83 - 88.51) ms-0.2%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.93 ± (10.93 - 10.93) MB10.91 ± (10.90 - 10.91) MB-0.2%
runtime.dotnet.threads.count12 ± (12 - 12)12 ± (12 - 12)+0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms22.95 ± (22.88 - 23.03) ms22.72 ± (22.65 - 22.79) ms-1.0%
process.time_to_main_ms89.83 ± (89.50 - 90.15) ms88.12 ± (87.82 - 88.42) ms-1.9%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.96 ± (10.96 - 10.97) MB10.95 ± (10.95 - 10.96) MB-0.1%
runtime.dotnet.threads.count13 ± (13 - 13)13 ± (13 - 13)+0.0%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms222.52 ± (221.17 - 223.87) ms219.77 ± (218.48 - 221.06) ms-1.2%
process.time_to_main_ms504.32 ± (503.20 - 505.45) ms504.38 ± (502.98 - 505.79) ms+0.0%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed47.92 ± (47.90 - 47.95) MB47.91 ± (47.89 - 47.93) MB-0.0%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)-0.1%
.NET 6 - Baseline
process.internal_duration_ms21.87 ± (21.80 - 21.94) ms21.79 ± (21.73 - 21.86) ms-0.3%
process.time_to_main_ms76.98 ± (76.65 - 77.31) ms76.61 ± (76.29 - 76.94) ms-0.5%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.61 ± (10.61 - 10.61) MB10.61 ± (10.61 - 10.62) MB+0.0%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms21.73 ± (21.67 - 21.80) ms22.04 ± (21.96 - 22.12) ms+1.4%✅⬆️
process.time_to_main_ms77.42 ± (77.11 - 77.72) ms78.70 ± (78.39 - 79.01) ms+1.7%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.66 ± (10.66 - 10.66) MB10.65 ± (10.65 - 10.66) MB-0.1%
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms212.53 ± (211.39 - 213.66) ms213.32 ± (212.07 - 214.58) ms+0.4%✅⬆️
process.time_to_main_ms472.54 ± (471.41 - 473.66) ms470.20 ± (469.08 - 471.32) ms-0.5%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed48.11 ± (48.08 - 48.14) MB48.07 ± (48.04 - 48.09) MB-0.1%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)-0.0%
.NET 8 - Baseline
process.internal_duration_ms19.90 ± (19.83 - 19.98) ms19.89 ± (19.83 - 19.95) ms-0.1%
process.time_to_main_ms75.15 ± (74.82 - 75.48) ms75.90 ± (75.55 - 76.26) ms+1.0%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.66 ± (7.66 - 7.66) MB7.63 ± (7.63 - 7.64) MB-0.3%
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms20.05 ± (19.98 - 20.12) ms19.92 ± (19.85 - 19.98) ms-0.7%
process.time_to_main_ms77.83 ± (77.48 - 78.17) ms77.70 ± (77.35 - 78.04) ms-0.2%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.72 ± (7.71 - 7.72) MB7.70 ± (7.69 - 7.70) MB-0.2%
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms195.17 ± (194.28 - 196.05) ms194.59 ± (193.67 - 195.50) ms-0.3%
process.time_to_main_ms458.69 ± (457.73 - 459.65) ms458.55 ± (457.56 - 459.53) ms-0.0%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed36.49 ± (36.45 - 36.53) MB36.38 ± (36.34 - 36.42) MB-0.3%
runtime.dotnet.threads.count27 ± (27 - 27)27 ± (27 - 27)+0.0%✅⬆️

HttpMessageHandler

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration194.87 ± (195.14 - 196.24) ms195.69 ± (195.96 - 197.00) ms+0.4%✅⬆️
.NET Framework 4.8 - Bailout
duration198.23 ± (198.01 - 198.90) ms198.43 ± (198.42 - 199.32) ms+0.1%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1128.66 ± (1131.09 - 1140.51) ms1125.89 ± (1128.77 - 1137.42) ms-0.2%
.NET Core 3.1 - Baseline
process.internal_duration_ms191.04 ± (190.57 - 191.52) ms190.98 ± (190.53 - 191.43) ms-0.0%
process.time_to_main_ms81.78 ± (81.55 - 82.01) ms82.11 ± (81.89 - 82.32) ms+0.4%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.05 ± (16.02 - 16.08) MB16.07 ± (16.05 - 16.10) MB+0.1%✅⬆️
runtime.dotnet.threads.count20 ± (20 - 20)20 ± (20 - 20)-0.2%
.NET Core 3.1 - Bailout
process.internal_duration_ms190.05 ± (189.64 - 190.46) ms190.11 ± (189.70 - 190.52) ms+0.0%✅⬆️
process.time_to_main_ms83.07 ± (82.86 - 83.29) ms83.03 ± (82.81 - 83.25) ms-0.1%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.13 ± (16.10 - 16.16) MB16.12 ± (16.09 - 16.15) MB-0.1%
runtime.dotnet.threads.count21 ± (20 - 21)21 ± (20 - 21)+0.2%✅⬆️
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms396.17 ± (394.32 - 398.03) ms405.45 ± (402.64 - 408.26) ms+2.3%✅⬆️
process.time_to_main_ms478.34 ± (477.55 - 479.13) ms481.36 ± (480.56 - 482.15) ms+0.6%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed59.01 ± (58.91 - 59.10) MB58.84 ± (58.72 - 58.96) MB-0.3%
runtime.dotnet.threads.count30 ± (29 - 30)29 ± (29 - 29)-0.3%
.NET 6 - Baseline
process.internal_duration_ms195.00 ± (194.53 - 195.46) ms195.91 ± (195.44 - 196.38) ms+0.5%✅⬆️
process.time_to_main_ms70.60 ± (70.39 - 70.81) ms71.19 ± (71.03 - 71.36) ms+0.8%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.09 ± (15.95 - 16.23) MB16.39 ± (16.37 - 16.42) MB+1.9%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)+1.1%✅⬆️
.NET 6 - Bailout
process.internal_duration_ms194.18 ± (193.77 - 194.58) ms193.97 ± (193.54 - 194.41) ms-0.1%
process.time_to_main_ms71.60 ± (71.41 - 71.80) ms71.72 ± (71.54 - 71.91) ms+0.2%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.43 ± (16.40 - 16.46) MB16.46 ± (16.43 - 16.49) MB+0.2%✅⬆️
runtime.dotnet.threads.count20 ± (20 - 20)20 ± (20 - 20)+0.6%✅⬆️
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms412.63 ± (410.31 - 414.95) ms409.67 ± (407.75 - 411.59) ms-0.7%
process.time_to_main_ms448.61 ± (447.84 - 449.39) ms448.73 ± (448.04 - 449.43) ms+0.0%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed59.09 ± (58.96 - 59.22) MB59.33 ± (59.24 - 59.41) MB+0.4%✅⬆️
runtime.dotnet.threads.count30 ± (30 - 30)30 ± (29 - 30)-0.1%
.NET 8 - Baseline
process.internal_duration_ms192.93 ± (192.49 - 193.37) ms192.98 ± (192.54 - 193.42) ms+0.0%✅⬆️
process.time_to_main_ms70.25 ± (70.07 - 70.42) ms70.22 ± (70.04 - 70.39) ms-0.0%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.71 ± (11.69 - 11.73) MB11.78 ± (11.76 - 11.80) MB+0.6%✅⬆️
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)+0.0%✅⬆️
.NET 8 - Bailout
process.internal_duration_ms193.12 ± (192.64 - 193.61) ms192.46 ± (191.99 - 192.92) ms-0.3%
process.time_to_main_ms71.37 ± (71.22 - 71.53) ms71.24 ± (71.05 - 71.43) ms-0.2%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.81 ± (11.79 - 11.83) MB11.82 ± (11.80 - 11.84) MB+0.1%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)-0.1%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms370.91 ± (369.53 - 372.29) ms371.89 ± (370.67 - 373.12) ms+0.3%✅⬆️
process.time_to_main_ms436.06 ± (435.45 - 436.68) ms435.08 ± (434.38 - 435.78) ms-0.2%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed47.95 ± (47.92 - 47.98) MB47.94 ± (47.92 - 47.97) MB-0.0%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.8%✅⬆️
Comparison explanation

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 highlighted 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).

Duration charts
FakeDbCommand (.NET Framework 4.8)
gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7807) - mean (76ms)  : 70, 82
    master - mean (76ms)  : 70, 82

    section Bailout
    This PR (7807) - mean (80ms)  : 76, 85
    master - mean (81ms)  : 75, 87

    section CallTarget+Inlining+NGEN
    This PR (7807) - mean (1,065ms)  : 1019, 1111
    master - mean (1,076ms)  : 995, 1158

Loading
FakeDbCommand (.NET Core 3.1)
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7807) - mean (119ms)  : 111, 126
    master - mean (119ms)  : 112, 126

    section Bailout
    This PR (7807) - mean (118ms)  : 113, 124
    master - mean (120ms)  : 115, 126

    section CallTarget+Inlining+NGEN
    This PR (7807) - mean (762ms)  : 726, 798
    master - mean (768ms)  : 733, 802

Loading
FakeDbCommand (.NET 6)
gantt
    title Execution time (ms) FakeDbCommand (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7807) - mean (105ms)  : 100, 111
    master - mean (106ms)  : 99, 112

    section Bailout
    This PR (7807) - mean (108ms)  : 102, 114
    master - mean (106ms)  : 99, 114

    section CallTarget+Inlining+NGEN
    This PR (7807) - mean (712ms)  : 682, 742
    master - mean (719ms)  : 670, 769

Loading
FakeDbCommand (.NET 8)
gantt
    title Execution time (ms) FakeDbCommand (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7807) - mean (104ms)  : 98, 111
    master - mean (104ms)  : 96, 111

    section Bailout
    This PR (7807) - mean (106ms)  : 100, 113
    master - mean (107ms)  : 101, 113

    section CallTarget+Inlining+NGEN
    This PR (7807) - mean (693ms)  : 659, 727
    master - mean (697ms)  : 670, 723

Loading
HttpMessageHandler (.NET Framework 4.8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7807) - mean (196ms)  : 188, 205
    master - mean (196ms)  : 190, 202

    section Bailout
    This PR (7807) - mean (199ms)  : 194, 204
    master - mean (198ms)  : 194, 203

    section CallTarget+Inlining+NGEN
    This PR (7807) - mean (1,133ms)  : 1069, 1197
    master - mean (1,136ms)  : 1067, 1205

Loading
HttpMessageHandler (.NET Core 3.1)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7807) - mean (282ms)  : 274, 290
    master - mean (282ms)  : 275, 289

    section Bailout
    This PR (7807) - mean (282ms)  : 275, 289
    master - mean (282ms)  : 276, 288

    section CallTarget+Inlining+NGEN
    This PR (7807) - mean (927ms)  : 878, 976
    master - mean (915ms)  : 881, 949

Loading
HttpMessageHandler (.NET 6)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7807) - mean (275ms)  : 269, 282
    master - mean (274ms)  : 268, 280

    section Bailout
    This PR (7807) - mean (274ms)  : 268, 279
    master - mean (274ms)  : 268, 279

    section CallTarget+Inlining+NGEN
    This PR (7807) - mean (893ms)  : 856, 931
    master - mean (898ms)  : 850, 946

Loading
HttpMessageHandler (.NET 8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7807) - mean (273ms)  : 267, 280
    master - mean (274ms)  : 267, 280

    section Bailout
    This PR (7807) - mean (273ms)  : 266, 281
    master - mean (274ms)  : 266, 282

    section CallTarget+Inlining+NGEN
    This PR (7807) - mean (839ms)  : 815, 864
    master - mean (838ms)  : 815, 860

Loading

@e-n-0 e-n-0 force-pushed the flavien/waf_security_response_id branch 8 times, most recently from 8afd0f6 to b78f9a8 Compare December 4, 2025 14:10
@e-n-0 e-n-0 marked this pull request as ready for review December 4, 2025 15:54
@e-n-0 e-n-0 requested review from a team as code owners December 4, 2025 15:54
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@e-n-0 e-n-0 force-pushed the flavien/waf_security_response_id branch from 795a193 to a972351 Compare December 8, 2025 11:53
Copy link
Contributor

@daniel-romano-DD daniel-romano-DD left a comment

Choose a reason for hiding this comment

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

Thanks a lot!

@e-n-0 e-n-0 force-pushed the flavien/waf_security_response_id branch from a972351 to c775aa4 Compare December 9, 2025 09:56
@e-n-0
Copy link
Member Author

e-n-0 commented Dec 9, 2025

/merge

@dd-devflow-routing-codex
Copy link

dd-devflow-routing-codex bot commented Dec 9, 2025

View all feedbacks in Devflow UI.

2025-12-09 11:51:36 UTC ℹ️ Start processing command /merge


2025-12-09 11:51:39 UTC ℹ️ MergeQueue: queue is disabled

Added to the queue but the mergequeue is not enabled for now.


2025-12-09 11:52:23 UTC ℹ️ MergeQueue: This merge request was already merged

This pull request was merged directly.

@e-n-0 e-n-0 merged commit 66a621b into master Dec 9, 2025
151 of 152 checks passed
@e-n-0 e-n-0 deleted the flavien/waf_security_response_id branch December 9, 2025 11:52
@github-actions github-actions bot added this to the vNext-v3 milestone Dec 9, 2025
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.

2 participants