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
}