From 509dbfe2d36c4549065ef3f1a7157a754126f3bf Mon Sep 17 00:00:00 2001 From: cpanato Date: Fri, 23 Sep 2022 17:18:55 +0200 Subject: [PATCH] export rekor build/version information Signed-off-by: cpanato --- cmd/rekor-server/app/root.go | 2 +- cmd/rekor-server/app/serve.go | 4 +++- pkg/api/metrics.go | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/cmd/rekor-server/app/root.go b/cmd/rekor-server/app/root.go index 0d10b2f38..df8eea269 100644 --- a/cmd/rekor-server/app/root.go +++ b/cmd/rekor-server/app/root.go @@ -76,7 +76,7 @@ func init() { rootCmd.PersistentFlags().String("rekor_server.signer", "memory", `Rekor signer to use. Valid options are: [gcpkms, memory, filename containing PEM encoded private key]. - Memory and file-based signers should only be used for testing.`) +Memory and file-based signers should only be used for testing.`) rootCmd.PersistentFlags().String("rekor_server.signer-passwd", "", "Password to decrypt signer private key") rootCmd.PersistentFlags().Uint16("port", 3000, "Port to bind to") diff --git a/cmd/rekor-server/app/serve.go b/cmd/rekor-server/app/serve.go index 240b64183..424fdc24c 100644 --- a/cmd/rekor-server/app/serve.go +++ b/cmd/rekor-server/app/serve.go @@ -26,7 +26,6 @@ import ( "github.com/spf13/viper" "sigs.k8s.io/release-utils/version" - "github.com/sigstore/rekor/pkg/api" "github.com/sigstore/rekor/pkg/generated/restapi" "github.com/sigstore/rekor/pkg/generated/restapi/operations" "github.com/sigstore/rekor/pkg/log" @@ -74,6 +73,9 @@ var serveCmd = &cobra.Command{ } log.Logger.Infof("starting rekor-server @ %v", viStr) + // reg := prometheus.NewRegistry() + // reg.MustRegister(api.NewVersionCollector("rekor", vi)) + doc, _ := loads.Embedded(restapi.SwaggerJSON, restapi.FlatSwaggerJSON) server := restapi.NewServer(operations.NewRekorServerAPI(doc)) defer func() { diff --git a/pkg/api/metrics.go b/pkg/api/metrics.go index b22731f1b..36d0d324a 100644 --- a/pkg/api/metrics.go +++ b/pkg/api/metrics.go @@ -20,6 +20,7 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" + "sigs.k8s.io/release-utils/version" ) var ( @@ -51,4 +52,19 @@ var ( Name: "rekor_qps_by_api", Help: "Api QPS by path, method, and response code", }, []string{"path", "method", "code"}) + + _ = promauto.NewGaugeFunc( + prometheus.GaugeOpts{ + Namespace: "rekor", + Name: "build_info", + Help: "A metric with a constant '1' value labeled by version, revision, branch, and goversion from which rekor was built.", + ConstLabels: prometheus.Labels{ + "version": version.GetVersionInfo().GitVersion, + "revision": version.GetVersionInfo().GitCommit, + "build_date": version.GetVersionInfo().BuildDate, + "goversion": version.GetVersionInfo().GoVersion, + }, + }, + func() float64 { return 1 }, + ) )