refactor: change system logging in hub

This commit is contained in:
lorsan
2026-05-04 08:52:13 +03:00
parent 4dfbe1ad7f
commit 8d9e748d7a
3 changed files with 14 additions and 18 deletions
+1 -1
View File
@@ -27,6 +27,7 @@ func NewApp() *App {
cfg, err := config.NewConfig() cfg, err := config.NewConfig()
if err != nil { if err != nil {
standartlog.Fatalf("failed get config: %v", err) standartlog.Fatalf("failed get config: %v", err)
return nil
} }
logger := log.NewLogger(cfg) logger := log.NewLogger(cfg)
@@ -80,7 +81,6 @@ func (a *App) Run() {
func (a *App) hubServe(hubService *hub_service.HubService) error { func (a *App) hubServe(hubService *hub_service.HubService) error {
address := fmt.Sprintf("0.0.0.0:%v", a.cfg.Port) address := fmt.Sprintf("0.0.0.0:%v", a.cfg.Port)
a.log.Info().Str("address", address).Msg("starting gRPC server")
server := grpcserv.NewHubHandler(hubService, a.log) server := grpcserv.NewHubHandler(hubService, a.log)
+3 -3
View File
@@ -38,13 +38,13 @@ func (h *HubHandler) Ping(ctx context.Context, _ *emptypb.Empty) (*pb.PongRespon
} }
func (h *HubHandler) RegisterAgent(ctx context.Context, request *pb.RegisterAgentRequest) (*pb.RegisterAgentResponse, error) { func (h *HubHandler) RegisterAgent(ctx context.Context, request *pb.RegisterAgentRequest) (*pb.RegisterAgentResponse, error) {
h.log.Debug().Str("agentId", request.AgentId).Str("agentName", request.AgentName).Msg("register agent request received") h.log.Debug().Str("agentID", request.AgentId).Str("agentName", request.AgentName).Msg("register agent request received")
data := domain.ToDomainAgentRequest(request) data := domain.ToDomainAgentRequest(request)
resp, err := h.hub.RegisterAgent(ctx, data) resp, err := h.hub.RegisterAgent(ctx, data)
if err != nil { if err != nil {
h.log.Error().Err(err).Str("agentId", request.AgentId).Msg("register agent request failed") h.log.Error().Err(err).Str("agentID", request.AgentId).Msg("register agent request failed")
return domain.ToGRPCAgentResponse(resp), err return domain.ToGRPCAgentResponse(resp), err
} }
h.log.Debug().Str("agentId", resp.AgentID).Msg("register agent request completed") h.log.Info().Str("agentID", resp.AgentID).Msg("register agent request completed")
return domain.ToGRPCAgentResponse(resp), nil return domain.ToGRPCAgentResponse(resp), nil
} }
+10 -14
View File
@@ -12,6 +12,8 @@ import (
"github.com/rs/zerolog" "github.com/rs/zerolog"
) )
const HEARTBEAT = 5
type Store interface { type Store interface {
NewAgent(ctx context.Context, agent domainHub.CreateAgentModel) error NewAgent(ctx context.Context, agent domainHub.CreateAgentModel) error
GetAgentByAgentID(ctx context.Context, AgentID string) (domainHub.AgentModel, error) GetAgentByAgentID(ctx context.Context, AgentID string) (domainHub.AgentModel, error)
@@ -28,32 +30,29 @@ func NewHubService(store Store, logger zerolog.Logger) *HubService {
} }
func (h *HubService) RegisterAgent(ctx context.Context, data domain.RegisterAgentRequest) (domain.RegisterAgentResponse, error) { func (h *HubService) RegisterAgent(ctx context.Context, data domain.RegisterAgentRequest) (domain.RegisterAgentResponse, error) {
h.log.Debug().Str("agentId", data.AgentId).Str("agentName", data.AgentName).Msg("started registering agent") h.log.Debug().Str("agentID", data.AgentId).Str("agentName", data.AgentName).Msg("started registering agent")
agent, err := h.store.GetAgentByAgentID(ctx, data.AgentId) agent, err := h.store.GetAgentByAgentID(ctx, data.AgentId)
if err != nil && !errors.Is(err, sql.ErrNoRows) { if err != nil && !errors.Is(err, sql.ErrNoRows) {
h.log.Error().Err(err).Str("agentId", data.AgentId).Msg("failed to get agent from database")
return domain.RegisterAgentResponse{}, fmt.Errorf("failed select agent to db: %w", err) return domain.RegisterAgentResponse{}, fmt.Errorf("failed select agent to db: %w", err)
} }
if data.AgentId != "" && !errors.Is(err, sql.ErrNoRows) { if data.AgentId != "" && !errors.Is(err, sql.ErrNoRows) {
h.log.Debug().Str("agentId", agent.AgentID).Str("agentName", data.AgentName).Msg("agent exists, updating") h.log.Debug().Str("agentID", agent.AgentID).Str("agentName", data.AgentName).Msg("agent exists, updating")
data.AgentId = agent.AgentID data.AgentId = agent.AgentID
agentStore := toCreateAgentModel(data) agentStore := toCreateAgentModel(data)
if err := h.store.UpdateAgentByID(ctx, agent.ID, agentStore); err != nil { if err := h.store.UpdateAgentByID(ctx, agent.ID, agentStore); err != nil {
h.log.Error().Err(err).Str("agentId", agent.AgentID).Msg("failed to update agent in database") return domain.RegisterAgentResponse{}, fmt.Errorf("update agent in db: %w", err)
return domain.RegisterAgentResponse{}, err
} }
h.log.Info().Str("agentId", agent.AgentID).Msg("agent updated successfully") h.log.Debug().Str("agentId", agent.AgentID).Msg("agent updated successfully")
return domain.RegisterAgentResponse{AgentID: agent.AgentID, Heartbeat: 5}, nil return domain.RegisterAgentResponse{AgentID: agent.AgentID, Heartbeat: HEARTBEAT}, nil
} }
AgentID, err := hasher.MakeID(data.Host, data.AgentName) AgentID, err := hasher.MakeID(data.Host, data.AgentName)
if err != nil { if err != nil {
h.log.Error().Err(err).Str("agentName", data.AgentName).Str("hostname", data.Host.Hostname).Msg("failed to generate agent id") return domain.RegisterAgentResponse{}, fmt.Errorf("generate agent ID: %w", err)
return domain.RegisterAgentResponse{}, err
} }
data.AgentId = AgentID data.AgentId = AgentID
@@ -61,10 +60,7 @@ func (h *HubService) RegisterAgent(ctx context.Context, data domain.RegisterAgen
agentStore := toCreateAgentModel(data) agentStore := toCreateAgentModel(data)
if err := h.store.NewAgent(ctx, agentStore); err != nil { if err := h.store.NewAgent(ctx, agentStore); err != nil {
h.log.Error().Err(err).Str("agentId", AgentID).Str("agentName", data.AgentName).Msg("failed to create new agent in database") return domain.RegisterAgentResponse{}, fmt.Errorf("insert new agent: %w", err)
return domain.RegisterAgentResponse{}, err
} }
return domain.RegisterAgentResponse{AgentID: AgentID, Heartbeat: HEARTBEAT}, nil
h.log.Info().Str("agentId", AgentID).Str("agentName", data.AgentName).Str("hostname", data.Host.Hostname).Msg("agent registered successfully")
return domain.RegisterAgentResponse{AgentID: AgentID, Heartbeat: 5}, nil
} }