From 76825fef8fdfd65b20f0077fe7ea3f6f5770e892 Mon Sep 17 00:00:00 2001 From: Joshua Winters Date: Wed, 21 Feb 2018 11:23:50 -0500 Subject: [PATCH] Make logger and prometheus optional in server config Signed-off-by: Josh Winters Co-authored-by: Mark Huang --- server/server.go | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/server/server.go b/server/server.go index 27d93064..21287b65 100644 --- a/server/server.go +++ b/server/server.go @@ -236,23 +236,31 @@ func newServer(ctx context.Context, c Config, rotationStrategy rotationStrategy) } } - requestCounter := prometheus.NewCounterVec(prometheus.CounterOpts{ - Name: "http_requests_total", - Help: "Count of all HTTP requests.", - }, []string{"handler", "code", "method"}) - - err = c.PrometheusRegistry.Register(requestCounter) - if err != nil { - return nil, fmt.Errorf("server: Failed to register Prometheus HTTP metrics: %v", err) - } - instrumentHandlerCounter := func(handlerName string, handler http.Handler) http.HandlerFunc { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - m := httpsnoop.CaptureMetrics(handler, w, r) - requestCounter.With(prometheus.Labels{"handler": handlerName, "code": strconv.Itoa(m.Code), "method": r.Method}).Inc() + handler.ServeHTTP(w, r) }) } + if c.PrometheusRegistry != nil { + requestCounter := prometheus.NewCounterVec(prometheus.CounterOpts{ + Name: "http_requests_total", + Help: "Count of all HTTP requests.", + }, []string{"handler", "code", "method"}) + + err = c.PrometheusRegistry.Register(requestCounter) + if err != nil { + return nil, fmt.Errorf("server: Failed to register Prometheus HTTP metrics: %v", err) + } + + instrumentHandlerCounter = func(handlerName string, handler http.Handler) http.HandlerFunc { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + m := httpsnoop.CaptureMetrics(handler, w, r) + requestCounter.With(prometheus.Labels{"handler": handlerName, "code": strconv.Itoa(m.Code), "method": r.Method}).Inc() + }) + } + } + r := mux.NewRouter() handle := func(p string, h http.Handler) { r.Handle(path.Join(issuerURL.Path, p), instrumentHandlerCounter(p, h))