From 9e6b3e4a9d3295a57613e23b8b0dda5895d306c6 Mon Sep 17 00:00:00 2001 From: Jimmi Dyson Date: Wed, 23 Sep 2015 09:18:05 +0100 Subject: [PATCH] Expose version as prometheus metric --- pkg/version/version.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkg/version/version.go b/pkg/version/version.go index 563151bd1f4..e337abe4baa 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -16,6 +16,8 @@ limitations under the License. package version +import "github.com/prometheus/client_golang/prometheus" + // Info contains versioning information. // TODO: Add []string of api versions supported? It's still unclear // how we'll want to distribute that information. @@ -45,3 +47,17 @@ func Get() Info { func (info Info) String() string { return info.GitVersion } + +func init() { + buildInfo := prometheus.NewGaugeVec( + prometheus.GaugeOpts{ + Name: "kubernetes_build_info", + Help: "A metric with a constant '1' value labeled by major, minor, git version, git commit and git tree state from which Kubernetes was built.", + }, + []string{"major", "minor", "gitVersion", "gitCommit", "gitTreeState"}, + ) + info := Get() + buildInfo.WithLabelValues(info.Major, info.Minor, info.GitVersion, info.GitCommit, info.GitTreeState).Set(1) + + prometheus.MustRegister(buildInfo) +}