From 5e169f5b0d4b99ddc14278cc42f928b8f9d94227 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E9=AA=8F?= Date: Wed, 22 Jul 2020 10:51:08 +0800 Subject: [PATCH] add endTime variable for promeClient.Series api MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 屈骏 --- pkg/custom-provider/provider.go | 3 ++- pkg/custom-provider/provider_test.go | 3 ++- pkg/external-provider/basic_metric_lister.go | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pkg/custom-provider/provider.go b/pkg/custom-provider/provider.go index 50fa42d8..8a60574d 100644 --- a/pkg/custom-provider/provider.go +++ b/pkg/custom-provider/provider.go @@ -218,6 +218,7 @@ type selectorSeries struct { func (l *cachingMetricsLister) updateMetrics() error { startTime := pmodel.Now().Add(-1 * l.maxAge) + endTime := pmodel.Now().Add(1 * l.maxAge) // don't do duplicate queries when it's just the matchers that change seriesCacheByQuery := make(map[prom.Selector][]prom.Series) @@ -236,7 +237,7 @@ func (l *cachingMetricsLister) updateMetrics() error { } selectors[sel] = struct{}{} go func() { - series, err := l.promClient.Series(context.TODO(), pmodel.Interval{startTime, 0}, sel) + series, err := l.promClient.Series(context.TODO(), pmodel.Interval{startTime, endTime}, sel) if err != nil { errs <- fmt.Errorf("unable to fetch metrics for query %q: %v", sel, err) return diff --git a/pkg/custom-provider/provider_test.go b/pkg/custom-provider/provider_test.go index 94fbbf86..330ffae6 100644 --- a/pkg/custom-provider/provider_test.go +++ b/pkg/custom-provider/provider_test.go @@ -87,7 +87,8 @@ var _ = Describe("Custom Metrics Provider", func() { By("setting the acceptible interval to now until the next update, with a bit of wiggle room") startTime := pmodel.Now().Add(-1*fakeProviderUpdateInterval - fakeProviderUpdateInterval/10) - fakeProm.AcceptableInterval = pmodel.Interval{Start: startTime, End: 0} + endTime := pmodel.Now().Add(1*fakeProviderUpdateInterval + fakeProviderUpdateInterval/10) + fakeProm.AcceptableInterval = pmodel.Interval{Start: startTime, End: endTime} By("updating the list of available metrics") // don't call RunUntil to avoid timing issue diff --git a/pkg/external-provider/basic_metric_lister.go b/pkg/external-provider/basic_metric_lister.go index 987041fc..70752522 100644 --- a/pkg/external-provider/basic_metric_lister.go +++ b/pkg/external-provider/basic_metric_lister.go @@ -84,6 +84,7 @@ func (l *basicMetricLister) ListAllMetrics() (MetricUpdateResult, error) { } startTime := pmodel.Now().Add(-1 * l.lookback) + endTime := pmodel.Now().Add(1 * l.lookback) // these can take a while on large clusters, so launch in parallel // and don't duplicate @@ -99,7 +100,7 @@ func (l *basicMetricLister) ListAllMetrics() (MetricUpdateResult, error) { } selectors[sel] = struct{}{} go func() { - series, err := l.promClient.Series(context.TODO(), pmodel.Interval{startTime, 0}, sel) + series, err := l.promClient.Series(context.TODO(), pmodel.Interval{startTime, endTime}, sel) if err != nil { errs <- fmt.Errorf("unable to fetch metrics for query %q: %v", sel, err) return