Files
alfred-be/alfred/cmd/collector/app/server.go
2026-03-08 16:14:42 +05:30

45 lines
955 B
Go

package app
import (
"alfred/cmd/collector/app/dependency"
"alfred/config"
"alfred/internal/metrics"
"alfred/pkg/log"
"alfred/utils"
"fmt"
"github.com/gin-gonic/gin"
"go.elastic.co/apm/module/apmgin/v2"
"go.uber.org/zap"
"net/http"
"strconv"
)
type Server struct {
gin *gin.Engine
}
func NewServer(gin *gin.Engine) *Server {
dependency.InitCollectorDependencies()
return &Server{
gin: gin,
}
}
func (s *Server) Handler() {
s.gin.Use(apmgin.Middleware(s.gin))
metrics.AdminHandler(config.GetCollectorConfig().BaseConfig.MetricPort)
s.healthCheckHandler()
}
func (s *Server) healthCheckHandler() {
s.gin.GET(utils.PING, func(c *gin.Context) {
c.String(http.StatusOK, utils.PONG)
})
}
func (s *Server) Start() {
s.Handler()
log.Info("starting alfred collector server", zap.String("port", strconv.Itoa(config.GetCollectorConfig().BaseConfig.Port)))
s.gin.Run(fmt.Sprintf(":%v", config.GetCollectorConfig().BaseConfig.Port))
}