From 2bf83f6217a2b6237313108b82ad373cadeaedfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Mon, 4 Jul 2022 18:26:29 +0200 Subject: [PATCH] add metrics to config. --- internal/config/server.go | 19 +++++++++++++------ internal/http/manager.go | 10 ++++++---- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/internal/config/server.go b/internal/config/server.go index 62200dd7..1fe656a7 100644 --- a/internal/config/server.go +++ b/internal/config/server.go @@ -8,12 +8,13 @@ import ( ) type Server struct { - Cert string - Key string - Bind string - Static string - PProf bool - CORS []string + Cert string + Key string + Bind string + Static string + PProf bool + Metrics bool + CORS []string } func (Server) Init(cmd *cobra.Command) error { @@ -42,6 +43,11 @@ func (Server) Init(cmd *cobra.Command) error { return err } + cmd.PersistentFlags().Bool("server.metrics", true, "enable prometheus metrics available at /metrics") + if err := viper.BindPFlag("server.metrics", cmd.PersistentFlags().Lookup("server.metrics")); err != nil { + return err + } + cmd.PersistentFlags().StringSlice("server.cors", []string{"*"}, "list of allowed origins for CORS") if err := viper.BindPFlag("server.cors", cmd.PersistentFlags().Lookup("server.cors")); err != nil { return err @@ -56,6 +62,7 @@ func (s *Server) Set() { s.Bind = viper.GetString("server.bind") s.Static = viper.GetString("server.static") s.PProf = viper.GetBool("server.pprof") + s.Metrics = viper.GetBool("server.metrics") s.CORS = viper.GetStringSlice("server.cors") in, _ := utils.ArrayIn("*", s.CORS) diff --git a/internal/http/manager.go b/internal/http/manager.go index 5175f09e..63c767d2 100644 --- a/internal/http/manager.go +++ b/internal/http/manager.go @@ -47,10 +47,12 @@ func New(WebSocketManager types.WebSocketManager, ApiManager types.ApiManager, c return err }) - router.Get("/metrics", func(w http.ResponseWriter, r *http.Request) error { - promhttp.Handler().ServeHTTP(w, r) - return nil - }) + if config.Metrics { + router.Get("/metrics", func(w http.ResponseWriter, r *http.Request) error { + promhttp.Handler().ServeHTTP(w, r) + return nil + }) + } if config.Static != "" { fs := http.FileServer(http.Dir(config.Static))