mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	migrate controller-manager metrics to stability framework
This commit is contained in:
		@@ -21,9 +21,8 @@ go_library(
 | 
				
			|||||||
    deps = [
 | 
					    deps = [
 | 
				
			||||||
        "//cmd/cloud-controller-manager/app:go_default_library",
 | 
					        "//cmd/cloud-controller-manager/app:go_default_library",
 | 
				
			||||||
        "//pkg/cloudprovider/providers:go_default_library",
 | 
					        "//pkg/cloudprovider/providers:go_default_library",
 | 
				
			||||||
        "//pkg/util/prometheusclientgo:go_default_library",
 | 
					 | 
				
			||||||
        "//pkg/version/prometheus:go_default_library",
 | 
					 | 
				
			||||||
        "//staging/src/k8s.io/component-base/logs:go_default_library",
 | 
					        "//staging/src/k8s.io/component-base/logs:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics/prometheus/clientgo:go_default_library",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,6 @@ go_library(
 | 
				
			|||||||
        "//pkg/features:go_default_library",
 | 
					        "//pkg/features:go_default_library",
 | 
				
			||||||
        "//pkg/util/configz:go_default_library",
 | 
					        "//pkg/util/configz:go_default_library",
 | 
				
			||||||
        "//pkg/util/flag:go_default_library",
 | 
					        "//pkg/util/flag:go_default_library",
 | 
				
			||||||
        "//pkg/version:go_default_library",
 | 
					 | 
				
			||||||
        "//pkg/version/verflag:go_default_library",
 | 
					        "//pkg/version/verflag:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
 | 
					        "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
 | 
					        "//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
 | 
				
			||||||
@@ -32,6 +31,7 @@ go_library(
 | 
				
			|||||||
        "//staging/src/k8s.io/cloud-provider:go_default_library",
 | 
					        "//staging/src/k8s.io/cloud-provider:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/component-base/cli/flag:go_default_library",
 | 
					        "//staging/src/k8s.io/component-base/cli/flag:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/component-base/cli/globalflag:go_default_library",
 | 
					        "//staging/src/k8s.io/component-base/cli/globalflag:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/version:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/spf13/cobra:go_default_library",
 | 
					        "//vendor/github.com/spf13/cobra:go_default_library",
 | 
				
			||||||
        "//vendor/k8s.io/klog:go_default_library",
 | 
					        "//vendor/k8s.io/klog:go_default_library",
 | 
				
			||||||
        "//vendor/k8s.io/utils/net:go_default_library",
 | 
					        "//vendor/k8s.io/utils/net:go_default_library",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,13 +37,13 @@ import (
 | 
				
			|||||||
	cloudprovider "k8s.io/cloud-provider"
 | 
						cloudprovider "k8s.io/cloud-provider"
 | 
				
			||||||
	cliflag "k8s.io/component-base/cli/flag"
 | 
						cliflag "k8s.io/component-base/cli/flag"
 | 
				
			||||||
	"k8s.io/component-base/cli/globalflag"
 | 
						"k8s.io/component-base/cli/globalflag"
 | 
				
			||||||
 | 
						"k8s.io/component-base/version"
 | 
				
			||||||
	"k8s.io/klog"
 | 
						"k8s.io/klog"
 | 
				
			||||||
	cloudcontrollerconfig "k8s.io/kubernetes/cmd/cloud-controller-manager/app/config"
 | 
						cloudcontrollerconfig "k8s.io/kubernetes/cmd/cloud-controller-manager/app/config"
 | 
				
			||||||
	"k8s.io/kubernetes/cmd/cloud-controller-manager/app/options"
 | 
						"k8s.io/kubernetes/cmd/cloud-controller-manager/app/options"
 | 
				
			||||||
	genericcontrollermanager "k8s.io/kubernetes/cmd/controller-manager/app"
 | 
						genericcontrollermanager "k8s.io/kubernetes/cmd/controller-manager/app"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util/configz"
 | 
						"k8s.io/kubernetes/pkg/util/configz"
 | 
				
			||||||
	utilflag "k8s.io/kubernetes/pkg/util/flag"
 | 
						utilflag "k8s.io/kubernetes/pkg/util/flag"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/version"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/version/verflag"
 | 
						"k8s.io/kubernetes/pkg/version/verflag"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,9 +29,8 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// NOTE: Importing all in-tree cloud-providers is not required when
 | 
						// NOTE: Importing all in-tree cloud-providers is not required when
 | 
				
			||||||
	// implementing an out-of-tree cloud-provider.
 | 
						// implementing an out-of-tree cloud-provider.
 | 
				
			||||||
 | 
						_ "k8s.io/component-base/metrics/prometheus/clientgo" // load all the prometheus client-go plugins
 | 
				
			||||||
	_ "k8s.io/kubernetes/pkg/cloudprovider/providers"
 | 
						_ "k8s.io/kubernetes/pkg/cloudprovider/providers"
 | 
				
			||||||
	_ "k8s.io/kubernetes/pkg/util/prometheusclientgo" // load all the prometheus client-go plugins
 | 
					 | 
				
			||||||
	_ "k8s.io/kubernetes/pkg/version/prometheus"      // for version metric registration
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func main() {
 | 
					func main() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,7 +22,7 @@ go_library(
 | 
				
			|||||||
        "//staging/src/k8s.io/apiserver/pkg/server/routes:go_default_library",
 | 
					        "//staging/src/k8s.io/apiserver/pkg/server/routes:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
 | 
					        "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/component-base/config:go_default_library",
 | 
					        "//staging/src/k8s.io/component-base/config:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
 | 
					        "//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
 | 
				
			||||||
        "//vendor/k8s.io/klog:go_default_library",
 | 
					        "//vendor/k8s.io/klog:go_default_library",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,8 +20,6 @@ import (
 | 
				
			|||||||
	"net/http"
 | 
						"net/http"
 | 
				
			||||||
	goruntime "runtime"
 | 
						goruntime "runtime"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/prometheus/client_golang/prometheus"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	genericapifilters "k8s.io/apiserver/pkg/endpoints/filters"
 | 
						genericapifilters "k8s.io/apiserver/pkg/endpoints/filters"
 | 
				
			||||||
	apirequest "k8s.io/apiserver/pkg/endpoints/request"
 | 
						apirequest "k8s.io/apiserver/pkg/endpoints/request"
 | 
				
			||||||
	apiserver "k8s.io/apiserver/pkg/server"
 | 
						apiserver "k8s.io/apiserver/pkg/server"
 | 
				
			||||||
@@ -30,6 +28,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apiserver/pkg/server/mux"
 | 
						"k8s.io/apiserver/pkg/server/mux"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/server/routes"
 | 
						"k8s.io/apiserver/pkg/server/routes"
 | 
				
			||||||
	componentbaseconfig "k8s.io/component-base/config"
 | 
						componentbaseconfig "k8s.io/component-base/config"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics/legacyregistry"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/legacyscheme"
 | 
						"k8s.io/kubernetes/pkg/api/legacyscheme"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util/configz"
 | 
						"k8s.io/kubernetes/pkg/util/configz"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -64,7 +63,7 @@ func NewBaseHandler(c *componentbaseconfig.DebuggingConfiguration, checks ...hea
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	configz.InstallHandler(mux)
 | 
						configz.InstallHandler(mux)
 | 
				
			||||||
	mux.Handle("/metrics", prometheus.Handler())
 | 
						mux.Handle("/metrics", legacyregistry.Handler())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return mux
 | 
						return mux
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,11 +24,11 @@ go_library(
 | 
				
			|||||||
        "//cmd/kube-proxy/app:go_default_library",
 | 
					        "//cmd/kube-proxy/app:go_default_library",
 | 
				
			||||||
        "//cmd/kube-scheduler/app:go_default_library",
 | 
					        "//cmd/kube-scheduler/app:go_default_library",
 | 
				
			||||||
        "//cmd/kubelet/app:go_default_library",
 | 
					        "//cmd/kubelet/app:go_default_library",
 | 
				
			||||||
        "//pkg/client/metrics/prometheus:go_default_library",
 | 
					 | 
				
			||||||
        "//pkg/kubectl/cmd:go_default_library",
 | 
					        "//pkg/kubectl/cmd:go_default_library",
 | 
				
			||||||
        "//pkg/version/prometheus:go_default_library",
 | 
					        "//pkg/version/prometheus:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/component-base/cli/flag:go_default_library",
 | 
					        "//staging/src/k8s.io/component-base/cli/flag:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/component-base/logs:go_default_library",
 | 
					        "//staging/src/k8s.io/component-base/logs:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics/prometheus/restclient:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/spf13/cobra:go_default_library",
 | 
					        "//vendor/github.com/spf13/cobra:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/spf13/pflag:go_default_library",
 | 
					        "//vendor/github.com/spf13/pflag:go_default_library",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,13 +31,13 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	cliflag "k8s.io/component-base/cli/flag"
 | 
						cliflag "k8s.io/component-base/cli/flag"
 | 
				
			||||||
	"k8s.io/component-base/logs"
 | 
						"k8s.io/component-base/logs"
 | 
				
			||||||
 | 
						_ "k8s.io/component-base/metrics/prometheus/restclient" // for client metric registration
 | 
				
			||||||
	cloudcontrollermanager "k8s.io/kubernetes/cmd/cloud-controller-manager/app"
 | 
						cloudcontrollermanager "k8s.io/kubernetes/cmd/cloud-controller-manager/app"
 | 
				
			||||||
	kubeapiserver "k8s.io/kubernetes/cmd/kube-apiserver/app"
 | 
						kubeapiserver "k8s.io/kubernetes/cmd/kube-apiserver/app"
 | 
				
			||||||
	kubecontrollermanager "k8s.io/kubernetes/cmd/kube-controller-manager/app"
 | 
						kubecontrollermanager "k8s.io/kubernetes/cmd/kube-controller-manager/app"
 | 
				
			||||||
	kubeproxy "k8s.io/kubernetes/cmd/kube-proxy/app"
 | 
						kubeproxy "k8s.io/kubernetes/cmd/kube-proxy/app"
 | 
				
			||||||
	kubescheduler "k8s.io/kubernetes/cmd/kube-scheduler/app"
 | 
						kubescheduler "k8s.io/kubernetes/cmd/kube-scheduler/app"
 | 
				
			||||||
	kubelet "k8s.io/kubernetes/cmd/kubelet/app"
 | 
						kubelet "k8s.io/kubernetes/cmd/kubelet/app"
 | 
				
			||||||
	_ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration
 | 
					 | 
				
			||||||
	kubectl "k8s.io/kubernetes/pkg/kubectl/cmd"
 | 
						kubectl "k8s.io/kubernetes/pkg/kubectl/cmd"
 | 
				
			||||||
	_ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration
 | 
						_ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,9 +20,8 @@ go_library(
 | 
				
			|||||||
    importpath = "k8s.io/kubernetes/cmd/kube-controller-manager",
 | 
					    importpath = "k8s.io/kubernetes/cmd/kube-controller-manager",
 | 
				
			||||||
    deps = [
 | 
					    deps = [
 | 
				
			||||||
        "//cmd/kube-controller-manager/app:go_default_library",
 | 
					        "//cmd/kube-controller-manager/app:go_default_library",
 | 
				
			||||||
        "//pkg/util/prometheusclientgo:go_default_library",
 | 
					 | 
				
			||||||
        "//pkg/version/prometheus:go_default_library",
 | 
					 | 
				
			||||||
        "//staging/src/k8s.io/component-base/logs:go_default_library",
 | 
					        "//staging/src/k8s.io/component-base/logs:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics/prometheus/clientgo:go_default_library",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,9 +26,8 @@ import (
 | 
				
			|||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"k8s.io/component-base/logs"
 | 
						"k8s.io/component-base/logs"
 | 
				
			||||||
 | 
						_ "k8s.io/component-base/metrics/prometheus/clientgo" // load all the prometheus client-go plugin
 | 
				
			||||||
	"k8s.io/kubernetes/cmd/kube-controller-manager/app"
 | 
						"k8s.io/kubernetes/cmd/kube-controller-manager/app"
 | 
				
			||||||
	_ "k8s.io/kubernetes/pkg/util/prometheusclientgo" // load all the prometheus client-go plugin
 | 
					 | 
				
			||||||
	_ "k8s.io/kubernetes/pkg/version/prometheus"      // for version metric registration
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func main() {
 | 
					func main() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,6 +38,8 @@ go_library(
 | 
				
			|||||||
        "//staging/src/k8s.io/cloud-provider/volume:go_default_library",
 | 
					        "//staging/src/k8s.io/cloud-provider/volume:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/cloud-provider/volume/errors:go_default_library",
 | 
					        "//staging/src/k8s.io/cloud-provider/volume/errors:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/cloud-provider/volume/helpers:go_default_library",
 | 
					        "//staging/src/k8s.io/cloud-provider/volume/helpers:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/gophercloud/gophercloud:go_default_library",
 | 
					        "//vendor/github.com/gophercloud/gophercloud:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/gophercloud/gophercloud/openstack:go_default_library",
 | 
					        "//vendor/github.com/gophercloud/gophercloud/openstack:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions:go_default_library",
 | 
					        "//vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions:go_default_library",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,8 @@ package openstack
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"sync"
 | 
						"sync"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/prometheus/client_golang/prometheus"
 | 
						"k8s.io/component-base/metrics"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics/legacyregistry"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const (
 | 
					const (
 | 
				
			||||||
@@ -31,20 +32,22 @@ const (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
	openstackOperationsLatency = prometheus.NewHistogramVec(
 | 
						openstackOperationsLatency = metrics.NewHistogramVec(
 | 
				
			||||||
		prometheus.HistogramOpts{
 | 
							&metrics.HistogramOpts{
 | 
				
			||||||
			Subsystem: openstackSubsystem,
 | 
								Subsystem:      openstackSubsystem,
 | 
				
			||||||
			Name:      openstackOperationKey,
 | 
								Name:           openstackOperationKey,
 | 
				
			||||||
			Help:      "Latency of openstack api call",
 | 
								Help:           "Latency of openstack api call",
 | 
				
			||||||
 | 
								StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		[]string{"request"},
 | 
							[]string{"request"},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	openstackAPIRequestErrors = prometheus.NewCounterVec(
 | 
						openstackAPIRequestErrors = metrics.NewCounterVec(
 | 
				
			||||||
		prometheus.CounterOpts{
 | 
							&metrics.CounterOpts{
 | 
				
			||||||
			Subsystem: openstackSubsystem,
 | 
								Subsystem:      openstackSubsystem,
 | 
				
			||||||
			Name:      openstackOperationErrorKey,
 | 
								Name:           openstackOperationErrorKey,
 | 
				
			||||||
			Help:      "Cumulative number of openstack Api call errors",
 | 
								Help:           "Cumulative number of openstack Api call errors",
 | 
				
			||||||
 | 
								StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		[]string{"request"},
 | 
							[]string{"request"},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
@@ -54,7 +57,7 @@ var registerOnce sync.Once
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func registerMetrics() {
 | 
					func registerMetrics() {
 | 
				
			||||||
	registerOnce.Do(func() {
 | 
						registerOnce.Do(func() {
 | 
				
			||||||
		prometheus.MustRegister(openstackOperationsLatency)
 | 
							legacyregistry.MustRegister(openstackOperationsLatency)
 | 
				
			||||||
		prometheus.MustRegister(openstackAPIRequestErrors)
 | 
							legacyregistry.MustRegister(openstackAPIRequestErrors)
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,7 +41,8 @@ go_library(
 | 
				
			|||||||
        "//staging/src/k8s.io/client-go/tools/record:go_default_library",
 | 
					        "//staging/src/k8s.io/client-go/tools/record:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
 | 
					        "//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/client-go/util/workqueue:go_default_library",
 | 
					        "//staging/src/k8s.io/client-go/util/workqueue:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
 | 
					        "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
 | 
				
			||||||
        "//vendor/k8s.io/klog:go_default_library",
 | 
					        "//vendor/k8s.io/klog:go_default_library",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,7 +19,8 @@ package nodelifecycle
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"sync"
 | 
						"sync"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/prometheus/client_golang/prometheus"
 | 
						"k8s.io/component-base/metrics"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics/legacyregistry"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const (
 | 
					const (
 | 
				
			||||||
@@ -31,35 +32,39 @@ const (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
	zoneHealth = prometheus.NewGaugeVec(
 | 
						zoneHealth = metrics.NewGaugeVec(
 | 
				
			||||||
		prometheus.GaugeOpts{
 | 
							&metrics.GaugeOpts{
 | 
				
			||||||
			Subsystem: nodeControllerSubsystem,
 | 
								Subsystem:      nodeControllerSubsystem,
 | 
				
			||||||
			Name:      zoneHealthStatisticKey,
 | 
								Name:           zoneHealthStatisticKey,
 | 
				
			||||||
			Help:      "Gauge measuring percentage of healthy nodes per zone.",
 | 
								Help:           "Gauge measuring percentage of healthy nodes per zone.",
 | 
				
			||||||
 | 
								StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		[]string{"zone"},
 | 
							[]string{"zone"},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
	zoneSize = prometheus.NewGaugeVec(
 | 
						zoneSize = metrics.NewGaugeVec(
 | 
				
			||||||
		prometheus.GaugeOpts{
 | 
							&metrics.GaugeOpts{
 | 
				
			||||||
			Subsystem: nodeControllerSubsystem,
 | 
								Subsystem:      nodeControllerSubsystem,
 | 
				
			||||||
			Name:      zoneSizeKey,
 | 
								Name:           zoneSizeKey,
 | 
				
			||||||
			Help:      "Gauge measuring number of registered Nodes per zones.",
 | 
								Help:           "Gauge measuring number of registered Nodes per zones.",
 | 
				
			||||||
 | 
								StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		[]string{"zone"},
 | 
							[]string{"zone"},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
	unhealthyNodes = prometheus.NewGaugeVec(
 | 
						unhealthyNodes = metrics.NewGaugeVec(
 | 
				
			||||||
		prometheus.GaugeOpts{
 | 
							&metrics.GaugeOpts{
 | 
				
			||||||
			Subsystem: nodeControllerSubsystem,
 | 
								Subsystem:      nodeControllerSubsystem,
 | 
				
			||||||
			Name:      zoneNoUnhealthyNodesKey,
 | 
								Name:           zoneNoUnhealthyNodesKey,
 | 
				
			||||||
			Help:      "Gauge measuring number of not Ready Nodes per zones.",
 | 
								Help:           "Gauge measuring number of not Ready Nodes per zones.",
 | 
				
			||||||
 | 
								StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		[]string{"zone"},
 | 
							[]string{"zone"},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
	evictionsNumber = prometheus.NewCounterVec(
 | 
						evictionsNumber = metrics.NewCounterVec(
 | 
				
			||||||
		prometheus.CounterOpts{
 | 
							&metrics.CounterOpts{
 | 
				
			||||||
			Subsystem: nodeControllerSubsystem,
 | 
								Subsystem:      nodeControllerSubsystem,
 | 
				
			||||||
			Name:      evictionsNumberKey,
 | 
								Name:           evictionsNumberKey,
 | 
				
			||||||
			Help:      "Number of Node evictions that happened since current instance of NodeController started.",
 | 
								Help:           "Number of Node evictions that happened since current instance of NodeController started.",
 | 
				
			||||||
 | 
								StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		[]string{"zone"},
 | 
							[]string{"zone"},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
@@ -70,9 +75,9 @@ var registerMetrics sync.Once
 | 
				
			|||||||
// Register the metrics that are to be monitored.
 | 
					// Register the metrics that are to be monitored.
 | 
				
			||||||
func Register() {
 | 
					func Register() {
 | 
				
			||||||
	registerMetrics.Do(func() {
 | 
						registerMetrics.Do(func() {
 | 
				
			||||||
		prometheus.MustRegister(zoneHealth)
 | 
							legacyregistry.MustRegister(zoneHealth)
 | 
				
			||||||
		prometheus.MustRegister(zoneSize)
 | 
							legacyregistry.MustRegister(zoneSize)
 | 
				
			||||||
		prometheus.MustRegister(unhealthyNodes)
 | 
							legacyregistry.MustRegister(unhealthyNodes)
 | 
				
			||||||
		prometheus.MustRegister(evictionsNumber)
 | 
							legacyregistry.MustRegister(evictionsNumber)
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,6 +12,8 @@ go_library(
 | 
				
			|||||||
        "//pkg/volume/util:go_default_library",
 | 
					        "//pkg/volume/util:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
 | 
					        "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/client-go/listers/core/v1:go_default_library",
 | 
					        "//staging/src/k8s.io/client-go/listers/core/v1:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
 | 
					        "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
 | 
				
			||||||
        "//vendor/k8s.io/klog:go_default_library",
 | 
					        "//vendor/k8s.io/klog:go_default_library",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,8 +20,11 @@ import (
 | 
				
			|||||||
	"sync"
 | 
						"sync"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/prometheus/client_golang/prometheus"
 | 
						"github.com/prometheus/client_golang/prometheus"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/labels"
 | 
						"k8s.io/apimachinery/pkg/labels"
 | 
				
			||||||
	corelisters "k8s.io/client-go/listers/core/v1"
 | 
						corelisters "k8s.io/client-go/listers/core/v1"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics/legacyregistry"
 | 
				
			||||||
	"k8s.io/klog"
 | 
						"k8s.io/klog"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/controller/volume/attachdetach/cache"
 | 
						"k8s.io/kubernetes/pkg/controller/volume/attachdetach/cache"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/controller/volume/attachdetach/util"
 | 
						"k8s.io/kubernetes/pkg/controller/volume/attachdetach/util"
 | 
				
			||||||
@@ -42,10 +45,12 @@ var (
 | 
				
			|||||||
		"Number of volumes in A/D Controller",
 | 
							"Number of volumes in A/D Controller",
 | 
				
			||||||
		[]string{"plugin_name", "state"}, nil)
 | 
							[]string{"plugin_name", "state"}, nil)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	forcedDetachMetricCounter = prometheus.NewCounter(
 | 
						forcedDetachMetricCounter = metrics.NewCounter(
 | 
				
			||||||
		prometheus.CounterOpts{
 | 
							&metrics.CounterOpts{
 | 
				
			||||||
			Name: "attachdetach_controller_forced_detaches",
 | 
								Name:           "attachdetach_controller_forced_detaches",
 | 
				
			||||||
			Help: "Number of times the A/D Controller performed a forced detach"})
 | 
								Help:           "Number of times the A/D Controller performed a forced detach",
 | 
				
			||||||
 | 
								StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
var registerMetrics sync.Once
 | 
					var registerMetrics sync.Once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -57,13 +62,13 @@ func Register(pvcLister corelisters.PersistentVolumeClaimLister,
 | 
				
			|||||||
	dsw cache.DesiredStateOfWorld,
 | 
						dsw cache.DesiredStateOfWorld,
 | 
				
			||||||
	pluginMgr *volume.VolumePluginMgr) {
 | 
						pluginMgr *volume.VolumePluginMgr) {
 | 
				
			||||||
	registerMetrics.Do(func() {
 | 
						registerMetrics.Do(func() {
 | 
				
			||||||
		prometheus.MustRegister(newAttachDetachStateCollector(pvcLister,
 | 
							legacyregistry.RawMustRegister(newAttachDetachStateCollector(pvcLister,
 | 
				
			||||||
			podLister,
 | 
								podLister,
 | 
				
			||||||
			pvLister,
 | 
								pvLister,
 | 
				
			||||||
			asw,
 | 
								asw,
 | 
				
			||||||
			dsw,
 | 
								dsw,
 | 
				
			||||||
			pluginMgr))
 | 
								pluginMgr))
 | 
				
			||||||
		prometheus.MustRegister(forcedDetachMetricCounter)
 | 
							legacyregistry.MustRegister(forcedDetachMetricCounter)
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,8 @@ go_library(
 | 
				
			|||||||
    deps = [
 | 
					    deps = [
 | 
				
			||||||
        "//pkg/volume/util:go_default_library",
 | 
					        "//pkg/volume/util:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/api/core/v1:go_default_library",
 | 
					        "//staging/src/k8s.io/api/core/v1:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
 | 
					        "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
 | 
				
			||||||
        "//vendor/k8s.io/klog:go_default_library",
 | 
					        "//vendor/k8s.io/klog:go_default_library",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,10 @@ import (
 | 
				
			|||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/prometheus/client_golang/prometheus"
 | 
						"github.com/prometheus/client_golang/prometheus"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics/legacyregistry"
 | 
				
			||||||
	"k8s.io/klog"
 | 
						"k8s.io/klog"
 | 
				
			||||||
	metricutil "k8s.io/kubernetes/pkg/volume/util"
 | 
						metricutil "k8s.io/kubernetes/pkg/volume/util"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -56,8 +59,8 @@ type PVCLister interface {
 | 
				
			|||||||
// Register all metrics for pv controller.
 | 
					// Register all metrics for pv controller.
 | 
				
			||||||
func Register(pvLister PVLister, pvcLister PVCLister) {
 | 
					func Register(pvLister PVLister, pvcLister PVCLister) {
 | 
				
			||||||
	registerMetrics.Do(func() {
 | 
						registerMetrics.Do(func() {
 | 
				
			||||||
		prometheus.MustRegister(newPVAndPVCCountCollector(pvLister, pvcLister))
 | 
							legacyregistry.RawMustRegister(newPVAndPVCCountCollector(pvLister, pvcLister))
 | 
				
			||||||
		prometheus.MustRegister(volumeOperationErrorsMetric)
 | 
							legacyregistry.MustRegister(volumeOperationErrorsMetric)
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -92,10 +95,11 @@ var (
 | 
				
			|||||||
		"Gauge measuring number of persistent volume claim currently unbound",
 | 
							"Gauge measuring number of persistent volume claim currently unbound",
 | 
				
			||||||
		[]string{namespaceLabel}, nil)
 | 
							[]string{namespaceLabel}, nil)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	volumeOperationErrorsMetric = prometheus.NewCounterVec(
 | 
						volumeOperationErrorsMetric = metrics.NewCounterVec(
 | 
				
			||||||
		prometheus.CounterOpts{
 | 
							&metrics.CounterOpts{
 | 
				
			||||||
			Name: "volume_operation_total_errors",
 | 
								Name:           "volume_operation_total_errors",
 | 
				
			||||||
			Help: "Total volume operation erros",
 | 
								Help:           "Total volume operation erros",
 | 
				
			||||||
 | 
								StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		[]string{"plugin_name", "operation_name"})
 | 
							[]string{"plugin_name", "operation_name"})
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,7 +12,8 @@ go_library(
 | 
				
			|||||||
    importpath = "k8s.io/kubernetes/pkg/util/metrics",
 | 
					    importpath = "k8s.io/kubernetes/pkg/util/metrics",
 | 
				
			||||||
    deps = [
 | 
					    deps = [
 | 
				
			||||||
        "//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
 | 
					        "//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
 | 
					        "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,8 +21,8 @@ import (
 | 
				
			|||||||
	"sync"
 | 
						"sync"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"k8s.io/client-go/util/flowcontrol"
 | 
						"k8s.io/client-go/util/flowcontrol"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics"
 | 
				
			||||||
	"github.com/prometheus/client_golang/prometheus"
 | 
						"k8s.io/component-base/metrics/legacyregistry"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
@@ -31,7 +31,7 @@ var (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type rateLimiterMetric struct {
 | 
					type rateLimiterMetric struct {
 | 
				
			||||||
	metric prometheus.Gauge
 | 
						metric metrics.GaugeMetric
 | 
				
			||||||
	stopCh chan struct{}
 | 
						stopCh chan struct{}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -43,12 +43,13 @@ func registerRateLimiterMetric(ownerName string) error {
 | 
				
			|||||||
		// only register once in Prometheus. We happen to see an ownerName reused in parallel integration tests.
 | 
							// only register once in Prometheus. We happen to see an ownerName reused in parallel integration tests.
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	metric := prometheus.NewGauge(prometheus.GaugeOpts{
 | 
						metric := metrics.NewGauge(&metrics.GaugeOpts{
 | 
				
			||||||
		Name:      "rate_limiter_use",
 | 
							Name:           "rate_limiter_use",
 | 
				
			||||||
		Subsystem: ownerName,
 | 
							Subsystem:      ownerName,
 | 
				
			||||||
		Help:      fmt.Sprintf("A metric measuring the saturation of the rate limiter for %v", ownerName),
 | 
							Help:           fmt.Sprintf("A metric measuring the saturation of the rate limiter for %v", ownerName),
 | 
				
			||||||
 | 
							StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	if err := prometheus.Register(metric); err != nil {
 | 
						if err := legacyregistry.Register(metric); err != nil {
 | 
				
			||||||
		return fmt.Errorf("error registering rate limiter usage metric: %v", err)
 | 
							return fmt.Errorf("error registering rate limiter usage metric: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	stopCh := make(chan struct{})
 | 
						stopCh := make(chan struct{})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,6 +32,6 @@ var (
 | 
				
			|||||||
// RegisterBuildInfo registers the build and version info in a metadata metric in prometheus
 | 
					// RegisterBuildInfo registers the build and version info in a metadata metric in prometheus
 | 
				
			||||||
func RegisterBuildInfo(r KubeRegistry) {
 | 
					func RegisterBuildInfo(r KubeRegistry) {
 | 
				
			||||||
	info := version.Get()
 | 
						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)
 | 
					 | 
				
			||||||
	r.MustRegister(buildInfo)
 | 
						r.MustRegister(buildInfo)
 | 
				
			||||||
 | 
						buildInfo.WithLabelValues(info.Major, info.Minor, info.GitVersion, info.GitCommit, info.GitTreeState, info.BuildDate, info.GoVersion, info.Compiler, info.Platform).Set(1)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -48,6 +48,8 @@ go_library(
 | 
				
			|||||||
        "//staging/src/k8s.io/cloud-provider/volume:go_default_library",
 | 
					        "//staging/src/k8s.io/cloud-provider/volume:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/cloud-provider/volume/errors:go_default_library",
 | 
					        "//staging/src/k8s.io/cloud-provider/volume/errors:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/cloud-provider/volume/helpers:go_default_library",
 | 
					        "//staging/src/k8s.io/cloud-provider/volume/helpers:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/csi-translation-lib/plugins:go_default_library",
 | 
					        "//staging/src/k8s.io/csi-translation-lib/plugins:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
 | 
					        "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library",
 | 
					        "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,27 +22,33 @@ import (
 | 
				
			|||||||
	"sync"
 | 
						"sync"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/prometheus/client_golang/prometheus"
 | 
						"github.com/prometheus/client_golang/prometheus"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics/legacyregistry"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
	awsAPIMetric = prometheus.NewHistogramVec(
 | 
						awsAPIMetric = metrics.NewHistogramVec(
 | 
				
			||||||
		prometheus.HistogramOpts{
 | 
							&metrics.HistogramOpts{
 | 
				
			||||||
			Name: "cloudprovider_aws_api_request_duration_seconds",
 | 
								Name:           "cloudprovider_aws_api_request_duration_seconds",
 | 
				
			||||||
			Help: "Latency of AWS API calls",
 | 
								Help:           "Latency of AWS API calls",
 | 
				
			||||||
 | 
								StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		[]string{"request"})
 | 
							[]string{"request"})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	awsAPIErrorMetric = prometheus.NewCounterVec(
 | 
						awsAPIErrorMetric = metrics.NewCounterVec(
 | 
				
			||||||
		prometheus.CounterOpts{
 | 
							&metrics.CounterOpts{
 | 
				
			||||||
			Name: "cloudprovider_aws_api_request_errors",
 | 
								Name:           "cloudprovider_aws_api_request_errors",
 | 
				
			||||||
			Help: "AWS API errors",
 | 
								Help:           "AWS API errors",
 | 
				
			||||||
 | 
								StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		[]string{"request"})
 | 
							[]string{"request"})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	awsAPIThrottlesMetric = prometheus.NewCounterVec(
 | 
						awsAPIThrottlesMetric = metrics.NewCounterVec(
 | 
				
			||||||
		prometheus.CounterOpts{
 | 
							&metrics.CounterOpts{
 | 
				
			||||||
			Name: "cloudprovider_aws_api_throttled_requests_total",
 | 
								Name:           "cloudprovider_aws_api_throttled_requests_total",
 | 
				
			||||||
			Help: "AWS API throttled requests",
 | 
								Help:           "AWS API throttled requests",
 | 
				
			||||||
 | 
								StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		[]string{"operation_name"})
 | 
							[]string{"operation_name"})
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -63,8 +69,8 @@ var registerOnce sync.Once
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func registerMetrics() {
 | 
					func registerMetrics() {
 | 
				
			||||||
	registerOnce.Do(func() {
 | 
						registerOnce.Do(func() {
 | 
				
			||||||
		prometheus.MustRegister(awsAPIMetric)
 | 
							legacyregistry.MustRegister(awsAPIMetric)
 | 
				
			||||||
		prometheus.MustRegister(awsAPIErrorMetric)
 | 
							legacyregistry.MustRegister(awsAPIErrorMetric)
 | 
				
			||||||
		prometheus.MustRegister(awsAPIThrottlesMetric)
 | 
							legacyregistry.MustRegister(awsAPIThrottlesMetric)
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -63,6 +63,8 @@ go_library(
 | 
				
			|||||||
        "//staging/src/k8s.io/cloud-provider/volume/errors:go_default_library",
 | 
					        "//staging/src/k8s.io/cloud-provider/volume/errors:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/cloud-provider/volume/helpers:go_default_library",
 | 
					        "//staging/src/k8s.io/cloud-provider/volume/helpers:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/component-base/featuregate:go_default_library",
 | 
					        "//staging/src/k8s.io/component-base/featuregate:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/legacy-cloud-providers/azure/auth:go_default_library",
 | 
					        "//staging/src/k8s.io/legacy-cloud-providers/azure/auth:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-07-01/compute:go_default_library",
 | 
					        "//vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-07-01/compute:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network:go_default_library",
 | 
					        "//vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network:go_default_library",
 | 
				
			||||||
@@ -72,7 +74,6 @@ go_library(
 | 
				
			|||||||
        "//vendor/github.com/Azure/go-autorest/autorest/adal:go_default_library",
 | 
					        "//vendor/github.com/Azure/go-autorest/autorest/adal:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library",
 | 
					        "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library",
 | 
					        "//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
 | 
					 | 
				
			||||||
        "//vendor/github.com/rubiojr/go-vhd/vhd:go_default_library",
 | 
					        "//vendor/github.com/rubiojr/go-vhd/vhd:go_default_library",
 | 
				
			||||||
        "//vendor/k8s.io/klog:go_default_library",
 | 
					        "//vendor/k8s.io/klog:go_default_library",
 | 
				
			||||||
        "//vendor/k8s.io/utils/keymutex:go_default_library",
 | 
					        "//vendor/k8s.io/utils/keymutex:go_default_library",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,12 +22,13 @@ import (
 | 
				
			|||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/prometheus/client_golang/prometheus"
 | 
						"k8s.io/component-base/metrics"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics/legacyregistry"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type apiCallMetrics struct {
 | 
					type apiCallMetrics struct {
 | 
				
			||||||
	latency *prometheus.HistogramVec
 | 
						latency *metrics.HistogramVec
 | 
				
			||||||
	errors  *prometheus.CounterVec
 | 
						errors  *metrics.CounterVec
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
@@ -65,24 +66,26 @@ func (mc *metricContext) Observe(err error) error {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func registerAPIMetrics(attributes ...string) *apiCallMetrics {
 | 
					func registerAPIMetrics(attributes ...string) *apiCallMetrics {
 | 
				
			||||||
	metrics := &apiCallMetrics{
 | 
						metrics := &apiCallMetrics{
 | 
				
			||||||
		latency: prometheus.NewHistogramVec(
 | 
							latency: metrics.NewHistogramVec(
 | 
				
			||||||
			prometheus.HistogramOpts{
 | 
								&metrics.HistogramOpts{
 | 
				
			||||||
				Name: "cloudprovider_azure_api_request_duration_seconds",
 | 
									Name:           "cloudprovider_azure_api_request_duration_seconds",
 | 
				
			||||||
				Help: "Latency of an Azure API call",
 | 
									Help:           "Latency of an Azure API call",
 | 
				
			||||||
 | 
									StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			attributes,
 | 
								attributes,
 | 
				
			||||||
		),
 | 
							),
 | 
				
			||||||
		errors: prometheus.NewCounterVec(
 | 
							errors: metrics.NewCounterVec(
 | 
				
			||||||
			prometheus.CounterOpts{
 | 
								&metrics.CounterOpts{
 | 
				
			||||||
				Name: "cloudprovider_azure_api_request_errors",
 | 
									Name:           "cloudprovider_azure_api_request_errors",
 | 
				
			||||||
				Help: "Number of errors for an Azure API call",
 | 
									Help:           "Number of errors for an Azure API call",
 | 
				
			||||||
 | 
									StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			attributes,
 | 
								attributes,
 | 
				
			||||||
		),
 | 
							),
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	prometheus.MustRegister(metrics.latency)
 | 
						legacyregistry.MustRegister(metrics.latency)
 | 
				
			||||||
	prometheus.MustRegister(metrics.errors)
 | 
						legacyregistry.MustRegister(metrics.errors)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return metrics
 | 
						return metrics
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -73,7 +73,6 @@ go_library(
 | 
				
			|||||||
        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter:go_default_library",
 | 
					        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta:go_default_library",
 | 
					        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock:go_default_library",
 | 
					        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
 | 
					 | 
				
			||||||
        "//vendor/golang.org/x/oauth2:go_default_library",
 | 
					        "//vendor/golang.org/x/oauth2:go_default_library",
 | 
				
			||||||
        "//vendor/golang.org/x/oauth2/google:go_default_library",
 | 
					        "//vendor/golang.org/x/oauth2/google:go_default_library",
 | 
				
			||||||
        "//vendor/google.golang.org/api/compute/v0.alpha:go_default_library",
 | 
					        "//vendor/google.golang.org/api/compute/v0.alpha:go_default_library",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,8 @@ package gce
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/prometheus/client_golang/prometheus"
 | 
						"k8s.io/component-base/metrics"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics/legacyregistry"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const (
 | 
					const (
 | 
				
			||||||
@@ -32,8 +33,8 @@ const (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type apiCallMetrics struct {
 | 
					type apiCallMetrics struct {
 | 
				
			||||||
	latency *prometheus.HistogramVec
 | 
						latency *metrics.HistogramVec
 | 
				
			||||||
	errors  *prometheus.CounterVec
 | 
						errors  *metrics.CounterVec
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
@@ -84,24 +85,26 @@ func newGenericMetricContext(prefix, request, region, zone, version string) *met
 | 
				
			|||||||
// registerApiMetrics adds metrics definitions for a category of API calls.
 | 
					// registerApiMetrics adds metrics definitions for a category of API calls.
 | 
				
			||||||
func registerAPIMetrics(attributes ...string) *apiCallMetrics {
 | 
					func registerAPIMetrics(attributes ...string) *apiCallMetrics {
 | 
				
			||||||
	metrics := &apiCallMetrics{
 | 
						metrics := &apiCallMetrics{
 | 
				
			||||||
		latency: prometheus.NewHistogramVec(
 | 
							latency: metrics.NewHistogramVec(
 | 
				
			||||||
			prometheus.HistogramOpts{
 | 
								&metrics.HistogramOpts{
 | 
				
			||||||
				Name: "cloudprovider_gce_api_request_duration_seconds",
 | 
									Name:           "cloudprovider_gce_api_request_duration_seconds",
 | 
				
			||||||
				Help: "Latency of a GCE API call",
 | 
									Help:           "Latency of a GCE API call",
 | 
				
			||||||
 | 
									StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			attributes,
 | 
								attributes,
 | 
				
			||||||
		),
 | 
							),
 | 
				
			||||||
		errors: prometheus.NewCounterVec(
 | 
							errors: metrics.NewCounterVec(
 | 
				
			||||||
			prometheus.CounterOpts{
 | 
								&metrics.CounterOpts{
 | 
				
			||||||
				Name: "cloudprovider_gce_api_request_errors",
 | 
									Name:           "cloudprovider_gce_api_request_errors",
 | 
				
			||||||
				Help: "Number of errors for an API call",
 | 
									Help:           "Number of errors for an API call",
 | 
				
			||||||
 | 
									StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			attributes,
 | 
								attributes,
 | 
				
			||||||
		),
 | 
							),
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	prometheus.MustRegister(metrics.latency)
 | 
						legacyregistry.MustRegister(metrics.latency)
 | 
				
			||||||
	prometheus.MustRegister(metrics.errors)
 | 
						legacyregistry.MustRegister(metrics.errors)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return metrics
 | 
						return metrics
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,6 +27,8 @@ go_library(
 | 
				
			|||||||
    deps = [
 | 
					    deps = [
 | 
				
			||||||
        "//staging/src/k8s.io/api/core/v1:go_default_library",
 | 
					        "//staging/src/k8s.io/api/core/v1:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/client-go/pkg/version:go_default_library",
 | 
					        "//staging/src/k8s.io/client-go/pkg/version:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
 | 
					        "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/vmware/govmomi/find:go_default_library",
 | 
					        "//vendor/github.com/vmware/govmomi/find:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/vmware/govmomi/object:go_default_library",
 | 
					        "//vendor/github.com/vmware/govmomi/object:go_default_library",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,9 @@ import (
 | 
				
			|||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/prometheus/client_golang/prometheus"
 | 
						"github.com/prometheus/client_golang/prometheus"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics/legacyregistry"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Cloud Provider API constants
 | 
					// Cloud Provider API constants
 | 
				
			||||||
@@ -43,45 +46,49 @@ const (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// vsphereAPIMetric is for recording latency of Single API Call.
 | 
					// vsphereAPIMetric is for recording latency of Single API Call.
 | 
				
			||||||
var vsphereAPIMetric = prometheus.NewHistogramVec(
 | 
					var vsphereAPIMetric = metrics.NewHistogramVec(
 | 
				
			||||||
	prometheus.HistogramOpts{
 | 
						&metrics.HistogramOpts{
 | 
				
			||||||
		Name: "cloudprovider_vsphere_api_request_duration_seconds",
 | 
							Name:           "cloudprovider_vsphere_api_request_duration_seconds",
 | 
				
			||||||
		Help: "Latency of vsphere api call",
 | 
							Help:           "Latency of vsphere api call",
 | 
				
			||||||
 | 
							StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	[]string{"request"},
 | 
						[]string{"request"},
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var vsphereAPIErrorMetric = prometheus.NewCounterVec(
 | 
					var vsphereAPIErrorMetric = metrics.NewCounterVec(
 | 
				
			||||||
	prometheus.CounterOpts{
 | 
						&metrics.CounterOpts{
 | 
				
			||||||
		Name: "cloudprovider_vsphere_api_request_errors",
 | 
							Name:           "cloudprovider_vsphere_api_request_errors",
 | 
				
			||||||
		Help: "vsphere Api errors",
 | 
							Help:           "vsphere Api errors",
 | 
				
			||||||
 | 
							StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	[]string{"request"},
 | 
						[]string{"request"},
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// vsphereOperationMetric is for recording latency of vSphere Operation which invokes multiple APIs to get the task done.
 | 
					// vsphereOperationMetric is for recording latency of vSphere Operation which invokes multiple APIs to get the task done.
 | 
				
			||||||
var vsphereOperationMetric = prometheus.NewHistogramVec(
 | 
					var vsphereOperationMetric = metrics.NewHistogramVec(
 | 
				
			||||||
	prometheus.HistogramOpts{
 | 
						&metrics.HistogramOpts{
 | 
				
			||||||
		Name: "cloudprovider_vsphere_operation_duration_seconds",
 | 
							Name:           "cloudprovider_vsphere_operation_duration_seconds",
 | 
				
			||||||
		Help: "Latency of vsphere operation call",
 | 
							Help:           "Latency of vsphere operation call",
 | 
				
			||||||
 | 
							StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	[]string{"operation"},
 | 
						[]string{"operation"},
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var vsphereOperationErrorMetric = prometheus.NewCounterVec(
 | 
					var vsphereOperationErrorMetric = metrics.NewCounterVec(
 | 
				
			||||||
	prometheus.CounterOpts{
 | 
						&metrics.CounterOpts{
 | 
				
			||||||
		Name: "cloudprovider_vsphere_operation_errors",
 | 
							Name:           "cloudprovider_vsphere_operation_errors",
 | 
				
			||||||
		Help: "vsphere operation errors",
 | 
							Help:           "vsphere operation errors",
 | 
				
			||||||
 | 
							StabilityLevel: metrics.ALPHA,
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	[]string{"operation"},
 | 
						[]string{"operation"},
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// RegisterMetrics registers all the API and Operation metrics
 | 
					// RegisterMetrics registers all the API and Operation metrics
 | 
				
			||||||
func RegisterMetrics() {
 | 
					func RegisterMetrics() {
 | 
				
			||||||
	prometheus.MustRegister(vsphereAPIMetric)
 | 
						legacyregistry.MustRegister(vsphereAPIMetric)
 | 
				
			||||||
	prometheus.MustRegister(vsphereAPIErrorMetric)
 | 
						legacyregistry.MustRegister(vsphereAPIErrorMetric)
 | 
				
			||||||
	prometheus.MustRegister(vsphereOperationMetric)
 | 
						legacyregistry.MustRegister(vsphereOperationMetric)
 | 
				
			||||||
	prometheus.MustRegister(vsphereOperationErrorMetric)
 | 
						legacyregistry.MustRegister(vsphereOperationErrorMetric)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// RecordvSphereMetric records the vSphere API and Operation metrics
 | 
					// RecordvSphereMetric records the vSphere API and Operation metrics
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user