func nodeAvailabilities()

in pkg/scheduler/metrics.go [93:113]


func nodeAvailabilities(l []*v1.Node) (*mapCounter, int) {
	availableNodes := 0
	mc := newMapCounter()
	for _, node := range l {
		ready, schedulable, doneWarming := nodeAvailability(node)
		available := ready && schedulable && doneWarming
		labels := map[string]string{
			"nodepool":     getLabel(node.Labels, "cloud.google.com/gke-nodepool"),
			"zone":         getLabel(node.Labels, "topology.kubernetes.io/zone"),
			"ready":        boolToStr(ready),
			"schedulable":  boolToStr(schedulable),
			"done_warming": boolToStr(doneWarming),
			"available":    boolToStr(available),
		}
		if available {
			availableNodes++
		}
		mc.Increment(labels, 1)
	}
	return mc, availableNodes
}