[#1602] config: Enable metrics and profiler services with a flag

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
Evgenii Stratonikov 2022-07-13 12:17:37 +03:00 committed by fyrchik
parent 12dc5c3395
commit ac46d1a11f
16 changed files with 53 additions and 15 deletions

View file

@ -62,7 +62,7 @@ func main() {
intErr := make(chan error) // internal inner ring errors
httpServers := initHTTPServers(cfg)
httpServers := initHTTPServers(cfg, log)
innerRing, err := innerring.New(ctx, log, cfg, intErr)
exitErr(err)
@ -107,23 +107,26 @@ func main() {
log.Info("application stopped")
}
func initHTTPServers(cfg *viper.Viper) []*httputil.Server {
func initHTTPServers(cfg *viper.Viper, log *logger.Logger) []*httputil.Server {
items := []struct {
msg string
cfgPrefix string
handler func() http.Handler
}{
{"profiler", httputil.Handler},
{"metrics", promhttp.Handler},
{"pprof", "profiler", httputil.Handler},
{"prometheus", "metrics", promhttp.Handler},
}
httpServers := make([]*httputil.Server, 0, len(items))
for _, item := range items {
addr := cfg.GetString(item.cfgPrefix + ".address")
if addr == "" {
if !cfg.GetBool(item.cfgPrefix + ".enabled") {
log.Info(item.msg + " is disabled, skip")
continue
}
addr := cfg.GetString(item.cfgPrefix + ".address")
var prm httputil.Prm
prm.Address = addr