mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-28 18:38:40 +00:00
refactor: metrics package logger (#3734)
Signed-off-by: Charles-Edouard Brétéché <charled.breteche@gmail.com>
This commit is contained in:
parent
e92623b015
commit
96b33f6200
9 changed files with 30 additions and 21 deletions
|
@ -260,7 +260,7 @@ func main() {
|
|||
}
|
||||
|
||||
if !disableMetricsExport {
|
||||
promConfig, err = metrics.NewPromConfig(metricsConfigData, log.Log.WithName("MetricsConfig"))
|
||||
promConfig, err = metrics.NewPromConfig(metricsConfigData)
|
||||
if err != nil {
|
||||
setupLog.Error(err, "failed to setup Prometheus metric configuration")
|
||||
os.Exit(1)
|
||||
|
|
|
@ -16,11 +16,11 @@ func registerAdmissionRequestsMetric(
|
|||
) error {
|
||||
includeNamespaces, excludeNamespaces := pc.Config.GetIncludeNamespaces(), pc.Config.GetExcludeNamespaces()
|
||||
if (resourceNamespace != "" && resourceNamespace != "-") && utils.ContainsString(excludeNamespaces, resourceNamespace) {
|
||||
pc.Log.Info(fmt.Sprintf("Skipping the registration of kyverno_admission_requests_total metric as the operation belongs to the namespace '%s' which is one of 'namespaces.exclude' %+v in values.yaml", resourceNamespace, excludeNamespaces))
|
||||
metrics.Logger().Info(fmt.Sprintf("Skipping the registration of kyverno_admission_requests_total metric as the operation belongs to the namespace '%s' which is one of 'namespaces.exclude' %+v in values.yaml", resourceNamespace, excludeNamespaces))
|
||||
return nil
|
||||
}
|
||||
if (resourceNamespace != "" && resourceNamespace != "-") && len(includeNamespaces) > 0 && !utils.ContainsString(includeNamespaces, resourceNamespace) {
|
||||
pc.Log.Info(fmt.Sprintf("Skipping the registration of kyverno_admission_requests_total metric as the operation belongs to the namespace '%s' which is not one of 'namespaces.include' %+v in values.yaml", resourceNamespace, includeNamespaces))
|
||||
metrics.Logger().Info(fmt.Sprintf("Skipping the registration of kyverno_admission_requests_total metric as the operation belongs to the namespace '%s' which is not one of 'namespaces.include' %+v in values.yaml", resourceNamespace, includeNamespaces))
|
||||
return nil
|
||||
}
|
||||
pc.Metrics.AdmissionRequests.With(prom.Labels{
|
||||
|
|
|
@ -17,11 +17,11 @@ func registerAdmissionReviewDurationMetric(
|
|||
) error {
|
||||
includeNamespaces, excludeNamespaces := pc.Config.GetIncludeNamespaces(), pc.Config.GetExcludeNamespaces()
|
||||
if (resourceNamespace != "" && resourceNamespace != "-") && utils.ContainsString(excludeNamespaces, resourceNamespace) {
|
||||
pc.Log.Info(fmt.Sprintf("Skipping the registration of kyverno_admission_review_duration_seconds metric as the operation belongs to the namespace '%s' which is one of 'namespaces.exclude' %+v in values.yaml", resourceNamespace, excludeNamespaces))
|
||||
metrics.Logger().Info(fmt.Sprintf("Skipping the registration of kyverno_admission_review_duration_seconds metric as the operation belongs to the namespace '%s' which is one of 'namespaces.exclude' %+v in values.yaml", resourceNamespace, excludeNamespaces))
|
||||
return nil
|
||||
}
|
||||
if (resourceNamespace != "" && resourceNamespace != "-") && len(includeNamespaces) > 0 && !utils.ContainsString(includeNamespaces, resourceNamespace) {
|
||||
pc.Log.Info(fmt.Sprintf("Skipping the registration of kyverno_admission_review_duration_seconds metric as the operation belongs to the namespace '%s' which is not one of 'namespaces.include' %+v in values.yaml", resourceNamespace, includeNamespaces))
|
||||
metrics.Logger().Info(fmt.Sprintf("Skipping the registration of kyverno_admission_review_duration_seconds metric as the operation belongs to the namespace '%s' which is not one of 'namespaces.include' %+v in values.yaml", resourceNamespace, includeNamespaces))
|
||||
return nil
|
||||
}
|
||||
pc.Metrics.AdmissionReviewDuration.With(prom.Labels{
|
||||
|
|
12
pkg/metrics/log.go
Normal file
12
pkg/metrics/log.go
Normal file
|
@ -0,0 +1,12 @@
|
|||
package metrics
|
||||
|
||||
import (
|
||||
"github.com/go-logr/logr"
|
||||
"sigs.k8s.io/controller-runtime/pkg/log"
|
||||
)
|
||||
|
||||
var logger = log.Log.WithName("metrics")
|
||||
|
||||
func Logger() logr.Logger {
|
||||
return logger
|
||||
}
|
|
@ -3,7 +3,6 @@ package metrics
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/go-logr/logr"
|
||||
"github.com/kyverno/kyverno/pkg/config"
|
||||
prom "github.com/prometheus/client_golang/prometheus"
|
||||
"github.com/robfig/cron/v3"
|
||||
|
@ -13,7 +12,6 @@ type PromConfig struct {
|
|||
MetricsRegistry *prom.Registry
|
||||
Metrics *PromMetrics
|
||||
Config *config.MetricsConfigData
|
||||
Log logr.Logger
|
||||
cron *cron.Cron
|
||||
}
|
||||
|
||||
|
@ -26,12 +24,11 @@ type PromMetrics struct {
|
|||
AdmissionRequests *prom.CounterVec
|
||||
}
|
||||
|
||||
func NewPromConfig(metricsConfigData *config.MetricsConfigData, log logr.Logger) (*PromConfig, error) {
|
||||
func NewPromConfig(metricsConfigData *config.MetricsConfigData) (*PromConfig, error) {
|
||||
pc := new(PromConfig)
|
||||
pc.Config = metricsConfigData
|
||||
pc.cron = cron.New()
|
||||
pc.MetricsRegistry = prom.NewRegistry()
|
||||
pc.Log = log
|
||||
|
||||
policyResultsLabels := []string{
|
||||
"policy_validation_mode", "policy_type", "policy_background_mode", "policy_name", "policy_namespace",
|
||||
|
@ -122,10 +119,10 @@ func NewPromConfig(metricsConfigData *config.MetricsConfigData, log logr.Logger)
|
|||
// configuring metrics periodic refresh
|
||||
if pc.Config.GetMetricsRefreshInterval() != 0 {
|
||||
if len(pc.cron.Entries()) > 0 {
|
||||
pc.Log.Info("Skipping the configuration of metrics refresh. Already found cron expiration to be set.")
|
||||
logger.Info("Skipping the configuration of metrics refresh. Already found cron expiration to be set.")
|
||||
} else {
|
||||
_, err := pc.cron.AddFunc(fmt.Sprintf("@every %s", pc.Config.GetMetricsRefreshInterval()), func() {
|
||||
pc.Log.Info("Resetting the metrics as per their periodic refresh")
|
||||
logger.Info("Resetting the metrics as per their periodic refresh")
|
||||
pc.Metrics.PolicyResults.Reset()
|
||||
pc.Metrics.PolicyRuleInfo.Reset()
|
||||
pc.Metrics.PolicyChanges.Reset()
|
||||
|
@ -136,11 +133,11 @@ func NewPromConfig(metricsConfigData *config.MetricsConfigData, log logr.Logger)
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
log.Info(fmt.Sprintf("Configuring metrics refresh at a periodic rate of %s", pc.Config.GetMetricsRefreshInterval()))
|
||||
logger.Info(fmt.Sprintf("Configuring metrics refresh at a periodic rate of %s", pc.Config.GetMetricsRefreshInterval()))
|
||||
pc.cron.Start()
|
||||
}
|
||||
} else {
|
||||
pc.Log.Info("Skipping the configuration of metrics refresh as 'metricsRefreshInterval' wasn't specified in values.yaml at the time of installing kyverno")
|
||||
logger.Info("Skipping the configuration of metrics refresh as 'metricsRefreshInterval' wasn't specified in values.yaml at the time of installing kyverno")
|
||||
}
|
||||
return pc, nil
|
||||
}
|
||||
|
|
|
@ -22,11 +22,11 @@ func registerPolicyChangesMetric(
|
|||
}
|
||||
includeNamespaces, excludeNamespaces := pc.Config.GetIncludeNamespaces(), pc.Config.GetExcludeNamespaces()
|
||||
if (policyNamespace != "" && policyNamespace != "-") && utils.ContainsString(excludeNamespaces, policyNamespace) {
|
||||
pc.Log.Info(fmt.Sprintf("Skipping the registration of kyverno_policy_changes_total metric as the operation belongs to the namespace '%s' which is one of 'namespaces.exclude' %+v in values.yaml", policyNamespace, excludeNamespaces))
|
||||
metrics.Logger().Info(fmt.Sprintf("Skipping the registration of kyverno_policy_changes_total metric as the operation belongs to the namespace '%s' which is one of 'namespaces.exclude' %+v in values.yaml", policyNamespace, excludeNamespaces))
|
||||
return nil
|
||||
}
|
||||
if (policyNamespace != "" && policyNamespace != "-") && len(includeNamespaces) > 0 && !utils.ContainsString(includeNamespaces, policyNamespace) {
|
||||
pc.Log.Info(fmt.Sprintf("Skipping the registration of kyverno_policy_changes_total metric as the operation belongs to the namespace '%s' which is not one of 'namespaces.include' %+v in values.yaml", policyNamespace, includeNamespaces))
|
||||
metrics.Logger().Info(fmt.Sprintf("Skipping the registration of kyverno_policy_changes_total metric as the operation belongs to the namespace '%s' which is not one of 'namespaces.include' %+v in values.yaml", policyNamespace, includeNamespaces))
|
||||
return nil
|
||||
}
|
||||
pc.Metrics.PolicyChanges.With(prom.Labels{
|
||||
|
|
|
@ -33,11 +33,11 @@ func registerPolicyExecutionDurationMetric(
|
|||
}
|
||||
includeNamespaces, excludeNamespaces := pc.Config.GetIncludeNamespaces(), pc.Config.GetExcludeNamespaces()
|
||||
if (resourceNamespace != "" && resourceNamespace != "-") && utils.ContainsString(excludeNamespaces, resourceNamespace) {
|
||||
pc.Log.Info(fmt.Sprintf("Skipping the registration of kyverno_policy_execution_duration_seconds metric as the operation belongs to the namespace '%s' which is one of 'namespaces.exclude' %+v in values.yaml", resourceNamespace, excludeNamespaces))
|
||||
metrics.Logger().Info(fmt.Sprintf("Skipping the registration of kyverno_policy_execution_duration_seconds metric as the operation belongs to the namespace '%s' which is one of 'namespaces.exclude' %+v in values.yaml", resourceNamespace, excludeNamespaces))
|
||||
return nil
|
||||
}
|
||||
if (resourceNamespace != "" && resourceNamespace != "-") && len(includeNamespaces) > 0 && !utils.ContainsString(includeNamespaces, resourceNamespace) {
|
||||
pc.Log.Info(fmt.Sprintf("Skipping the registration of kyverno_policy_execution_duration_seconds metric as the operation belongs to the namespace '%s' which is not one of 'namespaces.include' %+v in values.yaml", resourceNamespace, includeNamespaces))
|
||||
metrics.Logger().Info(fmt.Sprintf("Skipping the registration of kyverno_policy_execution_duration_seconds metric as the operation belongs to the namespace '%s' which is not one of 'namespaces.include' %+v in values.yaml", resourceNamespace, includeNamespaces))
|
||||
return nil
|
||||
}
|
||||
pc.Metrics.PolicyExecutionDuration.With(prom.Labels{
|
||||
|
|
|
@ -28,11 +28,11 @@ func registerPolicyResultsMetric(
|
|||
}
|
||||
includeNamespaces, excludeNamespaces := pc.Config.GetIncludeNamespaces(), pc.Config.GetExcludeNamespaces()
|
||||
if (resourceNamespace != "" && resourceNamespace != "-") && utils.ContainsString(excludeNamespaces, resourceNamespace) {
|
||||
pc.Log.Info(fmt.Sprintf("Skipping the registration of kyverno_policy_results_total metric as the operation belongs to the namespace '%s' which is one of 'namespaces.exclude' %+v in values.yaml", resourceNamespace, excludeNamespaces))
|
||||
metrics.Logger().Info(fmt.Sprintf("Skipping the registration of kyverno_policy_results_total metric as the operation belongs to the namespace '%s' which is one of 'namespaces.exclude' %+v in values.yaml", resourceNamespace, excludeNamespaces))
|
||||
return nil
|
||||
}
|
||||
if (resourceNamespace != "" && resourceNamespace != "-") && len(includeNamespaces) > 0 && !utils.ContainsString(includeNamespaces, resourceNamespace) {
|
||||
pc.Log.Info(fmt.Sprintf("Skipping the registration of kyverno_policy_results_total metric as the operation belongs to the namespace '%s' which is not one of 'namespaces.include' %+v in values.yaml", resourceNamespace, includeNamespaces))
|
||||
metrics.Logger().Info(fmt.Sprintf("Skipping the registration of kyverno_policy_results_total metric as the operation belongs to the namespace '%s' which is not one of 'namespaces.include' %+v in values.yaml", resourceNamespace, includeNamespaces))
|
||||
return nil
|
||||
}
|
||||
pc.Metrics.PolicyResults.With(prom.Labels{
|
||||
|
|
|
@ -31,11 +31,11 @@ func registerPolicyRuleInfoMetric(
|
|||
}
|
||||
includeNamespaces, excludeNamespaces := pc.Config.GetIncludeNamespaces(), pc.Config.GetExcludeNamespaces()
|
||||
if (policyNamespace != "" && policyNamespace != "-") && utils.ContainsString(excludeNamespaces, policyNamespace) {
|
||||
pc.Log.Info(fmt.Sprintf("Skipping the registration of kyverno_policy_rule_info_total metric as the operation belongs to the namespace '%s' which is one of 'namespaces.exclude' %+v in values.yaml", policyNamespace, excludeNamespaces))
|
||||
metrics.Logger().Info(fmt.Sprintf("Skipping the registration of kyverno_policy_rule_info_total metric as the operation belongs to the namespace '%s' which is one of 'namespaces.exclude' %+v in values.yaml", policyNamespace, excludeNamespaces))
|
||||
return nil
|
||||
}
|
||||
if (policyNamespace != "" && policyNamespace != "-") && len(includeNamespaces) > 0 && !utils.ContainsString(includeNamespaces, policyNamespace) {
|
||||
pc.Log.Info(fmt.Sprintf("Skipping the registration of kyverno_policy_rule_info_total metric as the operation belongs to the namespace '%s' which is not one of 'namespaces.include' %+v in values.yaml", policyNamespace, includeNamespaces))
|
||||
metrics.Logger().Info(fmt.Sprintf("Skipping the registration of kyverno_policy_rule_info_total metric as the operation belongs to the namespace '%s' which is not one of 'namespaces.include' %+v in values.yaml", policyNamespace, includeNamespaces))
|
||||
return nil
|
||||
}
|
||||
if policyType == metrics.Cluster {
|
||||
|
|
Loading…
Add table
Reference in a new issue