in clusterloader2/pkg/measurement/common/scheduler_latency.go [91:139]
func (s *schedulerLatencyMeasurement) Execute(config *measurement.Config) ([]measurement.Summary, error) {
provider := config.ClusterFramework.GetClusterConfig().Provider
SSHToMasterSupported := provider.Features().SupportSSHToMaster
c := config.ClusterFramework.GetClientSets().GetClient()
nodes, err := c.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{})
if err != nil {
return nil, err
}
var masterRegistered = false
for _, node := range nodes.Items {
if util.LegacyIsMasterNode(&node) {
masterRegistered = true
}
}
if provider.Features().SchedulerInsecurePortDisabled || (!SSHToMasterSupported && !masterRegistered) {
klog.Warningf("unable to fetch scheduler metrics for provider: %s", provider.Name())
return nil, nil
}
action, err := util.GetString(config.Params, "action")
if err != nil {
return nil, err
}
masterIP, err := util.GetStringOrDefault(config.Params, "masterIP", config.ClusterFramework.GetClusterConfig().GetMasterIP())
if err != nil {
return nil, err
}
masterName, err := util.GetStringOrDefault(config.Params, "masterName", config.ClusterFramework.GetClusterConfig().MasterName)
if err != nil {
return nil, err
}
switch action {
case "reset":
klog.V(2).Infof("%s: start collecting latency initial metrics in scheduler...", s)
return nil, s.getSchedulingInitialLatency(config.ClusterFramework.GetClientSets().GetClient(), masterIP, provider, masterName, masterRegistered)
case "start":
klog.V(2).Infof("%s: start collecting latency metrics in scheduler...", s)
return nil, s.getSchedulingInitialLatency(config.ClusterFramework.GetClientSets().GetClient(), masterIP, provider, masterName, masterRegistered)
case "gather":
klog.V(2).Infof("%s: gathering latency metrics in scheduler...", s)
return s.getSchedulingLatency(config.ClusterFramework.GetClientSets().GetClient(), masterIP, provider, masterName, masterRegistered)
default:
return nil, fmt.Errorf("unknown action %v", action)
}
}