Merge pull request #13202 from jimmidyson/prometheus-with-no-cadvisor-port

Ensure container metrics are registered with prometheus even without cadvisor http server
This commit is contained in:
Quinton Hoole
2015-09-04 13:58:31 -07:00

View File

@@ -64,13 +64,10 @@ func New(port uint) (Interface, error) {
Manager: m,
}
// Export the HTTP endpoint if a port was specified.
if port > 0 {
err = cadvisorClient.exportHTTP(port)
if err != nil {
return nil, err
}
}
return cadvisorClient, nil
}
@@ -79,12 +76,16 @@ func (cc *cadvisorClient) Start() error {
}
func (cc *cadvisorClient) exportHTTP(port uint) error {
// Register the handlers regardless as this registers the prometheus
// collector properly.
mux := http.NewServeMux()
err := cadvisorHttp.RegisterHandlers(mux, cc, "", "", "", "", "/metrics")
if err != nil {
return err
}
// Only start the http server if port > 0
if port > 0 {
serv := &http.Server{
Addr: fmt.Sprintf(":%d", port),
Handler: mux,
@@ -103,6 +104,7 @@ func (cc *cadvisorClient) exportHTTP(port uint) error {
err = serv.ListenAndServe()
}
}()
}
return nil
}