func()

in custom-metrics-stackdriver-adapter/pkg/adapter/coreprovider/provider.go [95:127]


func (p *CoreProvider) GetNodeMetrics(nodes ...*corev1.Node) ([]metrics.NodeMetrics, error) {
	resMetrics := make([]metrics.NodeMetrics, 0, len(nodes))
	if len(nodes) == 0 {
		return resMetrics, nil
	}

	nodeNames := []string{}
	for _, node := range nodes {
		nodeNames = append(nodeNames, node.Name)
	}

	timeInfos, resourceList, err := p.getNodeMetrics(nodeNames...)
	if err != nil {
		return []metrics.NodeMetrics{}, err
	}

	for i, node := range nodes {
		resMetrics = append(resMetrics, metrics.NodeMetrics{
			ObjectMeta: metav1.ObjectMeta{
				Name:              node.Name,
				Labels:            node.Labels,
				CreationTimestamp: metav1.Now(),
			},
			Usage: corev1.ResourceList{
				corev1.ResourceCPU:    resourceList[i][corev1.ResourceCPU],
				corev1.ResourceMemory: resourceList[i][corev1.ResourceMemory],
			},
			Timestamp: metav1.NewTime(timeInfos[i].Timestamp),
			Window:    metav1.Duration{Duration: timeInfos[i].Window},
		})
	}
	return resMetrics, nil
}