mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-07-18 13:57:38 +00:00
kubelet/metrics: fix multiple Register call
DRA also calls Register at pkg/kubelet/cm/container_manager_linux.go NewContainerManager(), causing volume stats collector being ignored. Fix this by moving it out of `sync.Once()`, allowing multiple calls to `Register()` func.
This commit is contained in:
@@ -317,7 +317,7 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
metrics.Register(cm.draManager.NewMetricsCollector())
|
||||
metrics.RegisterCollectors(cm.draManager.NewMetricsCollector())
|
||||
}
|
||||
cm.kubeClient = kubeClient
|
||||
|
||||
|
||||
@@ -1632,7 +1632,8 @@ func (kl *Kubelet) StartGarbageCollection() {
|
||||
// Note that the modules here must not depend on modules that are not initialized here.
|
||||
func (kl *Kubelet) initializeModules(ctx context.Context) error {
|
||||
// Prometheus metrics.
|
||||
metrics.Register(
|
||||
metrics.Register()
|
||||
metrics.RegisterCollectors(
|
||||
collectors.NewVolumeStatsCollector(kl),
|
||||
collectors.NewLogMetricsCollector(kl.StatsProvider.ListPodStats),
|
||||
)
|
||||
|
||||
@@ -1194,7 +1194,7 @@ var (
|
||||
var registerMetrics sync.Once
|
||||
|
||||
// Register registers all metrics.
|
||||
func Register(collectors ...metrics.StableCollector) {
|
||||
func Register() {
|
||||
// Register the metrics.
|
||||
registerMetrics.Do(func() {
|
||||
legacyregistry.MustRegister(FirstNetworkPodStartSLIDuration)
|
||||
@@ -1274,8 +1274,6 @@ func Register(collectors ...metrics.StableCollector) {
|
||||
legacyregistry.MustRegister(OrphanPodCleanedVolumes)
|
||||
legacyregistry.MustRegister(OrphanPodCleanedVolumesErrors)
|
||||
|
||||
legacyregistry.CustomMustRegister(collectors...)
|
||||
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.GracefulNodeShutdown) &&
|
||||
utilfeature.DefaultFeatureGate.Enabled(features.GracefulNodeShutdownBasedOnPodPriority) {
|
||||
legacyregistry.MustRegister(GracefulShutdownStartTime)
|
||||
@@ -1312,6 +1310,10 @@ func Register(collectors ...metrics.StableCollector) {
|
||||
})
|
||||
}
|
||||
|
||||
func RegisterCollectors(collectors ...metrics.StableCollector) {
|
||||
legacyregistry.CustomMustRegister(collectors...)
|
||||
}
|
||||
|
||||
// GetGather returns the gatherer. It used by test case outside current package.
|
||||
func GetGather() metrics.Gatherer {
|
||||
return legacyregistry.DefaultGatherer
|
||||
|
||||
Reference in New Issue
Block a user