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 // 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) runner.RunUntil(stopCh)
return emProvider, nil return emProvider, nil

View file

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

View file

@ -26,7 +26,6 @@ import (
"github.com/kubernetes-incubator/custom-metrics-apiserver/pkg/provider" "github.com/kubernetes-incubator/custom-metrics-apiserver/pkg/provider"
apierr "k8s.io/apimachinery/pkg/api/errors" apierr "k8s.io/apimachinery/pkg/api/errors"
apimeta "k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/labels"
"k8s.io/metrics/pkg/apis/external_metrics" "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 // 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() metricConverter := NewMetricConverter()
basicLister := NewBasicMetricLister(promClient, converters, updateInterval) basicLister := NewBasicMetricLister(promClient, converters, updateInterval)
periodicLister, _ := NewPeriodicMetricLister(basicLister, updateInterval) periodicLister, _ := NewPeriodicMetricLister(basicLister, updateInterval)
seriesRegistry := NewExternalSeriesRegistry(periodicLister, mapper) seriesRegistry := NewExternalSeriesRegistry(periodicLister)
return &externalPrometheusProvider{ return &externalPrometheusProvider{
promClient: promClient, promClient: promClient,
seriesRegistry: seriesRegistry, seriesRegistry: seriesRegistry,

View file

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