Skip to content

[ASM] Send header values as string to the WAF#6144

Merged
NachoEchevarria merged 11 commits into
masterfrom
nacho/SendUserAgentHeaderAsStringToTheWaf2
Oct 11, 2024
Merged

[ASM] Send header values as string to the WAF#6144
NachoEchevarria merged 11 commits into
masterfrom
nacho/SendUserAgentHeaderAsStringToTheWaf2

Conversation

@NachoEchevarria

@NachoEchevarria NachoEchevarria commented Oct 11, 2024

Copy link
Copy Markdown
Collaborator

Summary of changes

Util this PR, we woudl store the request headers in a array of strings and we would send that array to the WAF. When generating fingerprints, the WAF does not accept arrays of strings but a single string, so, when we have a single header value, we store it in a string instead of in an array of strings with a single value inside the array.

This change has fixed some problems related to the fingerprint generation, which has derived in a large amount of updated snapshots.

Reason for change

Implementation details

Test coverage

Other details

@github-actions

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.

81 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0000000000--1-4740ae63,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,

6 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0100000001--3-bf93958a,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0100000001-3626b5f8-3-bf93958a,
+      _dd.appsec.fp.http.network: net-1-1000000000,

17 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0100000100--2-da57b738,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0100000100-3626b5f8-2-da57b738,
+      _dd.appsec.fp.http.network: net-1-1000000000,

14 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0000000001--3-bf93958a,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0000000001-3626b5f8-3-bf93958a,
+      _dd.appsec.fp.http.network: net-1-1000000000,

17 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0000000100--2-da57b738,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0000000100-3626b5f8-2-da57b738,
+      _dd.appsec.fp.http.network: net-1-1000000000,

26 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0000000100--3-4d739311,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0000000100-3626b5f8-3-4d739311,
+      _dd.appsec.fp.http.network: net-1-1000000000,

8 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0000000001--5-6cdcf2fe,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0000000001-3626b5f8-5-6cdcf2fe,
+      _dd.appsec.fp.http.network: net-1-1000000000,

25 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0000000100--5-07490af2,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0000000100-3626b5f8-5-07490af2,
+      _dd.appsec.fp.http.network: net-1-1000000000,

1 occurrences of :

-      _dd.appsec.s.req.headers: [{"connection":[[[8]],{"len":1}],"content-length":[[[8]],{"len":1}],"content-type":[[[8]],{"len":1}],"host":[[[8]],{"len":1}],"user-agent":[[[8]],{"len":1}],"x-forwarded-for":[[[8]],{"len":1}]}],
+      _dd.appsec.s.req.headers: [{"connection":[8],"content-length":[8],"content-type":[8],"host":[8],"user-agent":[8],"x-forwarded-for":[8]}],

1 occurrences of :

-      _dd.appsec.s.req.headers: [{"connection":[[[8]],{"len":1}],"content-length":[[[8]],{"len":1}],"content-type":[[[8]],{"len":1}],"host":[[[8]],{"len":1}],"user-agent":[[[8]],{"len":1}],"x-forwarded-for":[[[8]],{"len":1}]}],
-      _dd.appsec.s.res.headers: [{"content-type":[[[8]],{"len":1}]}],
+      _dd.appsec.s.req.headers: [{"connection":[8],"content-length":[8],"content-type":[8],"host":[8],"user-agent":[8],"x-forwarded-for":[8]}],
+      _dd.appsec.s.res.headers: [{"content-type":[8]}],

1 occurrences of :

-      _dd.appsec.s.req.headers: [{"connection":[[[8]],{"len":1}],"content-length":[[[8]],{"len":1}],"content-type":[[[8]],{"len":1}],"host":[[[8]],{"len":1}],"user-agent":[[[8]],{"len":1}],"x-forwarded-for":[[[8]],{"len":1}]}],
+      _dd.appsec.s.req.headers: [{"connection":[8],"content-length":[8],"content-type":[8],"host":[8],"user-agent":[8],"x-forwarded-for":[8]}],
[...]
-      _dd.appsec.s.res.headers: [{"content-type":[[[8]],{"len":1}]}],
+      _dd.appsec.s.res.headers: [{"content-type":[8]}],

1 occurrences of :

-      _dd.appsec.s.req.headers: [{"content-length":[[[8]],{"len":1}],"content-type":[[[8]],{"len":1}],"host":[[[8]],{"len":1}],"user-agent":[[[8]],{"len":1}],"x-forwarded-for":[[[8]],{"len":1}]}],
+      _dd.appsec.s.req.headers: [{"content-length":[8],"content-type":[8],"host":[8],"user-agent":[8],"x-forwarded-for":[8]}],

2 occurrences of :

-      _dd.appsec.s.req.headers: [{"content-length":[[[8]],{"len":1}],"content-type":[[[8]],{"len":1}],"host":[[[8]],{"len":1}],"user-agent":[[[8]],{"len":1}],"x-forwarded-for":[[[8]],{"len":1}]}],
+      _dd.appsec.s.req.headers: [{"content-length":[8],"content-type":[8],"host":[8],"user-agent":[8],"x-forwarded-for":[8]}],
[...]
-      _dd.appsec.s.res.headers: [{"content-type":[[[8]],{"len":1}]}],
+      _dd.appsec.s.res.headers: [{"content-type":[8]}],

5 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0100000000--1-4740ae63,
-      _dd.appsec.fp.http.network: net-0-1000000000,
-      _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","0"],"value":"mistake not... hello/v"}]}]}]},
+      _dd.appsec.fp.http.header: hdr-0100000000-197358b8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _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"}]}]}]},

20 occurrences of :

-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.network: <NetworkPrint>,

15 occurrences of :

-      _dd.appsec.fp.http.network: net-0-1000000000,
-      _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","0"],"value":"krypton"}]}]}]},
+      _dd.appsec.fp.http.network: <NetworkPrint>,
+      _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"}]}]}]},

1 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0000000010--1-4740ae63,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0000000010-3626b5f8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,

20 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0000000000--1-4740ae63,
-      _dd.appsec.fp.http.network: net-0-1000000000,
-      _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","0"],"value":"mistake not... hello/v"}]}]}]},
+      _dd.appsec.fp.http.header: hdr-0000000000-197358b8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _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"}]}]}]},

1 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"new-test-non-blocking","name":"Datadog test scanner - NON 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","0"],"value":"dd-test-scanner-log-block"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"new-test-non-blocking","name":"Datadog test scanner - NON 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"}]}]}]},

2 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","0"],"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"}]}]}]},

3 occurrences of :

-      _dd.appsec.s.req.headers: [{"content-length":[[[8]],{"len":1}],"content-type":[[[8]],{"len":1}],"expect":[[[8]],{"len":1}],"host":[[[8]],{"len":1}],"traceparent":[[[8]],{"len":1}],"tracestate":[[[8]],{"len":1}],"user-agent":[[[8]],{"len":1}],"x-datadog-parent-id":[[[8]],{"len":1}],"x-datadog-sampling-priority":[[[8]],{"len":1}],"x-datadog-tags":[[[8]],{"len":1}],"x-datadog-trace-id":[[[8]],{"len":1}],"x-forwarded-for":[[[8]],{"len":1}]}],
+      _dd.appsec.s.req.headers: [{"content-length":[8],"content-type":[8],"expect":[8],"host":[8],"traceparent":[8],"tracestate":[8],"user-agent":[8],"x-datadog-parent-id":[8],"x-datadog-sampling-priority":[8],"x-datadog-tags":[8],"x-datadog-trace-id":[8],"x-forwarded-for":[8]}],
[...]
-      _dd.appsec.s.res.headers: [{"cache-control":[[[8]],{"len":1}],"content-length":[[[8]],{"len":1}],"content-type":[[[8]],{"len":1}],"expires":[[[8]],{"len":1}],"pragma":[[[8]],{"len":1}],"server":[[[8]],{"len":1}],"x-aspnet-version":[[[8]],{"len":1}]}],
+      _dd.appsec.s.res.headers: [{"cache-control":[8],"content-length":[8],"content-type":[8],"expires":[8],"pragma":[8],"server":[8],"x-aspnet-version":[8]}],

1 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0100000100--3-4d739311,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0100000100-3626b5f8-3-4d739311,
+      _dd.appsec.fp.http.network: net-1-1000000000,

15 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0000000000--3-98425651,
-      _dd.appsec.fp.http.network: net-0-1000000000,
-      _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","0"],"value":"mistake not... hello/v"}]}]}]},
+      _dd.appsec.fp.http.header: hdr-0000000000-197358b8-3-98425651,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _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"}]}]}]},

54 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0000000000--3-98425651,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-3-98425651,
+      _dd.appsec.fp.http.network: net-1-1000000000,

2 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0100000100--5-07490af2,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0100000100-3626b5f8-5-07490af2,
+      _dd.appsec.fp.http.network: net-1-1000000000,

5 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0000000000--3-98425651,
-      _dd.appsec.fp.http.network: net-0-1000000000,
-      _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","0"],"value":"krypton"}]}]}]},
+      _dd.appsec.fp.http.header: hdr-0000000000-3626b5f8-3-98425651,
+      _dd.appsec.fp.http.network: net-1-1000000000,
+      _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"}]}]}]},

2 occurrences of :

-      _dd.appsec.s.req.headers: [{"content-length":[[[8]],{"len":1}],"content-type":[[[8]],{"len":1}],"expect":[[[8]],{"len":1}],"host":[[[8]],{"len":1}],"traceparent":[[[8]],{"len":1}],"tracestate":[[[8]],{"len":1}],"user-agent":[[[8]],{"len":1}],"x-datadog-parent-id":[[[8]],{"len":1}],"x-datadog-sampling-priority":[[[8]],{"len":1}],"x-datadog-tags":[[[8]],{"len":1}],"x-datadog-trace-id":[[[8]],{"len":1}],"x-forwarded-for":[[[8]],{"len":1}]}],
+      _dd.appsec.s.req.headers: [{"content-length":[8],"content-type":[8],"expect":[8],"host":[8],"traceparent":[8],"tracestate":[8],"user-agent":[8],"x-datadog-parent-id":[8],"x-datadog-sampling-priority":[8],"x-datadog-tags":[8],"x-datadog-trace-id":[8],"x-forwarded-for":[8]}],
[...]
-      _dd.appsec.s.res.headers: [{"cache-control":[[[8]],{"len":1}],"content-type":[[[8]],{"len":1}],"server":[[[8]],{"len":1}],"x-aspnetmvc-version":[[[8]],{"len":1}],"x-aspnet-version":[[[8]],{"len":1}]}],
+      _dd.appsec.s.res.headers: [{"cache-control":[8],"content-type":[8],"server":[8],"x-aspnetmvc-version":[8],"x-aspnet-version":[8]}],

1 occurrences of :

-      _dd.appsec.s.req.headers: [{"content-length":[[[8]],{"len":1}],"content-type":[[[8]],{"len":1}],"expect":[[[8]],{"len":1}],"host":[[[8]],{"len":1}],"traceparent":[[[8]],{"len":1}],"tracestate":[[[8]],{"len":1}],"user-agent":[[[8]],{"len":1}],"x-datadog-parent-id":[[[8]],{"len":1}],"x-datadog-sampling-priority":[[[8]],{"len":1}],"x-datadog-tags":[[[8]],{"len":1}],"x-datadog-trace-id":[[[8]],{"len":1}],"x-forwarded-for":[[[8]],{"len":1}]}],
+      _dd.appsec.s.req.headers: [{"content-length":[8],"content-type":[8],"expect":[8],"host":[8],"traceparent":[8],"tracestate":[8],"user-agent":[8],"x-datadog-parent-id":[8],"x-datadog-sampling-priority":[8],"x-datadog-tags":[8],"x-datadog-trace-id":[8],"x-forwarded-for":[8]}],
[...]
-      _dd.appsec.s.res.headers: [{"cache-control":[[[8]],{"len":1}],"content-type":[[[8]],{"len":1}],"x-aspnet-version":[[[8]],{"len":1}]}],
+      _dd.appsec.s.res.headers: [{"cache-control":[8],"content-type":[8],"x-aspnet-version":[8]}],

3 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0100000000--1-4740ae63,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0100000000-3626b5f8-1-4740ae63,
+      _dd.appsec.fp.http.network: net-1-1000000000,

2 occurrences of :

-      _dd.appsec.fp.http.header: hdr-0100000000--3-98425651,
-      _dd.appsec.fp.http.network: net-0-1000000000,
+      _dd.appsec.fp.http.header: hdr-0100000000-3626b5f8-3-98425651,
+      _dd.appsec.fp.http.network: net-1-1000000000,

6 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","0"],"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)"}]}]}]},

3 occurrences of :

-      _dd.appsec.json: {"triggers":[{"rule":{"id":"crs-913-110","name":"Acunetix","tags":{"category":"attack_attempt","type":"commercial_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.headers.no_cookies","highlight":["acunetix-product"],"key_path":["user-agent","0"],"value":"mistake not... acunetix-product"}]}]}]},
+      _dd.appsec.json: {"triggers":[{"rule":{"id":"crs-913-110","name":"Acunetix","tags":{"category":"attack_attempt","type":"commercial_scanner"}},"rule_matches":[{"operator":"phrase_match","operator_value":"","parameters":[{"address":"server.request.headers.no_cookies","highlight":["acunetix-product"],"key_path":["user-agent"],"value":"mistake not... acunetix-product"}]}]}]},

@NachoEchevarria NachoEchevarria changed the title Nacho/send user agent header as string to the waf2 [ASM] Send header values as string to the WAF Oct 11, 2024
@datadog-ddstaging

datadog-ddstaging Bot commented Oct 11, 2024

Copy link
Copy Markdown

Datadog Report

Branch report: nacho/SendUserAgentHeaderAsStringToTheWaf2
Commit report: e18314b
Test service: dd-trace-dotnet

✅ 0 Failed, 470522 Passed, 3270 Skipped, 29h 37m 12.92s Total Time

@andrewlock

andrewlock commented Oct 11, 2024

Copy link
Copy Markdown
Member

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6144) - mean (70ms)  : 68, 71
     .   : milestone, 70,
    master - mean (70ms)  : 67, 72
     .   : milestone, 70,

    section CallTarget+Inlining+NGEN
    This PR (6144) - mean (1,111ms)  : 1091, 1131
     .   : milestone, 1111,
    master - mean (1,107ms)  : 1085, 1130
     .   : milestone, 1107,

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

    section CallTarget+Inlining+NGEN
    This PR (6144) - mean (768ms)  : 756, 780
     .   : milestone, 768,
    master - mean (769ms)  : 751, 787
     .   : milestone, 769,

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

    section CallTarget+Inlining+NGEN
    This PR (6144) - mean (727ms)  : 713, 741
     .   : milestone, 727,
    master - mean (726ms)  : 712, 740
     .   : milestone, 726,

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

    section CallTarget+Inlining+NGEN
    This PR (6144) - mean (1,198ms)  : 1176, 1219
     .   : milestone, 1198,
    master - mean (1,195ms)  : 1171, 1219
     .   : milestone, 1195,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6144) - mean (275ms)  : 272, 279
     .   : milestone, 275,
    master - mean (274ms)  : 268, 279
     .   : milestone, 274,

    section CallTarget+Inlining+NGEN
    This PR (6144) - mean (943ms)  : 924, 962
     .   : milestone, 943,
    master - mean (944ms)  : 929, 958
     .   : milestone, 944,

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

    section CallTarget+Inlining+NGEN
    This PR (6144) - mean (925ms)  : 906, 944
     .   : milestone, 925,
    master - mean (925ms)  : 903, 947
     .   : milestone, 925,

Loading

@NachoEchevarria
NachoEchevarria marked this pull request as ready for review October 11, 2024 11:19
@NachoEchevarria
NachoEchevarria requested review from a team as code owners October 11, 2024 11:19
@NachoEchevarria

Copy link
Copy Markdown
Collaborator Author

Thank you for the reviews!

@NachoEchevarria
NachoEchevarria merged commit c8399df into master Oct 11, 2024
@NachoEchevarria
NachoEchevarria deleted the nacho/SendUserAgentHeaderAsStringToTheWaf2 branch October 11, 2024 11:35
@github-actions github-actions Bot added this to the vNext-v3 milestone Oct 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants