Browse Source

new Prometheus metrics build_info (#3558)

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
pull/3621/head
Nicolas Lamirault 2 years ago committed by GitHub
parent
commit
bd73825eda
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 18
      cmd/dex/serve.go

18
cmd/dex/serve.go

@ -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)
}

Loading…
Cancel
Save