func SetShowHidden() {
	showHiddenOnce.Do(func() {
		showHidden.Store(true)
		for _, r := range registries {
			r.enableHiddenCollectors()
			r.enableHiddenStableCollectors()
		}
	})
}
SetShowHidden will enable showing hidden metrics. This will no-opt
after the initial call
package metrics
import (
	"fmt"
	"sync"
	"sync/atomic"
	"github.com/blang/semver"
	"github.com/prometheus/client_golang/prometheus"
	dto "github.com/prometheus/client_model/go"
	apimachineryversion "k8s.io/apimachinery/pkg/version"
	"k8s.io/component-base/version"
)
var (
	showHiddenOnce      sync.Once
	disabledMetricsLock sync.RWMutex
	showHidden          atomic.Value
	registries          []*kubeRegistry  
	registriesLock      sync.RWMutex
	disabledMetrics     = map[string]struct{}{}
)
func shouldHide(currentVersion *semver.Version, deprecatedVersion *semver.Version) bool {
	guardVersion, err := semver.Make(fmt.Sprintf("%d.%d.0", currentVersion.Major, currentVersion.Minor))
	if err != nil {
		panic("failed to make version from current version")
	}
	if deprecatedVersion.LT(guardVersion) {
		return true
	}
	return false
}
func ValidateShowHiddenMetricsVersion(v string) []error {
	err := validateShowHiddenMetricsVersion(parseVersion(version.Get()), v)
	if err != nil {
		return []error{err}
	}
	return nil
}
func SetDisabledMetric(name string) {
	disabledMetricsLock.Lock()
	defer disabledMetricsLock.Unlock()
	disabledMetrics[name] = struct{}{}
}