From f4f1cadbda7bf402b3869feb92854597825c948a Mon Sep 17 00:00:00 2001 From: impact-maker Date: Sat, 7 Jan 2023 16:16:37 +0530 Subject: [PATCH] Added sample model class to retrieve timestamp in custom metrics provider.go class --- pkg/custom-provider/provider.go | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/pkg/custom-provider/provider.go b/pkg/custom-provider/provider.go index 8061d9ca..17c0067f 100644 --- a/pkg/custom-provider/provider.go +++ b/pkg/custom-provider/provider.go @@ -80,7 +80,7 @@ func NewPrometheusProvider(mapper apimeta.RESTMapper, kubeClient dynamic.Interfa }, lister } -func (p *prometheusProvider) metricFor(value pmodel.SampleValue, name types.NamespacedName, info provider.CustomMetricInfo, metricSelector labels.Selector) (*custom_metrics.MetricValue, error) { +func (p *prometheusProvider) metricFor(sample *model.Sample, value pmodel.SampleValue, name types.NamespacedName, info provider.CustomMetricInfo, metricSelector labels.Selector) (*custom_metrics.MetricValue, error) { ref, err := helpers.ReferenceFor(p.mapper, name, info) if err != nil { return nil, err @@ -99,18 +99,8 @@ func (p *prometheusProvider) metricFor(value pmodel.SampleValue, name types.Name Name: info.Metric, }, - // TODO(directxman12): use the right timestamp - - - /*Making the changes in the timestamp as per issue - number #545*/ - - // Previously set timestamp - //Timestamp: metav1.Time{Time: time.Now()}, - - // Newly set timestamp Timestamp: metav1.Time{ - Time: value.Timestamp.Time(), + Time: sample.Timestamp.Time(), }, Value: *q, } @@ -126,7 +116,7 @@ func (p *prometheusProvider) metricFor(value pmodel.SampleValue, name types.Name return metric, nil } -func (p *prometheusProvider) metricsFor(valueSet pmodel.Vector, namespace string, names []string, info provider.CustomMetricInfo, metricSelector labels.Selector) (*custom_metrics.MetricValueList, error) { +func (p *prometheusProvider) metricsFor(sample *model.Sample, valueSet pmodel.Vector, namespace string, names []string, info provider.CustomMetricInfo, metricSelector labels.Selector) (*custom_metrics.MetricValueList, error) { values, found := p.MatchValuesToNames(info, valueSet) if !found { return nil, provider.NewMetricNotFoundError(info.GroupResource, info.Metric) @@ -138,7 +128,7 @@ func (p *prometheusProvider) metricsFor(valueSet pmodel.Vector, namespace string continue } - value, err := p.metricFor(values[name], types.NamespacedName{Namespace: namespace, Name: name}, info, metricSelector) + value, err := p.metricFor(sample, values[name], types.NamespacedName{Namespace: namespace, Name: name}, info, metricSelector) if err != nil { return nil, err } @@ -219,7 +209,7 @@ func (p *prometheusProvider) GetMetricBySelector(ctx context.Context, namespace } // return the resulting metrics - return p.metricsFor(queryResults, namespace, resourceNames, info, metricSelector) + return p.metricsFor(sample, queryResults, namespace, resourceNames, info, metricSelector) } type cachingMetricsLister struct {