rename metric reflector_xx_last_resource_version to reflector_last_resource_version{name="xx"}

This commit is contained in:
Wei Wei 2017-11-01 16:34:18 +08:00
parent 7f9f847ce9
commit bca495e229
2 changed files with 11 additions and 10 deletions

View File

@ -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
} }

View File

@ -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