40 lines
996 B
Go
40 lines
996 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
"mengyamonitor-backend-server/internal/config"
|
|
"mengyamonitor-backend-server/internal/grpcrun"
|
|
"mengyamonitor-backend-server/internal/hub"
|
|
"mengyamonitor-backend-server/internal/ingest"
|
|
"mengyamonitor-backend-server/internal/router"
|
|
"mengyamonitor-backend-server/internal/store"
|
|
)
|
|
|
|
func main() {
|
|
cfg := config.Load()
|
|
st, err := store.Open(cfg.DBPath)
|
|
if err != nil {
|
|
log.Fatalf("store: %v", err)
|
|
}
|
|
defer st.Close()
|
|
|
|
metricsHub := hub.New()
|
|
ingestSrv := &ingest.Server{Store: st, Hub: metricsHub}
|
|
|
|
grpcAddr := fmt.Sprintf("%s:%s", cfg.Host, cfg.GRPCPort)
|
|
go func() {
|
|
log.Printf("gRPC AgentIngest listening on %s", grpcAddr)
|
|
if err := grpcrun.Serve(grpcAddr, ingestSrv); err != nil {
|
|
log.Fatalf("grpc: %v", err)
|
|
}
|
|
}()
|
|
|
|
httpAddr := fmt.Sprintf("%s:%s", cfg.Host, cfg.Port)
|
|
log.Printf("central HTTP/WS on http://%s", httpAddr)
|
|
if err := router.New(cfg, st, metricsHub).Run(httpAddr); err != nil {
|
|
log.Fatalf("http: %v", err)
|
|
}
|
|
}
|