Removing RestMapper, cleaning up notification hanlder

This commit is contained in:
John Delivuk 2019-03-08 13:29:36 -05:00
parent 0bb762b367
commit 3f7f249cb8
No known key found for this signature in database
GPG key ID: 8597474A0655625E
4 changed files with 8 additions and 19 deletions

View file

@ -191,7 +191,7 @@ func (cmd *PrometheusAdapter) makeExternalProvider(promClient prom.Client, stopC
}
// construct the provider and start it
emProvider, runner := extprov.NewExternalPrometheusProvider(mapper, promClient, converters, cmd.MetricsRelistInterval)
emProvider, runner := extprov.NewExternalPrometheusProvider(promClient, converters, cmd.MetricsRelistInterval)
runner.RunUntil(stopCh)
return emProvider, nil

View file

@ -18,7 +18,6 @@ import (
"github.com/golang/glog"
"github.com/kubernetes-incubator/custom-metrics-apiserver/pkg/provider"
apimeta "k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/labels"
prom "github.com/directxman12/k8s-prometheus-adapter/pkg/client"
@ -41,19 +40,13 @@ type externalSeriesRegistry struct {
metrics []provider.ExternalMetricInfo
// rawMetrics is a lookup from a metric to SeriesConverter for the sake of generating queries
rawMetrics map[string]SeriesConverter
mapper apimeta.RESTMapper
metricLister MetricListerWithNotification
}
// NewExternalSeriesRegistry creates an ExternalSeriesRegistry driven by the data from the provided MetricLister.
func NewExternalSeriesRegistry(lister MetricListerWithNotification, mapper apimeta.RESTMapper) ExternalSeriesRegistry {
func NewExternalSeriesRegistry(lister MetricListerWithNotification) ExternalSeriesRegistry {
var registry = externalSeriesRegistry{
mapper: mapper,
metricLister: lister,
metrics: make([]provider.ExternalMetricInfo, 0),
rawMetrics: map[string]SeriesConverter{},
metrics: make([]provider.ExternalMetricInfo, 0),
rawMetrics: map[string]SeriesConverter{},
}
lister.AddNotificationReceiver(registry.filterAndStoreMetrics)

View file

@ -26,7 +26,6 @@ import (
"github.com/kubernetes-incubator/custom-metrics-apiserver/pkg/provider"
apierr "k8s.io/apimachinery/pkg/api/errors"
apimeta "k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/metrics/pkg/apis/external_metrics"
@ -79,11 +78,11 @@ func (p *externalPrometheusProvider) selectGroupResource(namespace string) schem
}
// NewExternalPrometheusProvider creates an ExternalMetricsProvider capable of responding to Kubernetes requests for external metric data
func NewExternalPrometheusProvider(mapper apimeta.RESTMapper, promClient prom.Client, converters []SeriesConverter, updateInterval time.Duration) (provider.ExternalMetricsProvider, Runnable) {
func NewExternalPrometheusProvider(promClient prom.Client, converters []SeriesConverter, updateInterval time.Duration) (provider.ExternalMetricsProvider, Runnable) {
metricConverter := NewMetricConverter()
basicLister := NewBasicMetricLister(promClient, converters, updateInterval)
periodicLister, _ := NewPeriodicMetricLister(basicLister, updateInterval)
seriesRegistry := NewExternalSeriesRegistry(periodicLister, mapper)
seriesRegistry := NewExternalSeriesRegistry(periodicLister)
return &externalPrometheusProvider{
promClient: promClient,
seriesRegistry: seriesRegistry,

View file

@ -63,7 +63,6 @@ type seriesConverter struct {
queryBuilder QueryBuilder
seriesFilterer SeriesFilterer
metricNamer naming.MetricNamer
mapper apimeta.RESTMapper
}
// queryTemplateArgs are the arguments for the metrics query template.
@ -103,7 +102,6 @@ func (c *seriesConverter) createQueryPartsFromSelector(metricSelector labels.Sel
selectors := []queryPart{}
for i := 0; i < len(requirements); i++ {
fmt.Println("This is post Requirements", requirements[i].Key(), requirements[i].Values().List(), requirements[i].Operator())
selector := c.convertRequirement(requirements[i])
selectors = append(selectors, selector)
@ -246,7 +244,6 @@ func converterFromRule(rule config.DiscoveryRule, mapper apimeta.RESTMapper) (Se
return &seriesConverter{
seriesQuery: prom.Selector(rule.SeriesQuery),
mapper: mapper,
resourceConverter: resourceConverter,
queryBuilder: queryBuilder,
seriesFilterer: seriesFilterer,
@ -255,13 +252,13 @@ func converterFromRule(rule config.DiscoveryRule, mapper apimeta.RESTMapper) (Se
}
func (c *seriesConverter) buildNamespaceQueryPartForExternalSeries(namespace string) (queryPart, error) {
namespaceLbl, _ := c.metricNamer.LabelForResource(naming.NsGroupResource)
namespaceLbl, err := c.resourceConverter.LabelForResource(naming.NsGroupResource)
return queryPart{
labelName: string(namespaceLbl),
values: []string{namespace},
operator: selection.Equals,
}, nil
}, err
}
func (c *seriesConverter) QueryForExternalSeries(namespace string, series string, metricSelector labels.Selector) (prom.Selector, error) {