package metrics import ( "os" "github.com/gin-gonic/gin" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" "github.com/prometheus/client_golang/prometheus/promhttp" "jonasled.dev/jonasled/ems-esp-logger/log" ) var ( DatasetCount = promauto.NewCounterVec(prometheus.CounterOpts{ Name: "emsesp_uploaded_datasets", Help: "Counf of uploaded datasets", }, []string{"instance"}) ) func InitPrometheus(r *gin.Engine) { if os.Getenv("PROMETHEUS_AUTH_USERNAME") != "" { log.Log.Info("Prometheus metrics are available at /metrics") authorized := r.Group("/metrics", gin.BasicAuth(gin.Accounts{ os.Getenv("PROMETHEUS_AUTH_USERNAME"): os.Getenv("PROMETHEUS_AUTH_PASSWORD"), })) authorized.GET("/", gin.WrapH(promhttp.Handler())) } else { log.Log.Warn("You've enabled the prometheus endpoint without authentication.") r.GET("/metrics", gin.WrapH(promhttp.Handler())) } }