Files
houston/main_client.go
2025-07-01 18:51:40 +09:00

46 lines
851 B
Go

//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()
}