From 2abeb9dda7d498b0ff80b37db4530336b094569f Mon Sep 17 00:00:00 2001 From: Shuting Zhao Date: Mon, 14 Jun 2021 13:42:57 -0700 Subject: [PATCH] fix prometheus panics Signed-off-by: Shuting Zhao --- pkg/metrics/parsers.go | 8 +++++--- pkg/metrics/policychanges/policyChanges.go | 7 ++++--- .../policyRuleExecutionLatency.go | 2 +- pkg/metrics/policyruleinfo/policyRuleInfo.go | 8 ++++---- pkg/metrics/policyruleresults/policyRuleResults.go | 5 +++-- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/pkg/metrics/parsers.go b/pkg/metrics/parsers.go index 379cffdd63..bfcc36eadc 100644 --- a/pkg/metrics/parsers.go +++ b/pkg/metrics/parsers.go @@ -2,8 +2,9 @@ package metrics import ( "fmt" - kyverno "github.com/kyverno/kyverno/pkg/api/kyverno/v1" "reflect" + + kyverno "github.com/kyverno/kyverno/pkg/api/kyverno/v1" ) func ParsePolicyValidationMode(validationFailureAction string) (PolicyValidationMode, error) { @@ -17,10 +18,11 @@ func ParsePolicyValidationMode(validationFailureAction string) (PolicyValidation } } -func ParsePolicyBackgroundMode(backgroundMode bool) PolicyBackgroundMode { - if backgroundMode { +func ParsePolicyBackgroundMode(backgroundMode *bool) PolicyBackgroundMode { + if backgroundMode == nil || *backgroundMode { return BackgroundTrue } + return BackgroundFalse } diff --git a/pkg/metrics/policychanges/policyChanges.go b/pkg/metrics/policychanges/policyChanges.go index 71f796ed11..1854edf916 100644 --- a/pkg/metrics/policychanges/policyChanges.go +++ b/pkg/metrics/policychanges/policyChanges.go @@ -2,10 +2,11 @@ package policychanges import ( "fmt" + "time" + kyverno "github.com/kyverno/kyverno/pkg/api/kyverno/v1" "github.com/kyverno/kyverno/pkg/metrics" prom "github.com/prometheus/client_golang/prometheus" - "time" ) func (pm PromMetrics) registerPolicyChangesMetric( @@ -38,7 +39,7 @@ func (pm PromMetrics) RegisterPolicy(policy interface{}, policyChangeType Policy if err != nil { return err } - policyBackgroundMode := metrics.ParsePolicyBackgroundMode(*inputPolicy.Spec.Background) + policyBackgroundMode := metrics.ParsePolicyBackgroundMode(inputPolicy.Spec.Background) policyType := metrics.Cluster policyNamespace := "" // doesn't matter for cluster policy policyName := inputPolicy.ObjectMeta.Name @@ -51,7 +52,7 @@ func (pm PromMetrics) RegisterPolicy(policy interface{}, policyChangeType Policy if err != nil { return err } - policyBackgroundMode := metrics.ParsePolicyBackgroundMode(*inputPolicy.Spec.Background) + policyBackgroundMode := metrics.ParsePolicyBackgroundMode(inputPolicy.Spec.Background) policyType := metrics.Namespaced policyNamespace := inputPolicy.ObjectMeta.Namespace policyName := inputPolicy.ObjectMeta.Name diff --git a/pkg/metrics/policyruleexecutionlatency/policyRuleExecutionLatency.go b/pkg/metrics/policyruleexecutionlatency/policyRuleExecutionLatency.go index 381fbeadb8..fe70187936 100644 --- a/pkg/metrics/policyruleexecutionlatency/policyRuleExecutionLatency.go +++ b/pkg/metrics/policyruleexecutionlatency/policyRuleExecutionLatency.go @@ -64,7 +64,7 @@ func (pm PromMetrics) ProcessEngineResponse(policy kyverno.ClusterPolicy, engine return err } policyType := metrics.Namespaced - policyBackgroundMode := metrics.ParsePolicyBackgroundMode(*policy.Spec.Background) + policyBackgroundMode := metrics.ParsePolicyBackgroundMode(policy.Spec.Background) policyNamespace := policy.ObjectMeta.Namespace if policyNamespace == "" { policyNamespace = "-" diff --git a/pkg/metrics/policyruleinfo/policyRuleInfo.go b/pkg/metrics/policyruleinfo/policyRuleInfo.go index a8b115b0c6..45fd8149d6 100644 --- a/pkg/metrics/policyruleinfo/policyRuleInfo.go +++ b/pkg/metrics/policyruleinfo/policyRuleInfo.go @@ -50,7 +50,7 @@ func (pm PromMetrics) AddPolicy(policy interface{}) error { if err != nil { return err } - policyBackgroundMode := metrics.ParsePolicyBackgroundMode(*inputPolicy.Spec.Background) + policyBackgroundMode := metrics.ParsePolicyBackgroundMode(inputPolicy.Spec.Background) policyType := metrics.Cluster policyNamespace := "" // doesn't matter for cluster policy policyName := inputPolicy.ObjectMeta.Name @@ -69,7 +69,7 @@ func (pm PromMetrics) AddPolicy(policy interface{}) error { if err != nil { return err } - policyBackgroundMode := metrics.ParsePolicyBackgroundMode(*inputPolicy.Spec.Background) + policyBackgroundMode := metrics.ParsePolicyBackgroundMode(inputPolicy.Spec.Background) policyType := metrics.Namespaced policyNamespace := inputPolicy.ObjectMeta.Namespace policyName := inputPolicy.ObjectMeta.Name @@ -96,7 +96,7 @@ func (pm PromMetrics) RemovePolicy(policy interface{}) error { if err != nil { return err } - policyBackgroundMode := metrics.ParsePolicyBackgroundMode(*inputPolicy.Spec.Background) + policyBackgroundMode := metrics.ParsePolicyBackgroundMode(inputPolicy.Spec.Background) policyType := metrics.Cluster policyNamespace := "" // doesn't matter for cluster policy policyName := inputPolicy.ObjectMeta.Name @@ -114,7 +114,7 @@ func (pm PromMetrics) RemovePolicy(policy interface{}) error { if err != nil { return err } - policyBackgroundMode := metrics.ParsePolicyBackgroundMode(*inputPolicy.Spec.Background) + policyBackgroundMode := metrics.ParsePolicyBackgroundMode(inputPolicy.Spec.Background) policyType := metrics.Namespaced policyNamespace := inputPolicy.ObjectMeta.Namespace policyName := inputPolicy.ObjectMeta.Name diff --git a/pkg/metrics/policyruleresults/policyRuleResults.go b/pkg/metrics/policyruleresults/policyRuleResults.go index 9f0f242e4f..5152cfd957 100644 --- a/pkg/metrics/policyruleresults/policyRuleResults.go +++ b/pkg/metrics/policyruleresults/policyRuleResults.go @@ -2,11 +2,12 @@ package policyruleresults import ( "fmt" + "time" + kyverno "github.com/kyverno/kyverno/pkg/api/kyverno/v1" "github.com/kyverno/kyverno/pkg/engine/response" "github.com/kyverno/kyverno/pkg/metrics" prom "github.com/prometheus/client_golang/prometheus" - "time" ) func (pm PromMetrics) registerPolicyRuleResultsMetric( @@ -57,7 +58,7 @@ func (pm PromMetrics) ProcessEngineResponse(policy kyverno.ClusterPolicy, engine return err } policyType := metrics.Namespaced - policyBackgroundMode := metrics.ParsePolicyBackgroundMode(*policy.Spec.Background) + policyBackgroundMode := metrics.ParsePolicyBackgroundMode(policy.Spec.Background) policyNamespace := policy.ObjectMeta.Namespace if policyNamespace == "" { policyNamespace = "-"