From 6c0dd597011db6bcc27bce455041728413db0844 Mon Sep 17 00:00:00 2001 From: Devin Carr Date: Fri, 30 Jun 2023 09:38:26 -0700 Subject: [PATCH] TUN-7549: Add metrics route to management service --- management/service.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/management/service.go b/management/service.go index 2307b641..94925abe 100644 --- a/management/service.go +++ b/management/service.go @@ -12,6 +12,7 @@ import ( "github.com/go-chi/chi/v5" "github.com/go-chi/cors" "github.com/google/uuid" + "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/rs/zerolog" "nhooyr.io/websocket" ) @@ -38,6 +39,9 @@ type ManagementService struct { clientID uuid.UUID label string + // Additional Handlers + metricsHandler http.Handler + log *zerolog.Logger router chi.Router @@ -56,18 +60,20 @@ func New(managementHostname string, logger LoggerListener, ) *ManagementService { s := &ManagementService{ - Hostname: managementHostname, - log: log, - logger: logger, - serviceIP: serviceIP, - clientID: clientID, - label: label, + Hostname: managementHostname, + log: log, + logger: logger, + serviceIP: serviceIP, + clientID: clientID, + label: label, + metricsHandler: promhttp.Handler(), } r := chi.NewRouter() r.Use(ValidateAccessTokenQueryMiddleware) r.Get("/ping", ping) r.Head("/ping", ping) r.Get("/logs", s.logs) + r.Get("/metrics", s.metricsHandler.ServeHTTP) r.Route("/host_details", func(r chi.Router) { // CORS middleware required to allow dash to access management.argotunnel.com requests r.Use(cors.Handler(cors.Options{