From 3b73dedf6014489b5cee5586a38907eea33b7a2c Mon Sep 17 00:00:00 2001 From: "sezen.leblay" Date: Fri, 7 Feb 2025 13:21:15 +0100 Subject: [PATCH 1/3] Update metrics for java: appsec.rasp.rule.eval, appsec.rasp.rule.match and appsec.rasp.timeout (event_rules_version tag) --- .../api/telemetry/WafMetricCollector.java | 9 +++++--- .../telemetry/WafMetricCollectorTest.groovy | 21 ++++++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/internal-api/src/main/java/datadog/trace/api/telemetry/WafMetricCollector.java b/internal-api/src/main/java/datadog/trace/api/telemetry/WafMetricCollector.java index 2567cc6c200..c7e518a7309 100644 --- a/internal-api/src/main/java/datadog/trace/api/telemetry/WafMetricCollector.java +++ b/internal-api/src/main/java/datadog/trace/api/telemetry/WafMetricCollector.java @@ -328,7 +328,8 @@ public RaspRuleEval(final long counter, final RuleType ruleType, final String wa ? new String[] { "rule_type:" + ruleType.type, "rule_variant:" + ruleType.variant, - "waf_version:" + wafVersion + "waf_version:" + wafVersion, + "event_rules_version" + rulesVersion } : new String[] {"rule_type:" + ruleType.type, "waf_version:" + wafVersion}); } @@ -343,7 +344,8 @@ public RaspRuleMatch(final long counter, final RuleType ruleType, final String w ? new String[] { "rule_type:" + ruleType.type, "rule_variant:" + ruleType.variant, - "waf_version:" + wafVersion + "waf_version:" + wafVersion, + "event_rules_version" + rulesVersion } : new String[] {"rule_type:" + ruleType.type, "waf_version:" + wafVersion}); } @@ -358,7 +360,8 @@ public RaspTimeout(final long counter, final RuleType ruleType, final String waf ? new String[] { "rule_type:" + ruleType.type, "rule_variant:" + ruleType.variant, - "waf_version:" + wafVersion + "waf_version:" + wafVersion, + "event_rules_version" + rulesVersion } : new String[] {"rule_type:" + ruleType.type, "waf_version:" + wafVersion}); } diff --git a/internal-api/src/test/groovy/datadog/trace/api/telemetry/WafMetricCollectorTest.groovy b/internal-api/src/test/groovy/datadog/trace/api/telemetry/WafMetricCollectorTest.groovy index 1e1159dcfa7..a4dec8d505e 100644 --- a/internal-api/src/test/groovy/datadog/trace/api/telemetry/WafMetricCollectorTest.groovy +++ b/internal-api/src/test/groovy/datadog/trace/api/telemetry/WafMetricCollectorTest.groovy @@ -314,21 +314,36 @@ class WafMetricCollectorTest extends DDSpecification { raspRuleEval.value == 3 raspRuleEval.namespace == 'appsec' raspRuleEval.metricName == 'rasp.rule.eval' - raspRuleEval.tags.toSet() == ['rule_type:command_injection', 'rule_variant:'+ruleType.variant, 'waf_version:waf_ver1'].toSet() + raspRuleEval.tags.toSet() == [ + 'rule_type:command_injection', + 'rule_variant:'+ruleType.variant, + 'waf_version:waf_ver1', + 'event_rules_versionrules.1' + ].toSet() def raspRuleMatch = (WafMetricCollector.RaspRuleMatch)metrics[2] raspRuleMatch.type == 'count' raspRuleMatch.value == 1 raspRuleMatch.namespace == 'appsec' raspRuleMatch.metricName == 'rasp.rule.match' - raspRuleMatch.tags.toSet() == ['rule_type:command_injection', 'rule_variant:'+ruleType.variant, 'waf_version:waf_ver1'].toSet() + raspRuleMatch.tags.toSet() == [ + 'rule_type:command_injection', + 'rule_variant:'+ruleType.variant, + 'waf_version:waf_ver1', + 'event_rules_versionrules.1' + ].toSet() def raspTimeout = (WafMetricCollector.RaspTimeout)metrics[3] raspTimeout.type == 'count' raspTimeout.value == 1 raspTimeout.namespace == 'appsec' raspTimeout.metricName == 'rasp.timeout' - raspTimeout.tags.toSet() == ['rule_type:command_injection', 'rule_variant:'+ruleType.variant, 'waf_version:waf_ver1'].toSet() + raspTimeout.tags.toSet() == [ + 'rule_type:command_injection', + 'rule_variant:'+ruleType.variant, + 'waf_version:waf_ver1', + 'event_rules_versionrules.1' + ].toSet() where: ruleType << [RuleType.COMMAND_INJECTION, RuleType.SHELL_INJECTION] From aa8a9444336b89648cd50c67504a9ac8188b99be Mon Sep 17 00:00:00 2001 From: "sezen.leblay" Date: Fri, 7 Feb 2025 13:49:11 +0100 Subject: [PATCH 2/3] PR --- .../datadog/trace/api/telemetry/WafMetricCollector.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal-api/src/main/java/datadog/trace/api/telemetry/WafMetricCollector.java b/internal-api/src/main/java/datadog/trace/api/telemetry/WafMetricCollector.java index c7e518a7309..9266b74691c 100644 --- a/internal-api/src/main/java/datadog/trace/api/telemetry/WafMetricCollector.java +++ b/internal-api/src/main/java/datadog/trace/api/telemetry/WafMetricCollector.java @@ -329,7 +329,7 @@ public RaspRuleEval(final long counter, final RuleType ruleType, final String wa "rule_type:" + ruleType.type, "rule_variant:" + ruleType.variant, "waf_version:" + wafVersion, - "event_rules_version" + rulesVersion + "event_rules_version:" + rulesVersion } : new String[] {"rule_type:" + ruleType.type, "waf_version:" + wafVersion}); } @@ -345,7 +345,7 @@ public RaspRuleMatch(final long counter, final RuleType ruleType, final String w "rule_type:" + ruleType.type, "rule_variant:" + ruleType.variant, "waf_version:" + wafVersion, - "event_rules_version" + rulesVersion + "event_rules_version:" + rulesVersion } : new String[] {"rule_type:" + ruleType.type, "waf_version:" + wafVersion}); } @@ -361,7 +361,7 @@ public RaspTimeout(final long counter, final RuleType ruleType, final String waf "rule_type:" + ruleType.type, "rule_variant:" + ruleType.variant, "waf_version:" + wafVersion, - "event_rules_version" + rulesVersion + "event_rules_version:" + rulesVersion } : new String[] {"rule_type:" + ruleType.type, "waf_version:" + wafVersion}); } From b9ea819e6109a0b4b7c4a22d97b3c4e2c7126d39 Mon Sep 17 00:00:00 2001 From: "sezen.leblay" Date: Fri, 7 Feb 2025 13:50:21 +0100 Subject: [PATCH 3/3] PR --- .../trace/api/telemetry/WafMetricCollectorTest.groovy | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal-api/src/test/groovy/datadog/trace/api/telemetry/WafMetricCollectorTest.groovy b/internal-api/src/test/groovy/datadog/trace/api/telemetry/WafMetricCollectorTest.groovy index a4dec8d505e..5f532b3ed8f 100644 --- a/internal-api/src/test/groovy/datadog/trace/api/telemetry/WafMetricCollectorTest.groovy +++ b/internal-api/src/test/groovy/datadog/trace/api/telemetry/WafMetricCollectorTest.groovy @@ -318,7 +318,7 @@ class WafMetricCollectorTest extends DDSpecification { 'rule_type:command_injection', 'rule_variant:'+ruleType.variant, 'waf_version:waf_ver1', - 'event_rules_versionrules.1' + 'event_rules_version:rules.1' ].toSet() def raspRuleMatch = (WafMetricCollector.RaspRuleMatch)metrics[2] @@ -330,7 +330,7 @@ class WafMetricCollectorTest extends DDSpecification { 'rule_type:command_injection', 'rule_variant:'+ruleType.variant, 'waf_version:waf_ver1', - 'event_rules_versionrules.1' + 'event_rules_version:rules.1' ].toSet() def raspTimeout = (WafMetricCollector.RaspTimeout)metrics[3] @@ -342,7 +342,7 @@ class WafMetricCollectorTest extends DDSpecification { 'rule_type:command_injection', 'rule_variant:'+ruleType.variant, 'waf_version:waf_ver1', - 'event_rules_versionrules.1' + 'event_rules_version:rules.1' ].toSet() where: