mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
expose ability to register native prometheus collectors
This commit is contained in:
parent
3030a9d927
commit
12a4ee235f
@ -40,10 +40,12 @@ var (
|
||||
|
||||
type noopRegistry struct{}
|
||||
|
||||
func (noopRegistry) Register(metrics.Registerable) error { return nil }
|
||||
func (noopRegistry) MustRegister(...metrics.Registerable) {}
|
||||
func (noopRegistry) Unregister(metrics.Registerable) bool { return true }
|
||||
func (noopRegistry) Gather() ([]*dto.MetricFamily, error) { return nil, nil }
|
||||
func (noopRegistry) Register(metrics.Registerable) error { return nil }
|
||||
func (noopRegistry) MustRegister(...metrics.Registerable) {}
|
||||
func (noopRegistry) RawRegister(prometheus.Collector) error { return nil }
|
||||
func (noopRegistry) RawMustRegister(...prometheus.Collector) {}
|
||||
func (noopRegistry) Unregister(metrics.Registerable) bool { return true }
|
||||
func (noopRegistry) Gather() ([]*dto.MetricFamily, error) { return nil, nil }
|
||||
|
||||
type metricsRegistryFactory struct {
|
||||
globalRegistry metrics.KubeRegistry
|
||||
@ -79,7 +81,8 @@ func SetRegistryFactoryVersion(ver apimachineryversion.Info) []error {
|
||||
prometheus.NewGoCollector(),
|
||||
prometheus.NewProcessCollector(prometheus.ProcessCollectorOpts{}),
|
||||
}
|
||||
globalRegistryFactory.globalRegistry = metrics.NewPreloadedKubeRegistry(ver, preloadedMetrics...)
|
||||
globalRegistryFactory.globalRegistry = metrics.NewKubeRegistry(ver)
|
||||
globalRegistryFactory.globalRegistry.RawMustRegister(preloadedMetrics...)
|
||||
globalRegistryFactory.kubeVersion = &ver
|
||||
for _, c := range globalRegistryFactory.registerQueue {
|
||||
err := globalRegistryFactory.globalRegistry.Register(c)
|
||||
|
@ -57,6 +57,10 @@ type Registerable interface {
|
||||
// KubeRegistry is an interface which implements a subset of prometheus.Registerer and
|
||||
// prometheus.Gatherer interfaces
|
||||
type KubeRegistry interface {
|
||||
// Deprecated
|
||||
RawRegister(prometheus.Collector) error
|
||||
// Deprecated
|
||||
RawMustRegister(...prometheus.Collector)
|
||||
Register(Registerable) error
|
||||
MustRegister(...Registerable)
|
||||
Unregister(Registerable) bool
|
||||
@ -96,6 +100,24 @@ func (kr *kubeRegistry) MustRegister(cs ...Registerable) {
|
||||
kr.PromRegistry.MustRegister(metrics...)
|
||||
}
|
||||
|
||||
// RawRegister takes a native prometheus.Collector and registers the collector
|
||||
// to the registry. This bypasses metrics safety checks, so should only be used
|
||||
// to register custom prometheus collectors.
|
||||
//
|
||||
// Deprecated
|
||||
func (kr *kubeRegistry) RawRegister(c prometheus.Collector) error {
|
||||
return kr.PromRegistry.Register(c)
|
||||
}
|
||||
|
||||
// RawMustRegister takes a native prometheus.Collector and registers the collector
|
||||
// to the registry. This bypasses metrics safety checks, so should only be used
|
||||
// to register custom prometheus collectors.
|
||||
//
|
||||
// Deprecated
|
||||
func (kr *kubeRegistry) RawMustRegister(cs ...prometheus.Collector) {
|
||||
kr.PromRegistry.MustRegister(cs...)
|
||||
}
|
||||
|
||||
// Unregister unregisters the Collector that equals the Collector passed
|
||||
// in as an argument. (Two Collectors are considered equal if their
|
||||
// Describe method yields the same set of descriptors.) The function
|
||||
@ -125,18 +147,3 @@ func NewKubeRegistry(v apimachineryversion.Info) KubeRegistry {
|
||||
version: parseVersion(v),
|
||||
}
|
||||
}
|
||||
|
||||
// NewPreloadedKubeRegistry creates a new Registry with preloaded prometheus collectors
|
||||
// already registered. This is exposed specifically to maintain backwards
|
||||
// compatibility with the global prometheus registry.
|
||||
//
|
||||
// Deprecated
|
||||
func NewPreloadedKubeRegistry(v apimachineryversion.Info, cs ...prometheus.Collector) KubeRegistry {
|
||||
registry := &kubeRegistry{
|
||||
PromRegistry: prometheus.NewRegistry(),
|
||||
version: parseVersion(v),
|
||||
}
|
||||
|
||||
registry.PromRegistry.MustRegister(cs...)
|
||||
return registry
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user