//go:build client package main import ( "context" "time" "repositories.action2quare.com/ayo/gocommon/flagx" "repositories.action2quare.com/ayo/gocommon/logger" "repositories.action2quare.com/ayo/houston/client" "net/http" ) func main() { flagx.Parse() hc, err := client.NewClient(true) if err != nil { panic(err) } http.Handle("/metrics", hc.MetricHandler()) server := &http.Server{Addr: ":9200", Handler: nil} go func() { defer func() { logger.Println("metric server shutdown") r := recover() if r != nil { logger.Println(r) } }() logger.Println("metric server start") if err := server.ListenAndServe(); err != nil { logger.Println("metric server cannot listen :", err) } }() hc.Start() ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) server.Shutdown(ctx) cancel() }