Bläddra i källkod

feat(metrics): Add opencost_build_info metric

Signed-off-by: pokom <mark.poko@grafana.com>
pokom 3 år sedan
förälder
incheckning
bdf464749c
2 ändrade filer med 11 tillägg och 1 borttagningar
  1. 10 1
      pkg/metrics/telemetry.go
  2. 1 0
      pkg/version/version.go

+ 10 - 1
pkg/metrics/telemetry.go

@@ -2,6 +2,7 @@ package metrics
 
 import (
 	"fmt"
+	"github.com/opencost/opencost/pkg/version"
 	"sync"
 
 	"github.com/kubecost/events"
@@ -17,6 +18,7 @@ var (
 	requestsCount *prometheus.CounterVec
 	responseTime  *prometheus.HistogramVec
 	responseSize  *prometheus.SummaryVec
+	buildInfo     *prometheus.GaugeVec
 )
 
 // InitKubecostTelemetry registers kubecost application telemetry.
@@ -25,6 +27,13 @@ func InitKubecostTelemetry(config *MetricsConfig) {
 
 	once.Do(func() {
 		// register prometheus metrics
+		buildInfo = prometheus.NewGaugeVec(prometheus.GaugeOpts{
+			Name: "opencost_build_info",
+			Help: "opencost_build_info Build information",
+		}, []string{"version"})
+
+		buildInfo.WithLabelValues(version.FriendlyVersion()).Set(1.0)
+
 		requestsCount = prometheus.NewCounterVec(prometheus.CounterOpts{
 			Name: "kubecost_http_requests_total",
 			Help: "kubecost_http_requests_total Total number of HTTP requests",
@@ -42,7 +51,7 @@ func InitKubecostTelemetry(config *MetricsConfig) {
 			Help: "kubecost_http_response_size_bytes Response size in bytes",
 		}, []string{"handler", "method", "code"})
 
-		prometheus.MustRegister(requestsCount, responseTime, responseSize)
+		prometheus.MustRegister(requestsCount, responseTime, responseSize, buildInfo)
 
 		// register event listeners
 		dispatcher = events.GlobalDispatcherFor[HttpHandlerMetricEvent]()

+ 1 - 0
pkg/version/version.go

@@ -8,5 +8,6 @@ var (
 )
 
 func FriendlyVersion() string {
+	// TODO: Make this dynamically pul the git commit version
 	return fmt.Sprintf("%s (%s)", Version, GitCommit)
 }