From 43d4b549ab60c2810c19b84831e994ad8c268c4a Mon Sep 17 00:00:00 2001 From: Yashvardhan Kukreja <yash.kukreja.98@gmail.com> Date: Sat, 30 Oct 2021 02:56:04 +0530 Subject: [PATCH] Fix: RuleResult label to be correctly populated while registering respective metrics Signed-off-by: Yashvardhan Kukreja <yash.kukreja.98@gmail.com> --- .../policyExecutionDuration.go | 16 ++++++++++++++-- pkg/metrics/policyresults/policyResults.go | 16 ++++++++++++++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/pkg/metrics/policyexecutionduration/policyExecutionDuration.go b/pkg/metrics/policyexecutionduration/policyExecutionDuration.go index 0bc6aa1d6f..3383467105 100644 --- a/pkg/metrics/policyexecutionduration/policyExecutionDuration.go +++ b/pkg/metrics/policyexecutionduration/policyExecutionDuration.go @@ -83,9 +83,21 @@ func (pc PromConfig) ProcessEngineResponse(policy kyverno.ClusterPolicy, engineR for _, rule := range ruleResponses { ruleName := rule.Name ruleType := ParseRuleTypeFromEngineRuleResponse(rule) - ruleResult := metrics.Fail - if rule.Status == response.RuleStatusPass { + + var ruleResult metrics.RuleResult + switch rule.Status { + case response.RuleStatusPass: ruleResult = metrics.Pass + case response.RuleStatusFail: + ruleResult = metrics.Fail + case response.RuleStatusWarn: + ruleResult = metrics.Warn + case response.RuleStatusError: + ruleResult = metrics.Error + case response.RuleStatusSkip: + ruleResult = metrics.Skip + default: + ruleResult = metrics.Fail } ruleExecutionLatencyInSeconds := float64(rule.RuleStats.ProcessingTime) / float64(1000*1000*1000) diff --git a/pkg/metrics/policyresults/policyResults.go b/pkg/metrics/policyresults/policyResults.go index 63bd9a4177..d0ce2ea3ce 100644 --- a/pkg/metrics/policyresults/policyResults.go +++ b/pkg/metrics/policyresults/policyResults.go @@ -76,9 +76,21 @@ func (pc PromConfig) ProcessEngineResponse(policy kyverno.ClusterPolicy, engineR for _, rule := range ruleResponses { ruleName := rule.Name ruleType := ParseRuleTypeFromEngineRuleResponse(rule) - ruleResult := metrics.Fail - if rule.Status == response.RuleStatusPass { + + var ruleResult metrics.RuleResult + switch rule.Status { + case response.RuleStatusPass: ruleResult = metrics.Pass + case response.RuleStatusFail: + ruleResult = metrics.Fail + case response.RuleStatusWarn: + ruleResult = metrics.Warn + case response.RuleStatusError: + ruleResult = metrics.Error + case response.RuleStatusSkip: + ruleResult = metrics.Skip + default: + ruleResult = metrics.Fail } if err := pc.registerPolicyResultsMetric(