From aa0da0c80df2ec6febab0b5c5df1aae88297dd72 Mon Sep 17 00:00:00 2001 From: junot <49136171+junotx@users.noreply.github.com> Date: Tue, 18 Jul 2023 17:21:06 +0800 Subject: [PATCH] add rule_type label to indicate rule type (#5834) add rule_type label to indicate rule type (#472) Signed-off-by: junot --- pkg/controller/alerting/util.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pkg/controller/alerting/util.go b/pkg/controller/alerting/util.go index 7f14d4750..d23811fac 100644 --- a/pkg/controller/alerting/util.go +++ b/pkg/controller/alerting/util.go @@ -42,9 +42,13 @@ const ( RuleLevelCluster RuleLevel = "cluster" RuleLevelGlobal RuleLevel = "global" + RuleTypeTemplate RuleType = "template" // for template rule configured by exprBuilder to build expression + RuleTypeCustom RuleType = "custom" // for custom rule configured by direct expression + // for rule.labels RuleLabelKeyRuleLevel = "rule_level" RuleLabelKeyRuleGroup = "rule_group" + RuleLabelKeyRuleType = "rule_type" RuleLabelKeyCluster = "cluster" RuleLabelKeyNamespace = "namespace" RuleLabelKeySeverity = "severity" @@ -75,6 +79,8 @@ const ( type RuleLevel string +type RuleType string + var maxConfigMapDataSize = int(float64(corev1.MaxSecretSize) * 0.5) type enforceRuleFunc func(rule *promresourcesv1.Rule) error @@ -193,6 +199,11 @@ func makePrometheusRuleGroups(log logr.Logger, groupList client.ObjectList, continue } if prule != nil { + if rule.ExprBuilder != nil && rule.ExprBuilder.Workload != nil { + prule.Labels[RuleLabelKeyRuleType] = string(RuleTypeTemplate) + } else { + prule.Labels[RuleLabelKeyRuleType] = string(RuleTypeCustom) + } prules = append(prules, *prule) } } @@ -216,6 +227,11 @@ func makePrometheusRuleGroups(log logr.Logger, groupList client.ObjectList, continue } if prule != nil { + if rule.ExprBuilder != nil && rule.ExprBuilder.Node != nil { + prule.Labels[RuleLabelKeyRuleType] = string(RuleTypeTemplate) + } else { + prule.Labels[RuleLabelKeyRuleType] = string(RuleTypeCustom) + } prules = append(prules, *prule) } } @@ -241,6 +257,11 @@ func makePrometheusRuleGroups(log logr.Logger, groupList client.ObjectList, continue } if prule != nil { + if rule.ExprBuilder != nil && (rule.ExprBuilder.Node != nil || rule.ExprBuilder.Workload != nil) { + prule.Labels[RuleLabelKeyRuleType] = string(RuleTypeTemplate) + } else { + prule.Labels[RuleLabelKeyRuleType] = string(RuleTypeCustom) + } prules = append(prules, *prule) } }