mirror of
https://github.com/stakater/Reloader.git
synced 2026-02-14 18:09:50 +00:00
61 lines
1.3 KiB
Go
61 lines
1.3 KiB
Go
package metrics
|
|
|
|
import (
|
|
"net/http"
|
|
"os"
|
|
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"github.com/prometheus/client_golang/prometheus/promhttp"
|
|
)
|
|
|
|
type Collectors struct {
|
|
Reloaded *prometheus.CounterVec
|
|
ReloadedByNamespace *prometheus.CounterVec
|
|
}
|
|
|
|
func NewCollectors() Collectors {
|
|
reloaded := prometheus.NewCounterVec(
|
|
prometheus.CounterOpts{
|
|
Namespace: "reloader",
|
|
Name: "reload_executed_total",
|
|
Help: "Counter of reloads executed by Reloader.",
|
|
},
|
|
[]string{
|
|
"success",
|
|
},
|
|
)
|
|
|
|
//set 0 as default value
|
|
reloaded.With(prometheus.Labels{"success": "true"}).Add(0)
|
|
reloaded.With(prometheus.Labels{"success": "false"}).Add(0)
|
|
|
|
reloaded_by_namespace := prometheus.NewCounterVec(
|
|
prometheus.CounterOpts{
|
|
Namespace: "reloader",
|
|
Name: "reload_executed_total_by_namespace",
|
|
Help: "Counter of reloads executed by Reloader by namespace.",
|
|
},
|
|
[]string{
|
|
"success",
|
|
"namespace",
|
|
},
|
|
)
|
|
return Collectors{
|
|
Reloaded: reloaded,
|
|
ReloadedByNamespace: reloaded_by_namespace,
|
|
}
|
|
}
|
|
|
|
func SetupPrometheusEndpoint() Collectors {
|
|
collectors := NewCollectors()
|
|
prometheus.MustRegister(collectors.Reloaded)
|
|
|
|
if os.Getenv("METRICS_COUNT_BY_NAMESPACE") == "enabled" {
|
|
prometheus.MustRegister(collectors.ReloadedByNamespace)
|
|
}
|
|
|
|
http.Handle("/metrics", promhttp.Handler())
|
|
|
|
return collectors
|
|
}
|