in custom-metrics-stackdriver-adapter/pkg/adapter/coreprovider/provider.go [54:92]
func (p *CoreProvider) GetPodMetrics(pods ...*metav1.PartialObjectMetadata) ([]metrics.PodMetrics, error) {
resMetrics := make([]metrics.PodMetrics, 0, len(pods))
if len(pods) == 0 {
return resMetrics, nil
}
podNames := []apitypes.NamespacedName{}
for _, pod := range pods {
podNames = append(podNames, apitypes.NamespacedName{
Namespace: pod.Namespace,
Name: pod.Name,
})
}
timeInfos, containerMetrics, err := p.getPodMetrics(podNames...)
if err != nil {
return []metrics.PodMetrics{}, err
}
for i, pod := range pods {
podMetric := metrics.PodMetrics{
ObjectMeta: metav1.ObjectMeta{
Name: pod.Name,
Namespace: pod.Namespace,
Labels: pod.Labels,
CreationTimestamp: metav1.Now(),
},
Timestamp: metav1.NewTime(timeInfos[i].Timestamp),
Window: metav1.Duration{Duration: timeInfos[i].Window},
}
podMetric.Containers = containerMetrics[i]
resMetrics = append(resMetrics, podMetric)
}
return resMetrics, nil
}