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
}