mirror of
https://github.com/kubernetes-sigs/prometheus-adapter.git
synced 2026-04-06 01:38:10 +00:00
Removing RestMapper, cleaning up notification hanlder
This commit is contained in:
parent
0bb762b367
commit
3f7f249cb8
4 changed files with 8 additions and 19 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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{},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue