Fix scheduler profiling

This commit is contained in:
Wojciech Tyczynski 2015-04-09 13:55:02 +02:00
parent 6ef0f8c3c5
commit 51a2d2db45

View File

@ -69,7 +69,7 @@ func (s *SchedulerServer) AddFlags(fs *pflag.FlagSet) {
client.BindClientConfigFlags(fs, &s.ClientConfig) client.BindClientConfigFlags(fs, &s.ClientConfig)
fs.StringVar(&s.AlgorithmProvider, "algorithm_provider", s.AlgorithmProvider, "The scheduling algorithm provider to use") fs.StringVar(&s.AlgorithmProvider, "algorithm_provider", s.AlgorithmProvider, "The scheduling algorithm provider to use")
fs.StringVar(&s.PolicyConfigFile, "policy_config_file", s.PolicyConfigFile, "File with scheduler policy configuration") fs.StringVar(&s.PolicyConfigFile, "policy_config_file", s.PolicyConfigFile, "File with scheduler policy configuration")
fs.BoolVar(&s.EnableProfiling, "profiling", false, "Enable profiling via web interface host:port/debug/pprof/") fs.BoolVar(&s.EnableProfiling, "profiling", true, "Enable profiling via web interface host:port/debug/pprof/")
} }
// Run runs the specified SchedulerServer. This should never exit. // Run runs the specified SchedulerServer. This should never exit.
@ -80,13 +80,19 @@ func (s *SchedulerServer) Run(_ []string) error {
} }
go func() { go func() {
mux := http.NewServeMux()
if s.EnableProfiling { if s.EnableProfiling {
http.HandleFunc("/debug/pprof/", pprof.Index) mux.HandleFunc("/debug/pprof/", pprof.Index)
http.HandleFunc("/debug/pprof/profile", pprof.Profile) mux.HandleFunc("/debug/pprof/profile", pprof.Profile)
http.HandleFunc("/debug/pprof/symbol", pprof.Symbol) mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
} }
http.Handle("/metrics", prometheus.Handler()) mux.Handle("/metrics", prometheus.Handler())
http.ListenAndServe(net.JoinHostPort(s.Address.String(), strconv.Itoa(s.Port)), nil)
server := &http.Server{
Addr: net.JoinHostPort(s.Address.String(), strconv.Itoa(s.Port)),
Handler: mux,
}
glog.Fatal(server.ListenAndServe())
}() }()
configFactory := factory.NewConfigFactory(kubeClient) configFactory := factory.NewConfigFactory(kubeClient)