Newer
Older
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()))
}
}