diff --git a/embed/etcd.go b/embed/etcd.go index fee6934f7fa3..d50a9f1e040c 100644 --- a/embed/etcd.go +++ b/embed/etcd.go @@ -426,12 +426,16 @@ func (e *Etcd) serve() (err error) { } if len(e.cfg.ListenMetricsUrls) > 0 { - // TODO: maybe etcdhttp.MetricsPath or get the path from the user-provided URL + // serve health, metrics information together metricsMux := http.NewServeMux() - metrics.RegisterPrometheus(metricsMux) + metricsMux.Handle(metrics.PathMetrics, metrics.Handler(e.Server)) for _, murl := range e.cfg.ListenMetricsUrls { - ml, err := transport.NewListener(murl.Host, murl.Scheme, &e.cfg.ClientTLSInfo) + tlsInfo := &e.cfg.ClientTLSInfo + if murl.Scheme == "http" { + tlsInfo = nil + } + ml, err := transport.NewListener(murl.Host, murl.Scheme, tlsInfo) if err != nil { return err }