33 lines
1006 B
Go

// Command gateway 是 host-metrics-collector 的 Collector Gateway 入口:
// 在 4318 端口接收 Agent 的 protobuf 上报,并暴露指标/日志查询 REST API。
package main
import (
"log"
"net/http"
"time"
"git.opencomputing.cn/yumoqing/host-metrics-collector/internal/config"
"git.opencomputing.cn/yumoqing/host-metrics-collector/internal/gateway"
)
func main() {
cfg := config.DefaultGatewayConfig()
store := gateway.NewStore(cfg.MaxMetricsPerHost, cfg.MaxLogsPerHost)
srv := gateway.NewServer(cfg, store)
httpSrv := &http.Server{
Addr: cfg.Addr,
Handler: srv.Handler(),
ReadHeaderTimeout: 5 * time.Second,
ReadTimeout: 30 * time.Second,
WriteTimeout: 30 * time.Second,
IdleTimeout: 60 * time.Second,
}
log.Printf("[gateway] listening on %s (agent token set=%v)", cfg.Addr, cfg.AgentToken != "")
if err := httpSrv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
log.Fatalf("[gateway] listen: %v", err)
}
}