From 17403585737bd45e239f7f5ea49d604be7cb3915 Mon Sep 17 00:00:00 2001 From: Kris Date: Thu, 18 Aug 2016 10:02:48 -0700 Subject: [PATCH] Split the version metric out to its own package --- cmd/hyperkube/main.go | 1 + cmd/kube-apiserver/apiserver.go | 1 + .../controller-manager.go | 1 + cmd/kube-dns/dns.go | 1 + cmd/kube-proxy/proxy.go | 1 + cmd/kubectl/app/kubectl.go | 1 + cmd/kubelet/kubelet.go | 1 + cmd/kubemark/hollow-node.go | 1 + contrib/mesos/cmd/km/km.go | 1 + hack/.linted_packages | 1 + pkg/version/prometheus/prometheus.go | 38 +++++++++++++++++++ pkg/version/version.go | 16 -------- 12 files changed, 48 insertions(+), 16 deletions(-) create mode 100644 pkg/version/prometheus/prometheus.go diff --git a/cmd/hyperkube/main.go b/cmd/hyperkube/main.go index f2865c4e752..df6d239231b 100644 --- a/cmd/hyperkube/main.go +++ b/cmd/hyperkube/main.go @@ -25,6 +25,7 @@ import ( "os" _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration + _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration ) func main() { diff --git a/cmd/kube-apiserver/apiserver.go b/cmd/kube-apiserver/apiserver.go index 46b5e2ab350..ab0524737c7 100644 --- a/cmd/kube-apiserver/apiserver.go +++ b/cmd/kube-apiserver/apiserver.go @@ -29,6 +29,7 @@ import ( _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration "k8s.io/kubernetes/pkg/util/flag" "k8s.io/kubernetes/pkg/util/logs" + _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration "k8s.io/kubernetes/pkg/version/verflag" "github.com/spf13/pflag" diff --git a/cmd/kube-controller-manager/controller-manager.go b/cmd/kube-controller-manager/controller-manager.go index fc121503f5f..2c12d79fc4c 100644 --- a/cmd/kube-controller-manager/controller-manager.go +++ b/cmd/kube-controller-manager/controller-manager.go @@ -30,6 +30,7 @@ import ( "k8s.io/kubernetes/pkg/healthz" "k8s.io/kubernetes/pkg/util/flag" "k8s.io/kubernetes/pkg/util/logs" + _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration "k8s.io/kubernetes/pkg/version/verflag" "github.com/spf13/pflag" diff --git a/cmd/kube-dns/dns.go b/cmd/kube-dns/dns.go index 439337f7b75..22dcb08cf51 100644 --- a/cmd/kube-dns/dns.go +++ b/cmd/kube-dns/dns.go @@ -23,6 +23,7 @@ import ( _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration "k8s.io/kubernetes/pkg/util/flag" "k8s.io/kubernetes/pkg/util/logs" + _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration "k8s.io/kubernetes/pkg/version/verflag" ) diff --git a/cmd/kube-proxy/proxy.go b/cmd/kube-proxy/proxy.go index f9e89459216..ec67093365f 100644 --- a/cmd/kube-proxy/proxy.go +++ b/cmd/kube-proxy/proxy.go @@ -26,6 +26,7 @@ import ( "k8s.io/kubernetes/pkg/healthz" "k8s.io/kubernetes/pkg/util/flag" "k8s.io/kubernetes/pkg/util/logs" + _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration "k8s.io/kubernetes/pkg/version/verflag" "github.com/spf13/pflag" diff --git a/cmd/kubectl/app/kubectl.go b/cmd/kubectl/app/kubectl.go index da6253360e9..851c6c4debe 100644 --- a/cmd/kubectl/app/kubectl.go +++ b/cmd/kubectl/app/kubectl.go @@ -23,6 +23,7 @@ import ( "k8s.io/kubernetes/pkg/kubectl/cmd" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/util/logs" + _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration ) /* diff --git a/cmd/kubelet/kubelet.go b/cmd/kubelet/kubelet.go index 334c33a0d67..a50a2e11660 100644 --- a/cmd/kubelet/kubelet.go +++ b/cmd/kubelet/kubelet.go @@ -29,6 +29,7 @@ import ( _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration "k8s.io/kubernetes/pkg/util/flag" "k8s.io/kubernetes/pkg/util/logs" + _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration "k8s.io/kubernetes/pkg/version/verflag" "github.com/spf13/pflag" diff --git a/cmd/kubemark/hollow-node.go b/cmd/kubemark/hollow-node.go index 8382b3881b7..86c0dd85511 100644 --- a/cmd/kubemark/hollow-node.go +++ b/cmd/kubemark/hollow-node.go @@ -33,6 +33,7 @@ import ( "k8s.io/kubernetes/pkg/util/flag" fakeiptables "k8s.io/kubernetes/pkg/util/iptables/testing" "k8s.io/kubernetes/pkg/util/sets" + _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration "github.com/golang/glog" "github.com/spf13/pflag" diff --git a/contrib/mesos/cmd/km/km.go b/contrib/mesos/cmd/km/km.go index 3637a9afc62..412cba7b7c6 100644 --- a/contrib/mesos/cmd/km/km.go +++ b/contrib/mesos/cmd/km/km.go @@ -21,6 +21,7 @@ import ( "os" _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration + _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration ) func main() { diff --git a/hack/.linted_packages b/hack/.linted_packages index 383f631ad23..ec5a4c6c7d4 100644 --- a/hack/.linted_packages +++ b/hack/.linted_packages @@ -160,6 +160,7 @@ pkg/util/logs pkg/util/maps pkg/util/validation/field pkg/util/workqueue +pkg/version/prometheus pkg/volume pkg/volume/downwardapi pkg/volume/quobyte diff --git a/pkg/version/prometheus/prometheus.go b/pkg/version/prometheus/prometheus.go new file mode 100644 index 00000000000..27ccc4a8a1b --- /dev/null +++ b/pkg/version/prometheus/prometheus.go @@ -0,0 +1,38 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package prometheus registers Kubernetes version information as a +// prometheus metric. +package prometheus + +import ( + "github.com/prometheus/client_golang/prometheus" + "k8s.io/kubernetes/pkg/version" +) + +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, git tree state, build date, Go version, and compiler from which Kubernetes was built, and platform on which it is running.", + }, + []string{"major", "minor", "gitVersion", "gitCommit", "gitTreeState", "buildDate", "goVersion", "compiler", "platform"}, + ) + info := version.Get() + buildInfo.WithLabelValues(info.Major, info.Minor, info.GitVersion, info.GitCommit, info.GitTreeState, info.BuildDate, info.GoVersion, info.Compiler, info.Platform).Set(1) + + prometheus.MustRegister(buildInfo) +} diff --git a/pkg/version/version.go b/pkg/version/version.go index 1e931321773..0da3aadde07 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -19,8 +19,6 @@ package version import ( "fmt" "runtime" - - "github.com/prometheus/client_golang/prometheus" ) // Info contains versioning information. @@ -60,17 +58,3 @@ 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, git tree state, build date, Go version, and compiler from which Kubernetes was built, and platform on which it is running.", - }, - []string{"major", "minor", "gitVersion", "gitCommit", "gitTreeState", "buildDate", "goVersion", "compiler", "platform"}, - ) - info := Get() - buildInfo.WithLabelValues(info.Major, info.Minor, info.GitVersion, info.GitCommit, info.GitTreeState, info.BuildDate, info.GoVersion, info.Compiler, info.Platform).Set(1) - - prometheus.MustRegister(buildInfo) -}