Browse Source

Use closures for ExternalSecretController metrics (#2345)

Signed-off-by: shuheiktgw <s-kitagawa@mercari.com>
Shuhei Kitagawa 2 years ago
parent
commit
9182858895
1 changed files with 6 additions and 11 deletions
  1. 6 11
      pkg/controllers/externalsecret/externalsecret_controller.go

+ 6 - 11
pkg/controllers/externalsecret/externalsecret_controller.go

@@ -100,10 +100,14 @@ func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Resu
 	resourceLabels := ctrlmetrics.RefineNonConditionMetricLabels(map[string]string{"name": req.Name, "namespace": req.Namespace})
 	resourceLabels := ctrlmetrics.RefineNonConditionMetricLabels(map[string]string{"name": req.Name, "namespace": req.Namespace})
 	start := time.Now()
 	start := time.Now()
 
 
-	externalSecretReconcileDuration := esmetrics.GetGaugeVec(esmetrics.ExternalSecretReconcileDurationKey)
-	syncCallsTotal := esmetrics.GetCounterVec(esmetrics.SyncCallsKey)
 	syncCallsError := esmetrics.GetCounterVec(esmetrics.SyncCallsErrorKey)
 	syncCallsError := esmetrics.GetCounterVec(esmetrics.SyncCallsErrorKey)
 
 
+	// use closures to dynamically update resourceLabels
+	defer func() {
+		esmetrics.GetGaugeVec(esmetrics.ExternalSecretReconcileDurationKey).With(resourceLabels).Set(float64(time.Since(start)))
+		esmetrics.GetCounterVec(esmetrics.SyncCallsKey).With(resourceLabels).Inc()
+	}()
+
 	var externalSecret esv1beta1.ExternalSecret
 	var externalSecret esv1beta1.ExternalSecret
 	err := r.Get(ctx, req.NamespacedName, &externalSecret)
 	err := r.Get(ctx, req.NamespacedName, &externalSecret)
 
 
@@ -117,27 +121,18 @@ func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Resu
 				},
 				},
 			}, *conditionSynced)
 			}, *conditionSynced)
 
 
-			externalSecretReconcileDuration.With(resourceLabels).Set(float64(time.Since(start)))
-			syncCallsTotal.With(resourceLabels).Inc()
-
 			return ctrl.Result{}, nil
 			return ctrl.Result{}, nil
 		}
 		}
 
 
 		log.Error(err, errGetES)
 		log.Error(err, errGetES)
 		syncCallsError.With(resourceLabels).Inc()
 		syncCallsError.With(resourceLabels).Inc()
 
 
-		externalSecretReconcileDuration.With(resourceLabels).Set(float64(time.Since(start)))
-		syncCallsTotal.With(resourceLabels).Inc()
-
 		return ctrl.Result{}, nil
 		return ctrl.Result{}, nil
 	}
 	}
 
 
 	// if extended metrics is enabled, refine the time series vector
 	// if extended metrics is enabled, refine the time series vector
 	resourceLabels = ctrlmetrics.RefineLabels(resourceLabels, externalSecret.Labels)
 	resourceLabels = ctrlmetrics.RefineLabels(resourceLabels, externalSecret.Labels)
 
 
-	defer externalSecretReconcileDuration.With(resourceLabels).Set(float64(time.Since(start)))
-	defer syncCallsTotal.With(resourceLabels).Inc()
-
 	if shouldSkipClusterSecretStore(r, externalSecret) {
 	if shouldSkipClusterSecretStore(r, externalSecret) {
 		log.Info("skipping cluster secret store as it is disabled")
 		log.Info("skipping cluster secret store as it is disabled")
 		return ctrl.Result{}, nil
 		return ctrl.Result{}, nil