new Prometheus metrics build_info (#3558)

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
This commit is contained in:
Nicolas Lamirault
2024-07-15 20:09:03 +02:00
committed by GitHub
parent 6fca251dc1
commit bd73825eda
+18
View File
@@ -50,6 +50,15 @@ type serveOptions struct {
grpcAddr string
}
var buildInfo = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Name: "build_info",
Namespace: "dex",
Help: "A metric with a constant '1' value labeled by version from which Dex was built.",
},
[]string{"version", "go_version", "platform"},
)
func commandServe() *cobra.Command {
options := serveOptions{}
@@ -117,6 +126,10 @@ func runServe(options serveOptions) error {
logger.Info("config issuer", "issuer", c.Issuer)
prometheusRegistry := prometheus.NewRegistry()
prometheusRegistry.MustRegister(buildInfo)
recordBuildInfo()
err = prometheusRegistry.Register(collectors.NewGoCollector())
if err != nil {
return fmt.Errorf("failed to register Go runtime metrics: %v", err)
@@ -684,3 +697,8 @@ func loadTLSConfig(certFile, keyFile, caFile string, baseConfig *tls.Config) (*t
}
return loadedConfig, nil
}
// recordBuildInfo publishes information about Dex version and runtime info through an info metric (gauge).
func recordBuildInfo() {
buildInfo.WithLabelValues(version, runtime.Version(), fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH)).Set(1)
}