summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgujinkai <[email protected]>2024-04-18 10:05:54 +0800
committergujinkai <[email protected]>2024-04-18 10:05:54 +0800
commite1416e693581bb062ce1d316403bfa28cb4fc973 (patch)
treea9af77d7e943d0f18e9630e7215192a59b0fcef9
parent5e92920c12e2683ba2e1af0821391e648a48ede8 (diff)
[Feature][core] modify the knowledge hit metric of user define tag
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/udf/cn/UserDefineTagLookup.java63
1 files changed, 36 insertions, 27 deletions
diff --git a/groot-core/src/main/java/com/geedgenetworks/core/udf/cn/UserDefineTagLookup.java b/groot-core/src/main/java/com/geedgenetworks/core/udf/cn/UserDefineTagLookup.java
index 3e924ab..0eaf2ad 100644
--- a/groot-core/src/main/java/com/geedgenetworks/core/udf/cn/UserDefineTagLookup.java
+++ b/groot-core/src/main/java/com/geedgenetworks/core/udf/cn/UserDefineTagLookup.java
@@ -44,39 +44,48 @@ public class UserDefineTagLookup extends AbstractKnowledgeWithRuleUDF {
switch (option) {
case "IP_TO_TAG":
List<AbstractMultipleKnowledgeBaseHandler.Node> ipNodes = ipKnowledgeBaseHandler.lookup(lookupValue);
- ipNodes.forEach(node -> {
- lookupTagsCounter.inc();
- tags.add(node.getTag());
- List<RuleKnowledgeBaseHandler.Rule> rules = ruleKnowledgeBaseHandler.lookupByKbId(node.getKbId());
- if (rules != null) {
- ruleHitCounter.inc();
- rules.forEach(rule -> ruleMetadata.addRule(rule.getRuleId(), IocType.IP.getType()));
- }
- });
+ if (ipNodes != null && ipNodes.size() > 0) {
+ hitCounter.inc();
+ ipNodes.forEach(node -> {
+ lookupTagsCounter.inc();
+ tags.add(node.getTag());
+ List<RuleKnowledgeBaseHandler.Rule> rules = ruleKnowledgeBaseHandler.lookupByKbId(node.getKbId());
+ if (rules != null) {
+ ruleHitCounter.inc();
+ rules.forEach(rule -> ruleMetadata.addRule(rule.getRuleId(), IocType.IP.getType()));
+ }
+ });
+ }
break;
case "DOMAIN_TO_TAG":
List<AbstractMultipleKnowledgeBaseHandler.Node> domainNodes = domainKnowledgeBaseHandler.lookup(lookupValue);
- domainNodes.forEach(node -> {
- lookupTagsCounter.inc();
- tags.add(node.getTag());
- List<RuleKnowledgeBaseHandler.Rule> rules = ruleKnowledgeBaseHandler.lookupByKbId(node.getKbId());
- if (rules != null) {
- ruleHitCounter.inc();
- rules.forEach(rule -> ruleMetadata.addRule(rule.getRuleId(), IocType.DOMAIN.getType()));
- }
- });
+ if (domainNodes != null && domainNodes.size() > 0) {
+ hitCounter.inc();
+ domainNodes.forEach(node -> {
+ lookupTagsCounter.inc();
+ tags.add(node.getTag());
+ List<RuleKnowledgeBaseHandler.Rule> rules = ruleKnowledgeBaseHandler.lookupByKbId(node.getKbId());
+ if (rules != null) {
+ ruleHitCounter.inc();
+ rules.forEach(rule -> ruleMetadata.addRule(rule.getRuleId(), IocType.DOMAIN.getType()));
+ }
+ });
+ }
break;
case "APP_TO_TAG":
List<AbstractMultipleKnowledgeBaseHandler.Node> appNodes = appKnowledgeBaseHandler.lookup(lookupValue);
- appNodes.forEach(node -> {
- lookupTagsCounter.inc();
- tags.add(node.getTag());
- List<RuleKnowledgeBaseHandler.Rule> rules = ruleKnowledgeBaseHandler.lookupByKbId(node.getKbId());
- if (rules != null) {
- ruleHitCounter.inc();
- rules.forEach(rule -> ruleMetadata.addRule(rule.getRuleId(), IocType.APP.getType()));
- }
- });
+ if (appNodes != null && appNodes.size() > 0) {
+ hitCounter.inc();
+ appNodes.forEach(node -> {
+ lookupTagsCounter.inc();
+ tags.add(node.getTag());
+ List<RuleKnowledgeBaseHandler.Rule> rules = ruleKnowledgeBaseHandler.lookupByKbId(node.getKbId());
+ if (rules != null) {
+ ruleHitCounter.inc();
+ rules.forEach(rule -> ruleMetadata.addRule(rule.getRuleId(), IocType.APP.getType()));
+ }
+ });
+ }
break;
default:
break;