func()

in custom-metrics-stackdriver-adapter/pkg/adapter/translator/response_translator.go [186:214]


func (t *Translator) metricFor(value resource.Quantity, groupResource schema.GroupResource, namespace string, name string, metricName string, metricSelector labels.Selector) (*custom_metrics.MetricValue, error) {
	kind, err := t.mapper.KindFor(groupResource.WithVersion(""))
	if err != nil {
		return nil, err
	}
	var metricLabelSelector *metav1.LabelSelector
	if !metricSelector.Empty() {
		metricLabelSelector, err = metav1.ParseToLabelSelector(metricSelector.String())
		if err != nil {
			return nil, err
		}
	}

	return &custom_metrics.MetricValue{
		DescribedObject: custom_metrics.ObjectReference{
			APIVersion: groupResource.Group + "/" + runtime.APIVersionInternal,
			Kind:       kind.Kind,
			Name:       name,
			Namespace:  namespace,
		},
		Metric: custom_metrics.MetricIdentifier{
			Name:     metricName,
			Selector: metricLabelSelector,
		},
		// TODO(kawych): metric timestamp should be retrieved from Stackdriver response instead
		Timestamp: metav1.Time{t.clock.Now()},
		Value:     value,
	}, nil
}