mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 05:27:21 +00:00
Merge pull request #54921 from weiwei04/fix_reflector_last_resource_version
Automatic merge from submit-queue (batch tested with PRs 54800, 53898, 54812, 54921, 53558). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. rename metric reflector_xx_last_resource_version **What this PR does / why we need it**: mv reflector name from metric name to metric label before: ``` reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go:73_8664_last_resource_version{instance="104.154.20.21:443",job="kubernetes-apiservers"} ``` after ``` reflector_last_resource_version{instance="10.0.2.15:6443",job="kubernetes-apiservers",name="k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_8664"} ``` **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: Fixes #52121 **Special notes for your reviewer**: None **Release note**: ```release-note NONE ```
This commit is contained in:
commit
b7968e0907
@ -68,6 +68,12 @@ var (
|
|||||||
Name: "items_per_watch",
|
Name: "items_per_watch",
|
||||||
Help: "How many items an API watch returns to the reflectors",
|
Help: "How many items an API watch returns to the reflectors",
|
||||||
}, []string{"name"})
|
}, []string{"name"})
|
||||||
|
|
||||||
|
lastResourceVersion = prometheus.NewGaugeVec(prometheus.GaugeOpts{
|
||||||
|
Subsystem: reflectorSubsystem,
|
||||||
|
Name: "last_resource_version",
|
||||||
|
Help: "Last resource version seen for the reflectors",
|
||||||
|
}, []string{"name"})
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -78,6 +84,7 @@ func init() {
|
|||||||
prometheus.MustRegister(shortWatchesTotal)
|
prometheus.MustRegister(shortWatchesTotal)
|
||||||
prometheus.MustRegister(watchDuration)
|
prometheus.MustRegister(watchDuration)
|
||||||
prometheus.MustRegister(itemsPerWatch)
|
prometheus.MustRegister(itemsPerWatch)
|
||||||
|
prometheus.MustRegister(lastResourceVersion)
|
||||||
|
|
||||||
cache.SetReflectorMetricsProvider(prometheusMetricsProvider{})
|
cache.SetReflectorMetricsProvider(prometheusMetricsProvider{})
|
||||||
}
|
}
|
||||||
@ -117,11 +124,5 @@ func (prometheusMetricsProvider) NewItemsInWatchMetric(name string) cache.Summar
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (prometheusMetricsProvider) NewLastResourceVersionMetric(name string) cache.GaugeMetric {
|
func (prometheusMetricsProvider) NewLastResourceVersionMetric(name string) cache.GaugeMetric {
|
||||||
rv := prometheus.NewGauge(prometheus.GaugeOpts{
|
return lastResourceVersion.WithLabelValues(name)
|
||||||
Subsystem: name,
|
|
||||||
Name: "last_resource_version",
|
|
||||||
Help: "last resource version seen for the reflectors",
|
|
||||||
})
|
|
||||||
prometheus.MustRegister(rv)
|
|
||||||
return rv
|
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,7 @@ func NewNamedReflector(name string, lw ListerWatcher, expectedType interface{},
|
|||||||
r := &Reflector{
|
r := &Reflector{
|
||||||
name: name,
|
name: name,
|
||||||
// we need this to be unique per process (some names are still the same)but obvious who it belongs to
|
// we need this to be unique per process (some names are still the same)but obvious who it belongs to
|
||||||
metrics: newReflectorMetrics(makeValidPromethusMetricName(fmt.Sprintf("reflector_"+name+"_%d", reflectorSuffix))),
|
metrics: newReflectorMetrics(makeValidPromethusMetricLabel(fmt.Sprintf("reflector_"+name+"_%d", reflectorSuffix))),
|
||||||
listerWatcher: lw,
|
listerWatcher: lw,
|
||||||
store: store,
|
store: store,
|
||||||
expectedType: reflect.TypeOf(expectedType),
|
expectedType: reflect.TypeOf(expectedType),
|
||||||
@ -120,9 +120,9 @@ func NewNamedReflector(name string, lw ListerWatcher, expectedType interface{},
|
|||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeValidPromethusMetricName(in string) string {
|
func makeValidPromethusMetricLabel(in string) string {
|
||||||
// this isn't perfect, but it removes our common characters
|
// this isn't perfect, but it removes our common characters
|
||||||
return strings.NewReplacer("/", "_", ".", "_", "-", "_").Replace(in)
|
return strings.NewReplacer("/", "_", ".", "_", "-", "_", ":", "_").Replace(in)
|
||||||
}
|
}
|
||||||
|
|
||||||
// internalPackages are packages that ignored when creating a default reflector name. These packages are in the common
|
// internalPackages are packages that ignored when creating a default reflector name. These packages are in the common
|
||||||
|
Loading…
Reference in New Issue
Block a user