func()

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
}