diff --git a/server/metrics/metrics.go b/server/metrics/metrics.go index 4afac9da26c02..3056a4e3e9332 100644 --- a/server/metrics/metrics.go +++ b/server/metrics/metrics.go @@ -9,6 +9,7 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" + "github.com/argoproj/argo-cd/v2/common" "github.com/argoproj/argo-cd/v2/util/profile" ) @@ -18,6 +19,7 @@ type MetricsServer struct { redisRequestHistogram *prometheus.HistogramVec extensionRequestCounter *prometheus.CounterVec extensionRequestDuration *prometheus.HistogramVec + argoVersion *prometheus.GaugeVec } var ( @@ -51,6 +53,13 @@ var ( }, []string{"extension"}, ) + argoVersion = prometheus.NewGaugeVec( + prometheus.GaugeOpts{ + Name: "argocd_info", + Help: "ArgoCD version information", + }, + []string{"version"}, + ) ) // NewMetricsServer returns a new prometheus server which collects api server metrics @@ -61,12 +70,15 @@ func NewMetricsServer(host string, port int) *MetricsServer { registry, prometheus.DefaultGatherer, }, promhttp.HandlerOpts{})) + argoVersion.WithLabelValues(common.GetVersion().Version).Set(1) + profile.RegisterProfiler(mux) registry.MustRegister(redisRequestCounter) registry.MustRegister(redisRequestHistogram) registry.MustRegister(extensionRequestCounter) registry.MustRegister(extensionRequestDuration) + registry.MustRegister(argoVersion) return &MetricsServer{ Server: &http.Server{ @@ -77,6 +89,7 @@ func NewMetricsServer(host string, port int) *MetricsServer { redisRequestHistogram: redisRequestHistogram, extensionRequestCounter: extensionRequestCounter, extensionRequestDuration: extensionRequestDuration, + argoVersion: argoVersion, } }