From 3bceccd13cd80bbcb59713b615c46ada5d100a46 Mon Sep 17 00:00:00 2001 From: Cloudzp Date: Tue, 16 Apr 2024 18:20:37 +0800 Subject: [PATCH] add metrics --- .../recommendation/recommendation_checker.go | 2 +- .../recommendation/recommendation_rule_controller.go | 1 + pkg/metrics/analysis.go | 12 +++++++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/pkg/controller/recommendation/recommendation_checker.go b/pkg/controller/recommendation/recommendation_checker.go index c3ebfa064..1d9a646e5 100644 --- a/pkg/controller/recommendation/recommendation_checker.go +++ b/pkg/controller/recommendation/recommendation_checker.go @@ -60,6 +60,6 @@ func (r Checker) runChecker() { "owner_name": recommend.Spec.TargetRef.Name, "update_status": updateStatus, "result_status": resultStatus, - }).Set(1) + }).Set(time.Now().Sub(recommend.Status.LastUpdateTime.Time).Seconds()) } } diff --git a/pkg/controller/recommendation/recommendation_rule_controller.go b/pkg/controller/recommendation/recommendation_rule_controller.go index d6ebfa77b..d6f5dd596 100644 --- a/pkg/controller/recommendation/recommendation_rule_controller.go +++ b/pkg/controller/recommendation/recommendation_rule_controller.go @@ -461,6 +461,7 @@ func executeIdentity(ctx context.Context, wg *sync.WaitGroup, recommenderMgr rec defer func() { if wg != nil { wg.Done() + metrics.RecommendationExecutionCounter.WithLabelValues(id.APIVersion, id.Kind, id.Namespace, id.Name, id.Recommender).Inc() } }() var message string diff --git a/pkg/metrics/analysis.go b/pkg/metrics/analysis.go index bd930a474..e0078fe7f 100644 --- a/pkg/metrics/analysis.go +++ b/pkg/metrics/analysis.go @@ -6,6 +6,16 @@ import ( ) var ( + RecommendationExecutionCounter = prometheus.NewCounterVec( + prometheus.CounterOpts{ + Namespace: "crane", + Subsystem: "analysis", + Name: "recommendation_execution_total", + Help: "The number of times Recommendation has been executed", + }, + []string{"apiversion", "owner_kind", "namespace", "owner_name", "type"}, + ) + ResourceRecommendation = prometheus.NewGaugeVec( prometheus.GaugeOpts{ Namespace: "crane", @@ -48,5 +58,5 @@ var ( ) func init() { - metrics.Registry.MustRegister(ResourceRecommendation, ReplicasRecommendation, SelectTargets, RecommendationsStatus) + metrics.Registry.MustRegister(RecommendationExecutionCounter, ResourceRecommendation, ReplicasRecommendation, SelectTargets, RecommendationsStatus) }