Skip to content

Commit 167ae2c

Browse files
authored
Improvement/add more logs to management api (#316)
* Remove useless ping handler * Add logs to handlers * Add logger field to services * Run lint
1 parent 1933420 commit 167ae2c

File tree

17 files changed

+96
-778
lines changed

17 files changed

+96
-778
lines changed

cmd/managementapi/wire.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ func initializeManagementMux(ctx context.Context, conf config.Config) (*runtime.
5858
// api handlers
5959
handlers.ProvideSchedulersHandler,
6060
handlers.ProvideOperationsHandler,
61-
handlers.ProvidePingHandler,
6261
provideManagementMux,
6362

6463
// config
@@ -68,9 +67,8 @@ func initializeManagementMux(ctx context.Context, conf config.Config) (*runtime.
6867
return &runtime.ServeMux{}, nil
6968
}
7069

71-
func provideManagementMux(ctx context.Context, pingHandler *handlers.PingHandler, schedulersHandler *handlers.SchedulersHandler, operationsHandler *handlers.OperationsHandler) *runtime.ServeMux {
70+
func provideManagementMux(ctx context.Context, schedulersHandler *handlers.SchedulersHandler, operationsHandler *handlers.OperationsHandler) *runtime.ServeMux {
7271
mux := runtime.NewServeMux()
73-
_ = api.RegisterPingServiceHandlerServer(ctx, mux, pingHandler)
7472
_ = api.RegisterSchedulersServiceHandlerServer(ctx, mux, schedulersHandler)
7573
_ = api.RegisterOperationsServiceHandlerServer(ctx, mux, operationsHandler)
7674

cmd/managementapi/wire_gen.go

Lines changed: 2 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/api/handlers/operations_handler.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ import (
2929
"strings"
3030
"time"
3131

32+
"go.uber.org/zap"
33+
3234
"github.com/topfreegames/maestro/internal/core/ports"
3335

3436
"github.com/topfreegames/maestro/internal/core/entities/operation"
@@ -40,51 +42,61 @@ import (
4042

4143
type OperationsHandler struct {
4244
operationManager ports.OperationManager
45+
logger *zap.Logger
4346
api.UnimplementedOperationsServiceServer
4447
}
4548

4649
func ProvideOperationsHandler(operationManager ports.OperationManager) *OperationsHandler {
4750
return &OperationsHandler{
4851
operationManager: operationManager,
52+
logger: zap.L().
53+
With(zap.String("component", "handler"), zap.String("handler", "operations_handler")),
4954
}
5055
}
5156

5257
func (h *OperationsHandler) ListOperations(ctx context.Context, request *api.ListOperationsRequest) (*api.ListOperationsResponse, error) {
5358
sortingOrder, err := extractSortingParameters(request.OrderBy)
5459
if err != nil {
60+
h.logger.Error("error parsing sorting parameters", zap.String("schedulerName", request.GetSchedulerName()), zap.String("orderBy", request.OrderBy), zap.Error(err))
5561
return nil, status.Error(codes.InvalidArgument, err.Error())
5662
}
5763

5864
pendingOperationEntities, err := h.operationManager.ListSchedulerPendingOperations(ctx, request.GetSchedulerName())
5965
if err != nil {
66+
h.logger.Error("error listing pending operations", zap.String("schedulerName", request.GetSchedulerName()), zap.Error(err))
6067
return nil, status.Error(codes.Unknown, err.Error())
6168
}
6269
sortOperationsByCreatedAt(pendingOperationEntities, sortingOrder)
6370

6471
pendingOperationResponse, err := h.fromOperationsToResponses(pendingOperationEntities)
6572
if err != nil {
73+
h.logger.Error("error converting pending operations", zap.String("schedulerName", request.GetSchedulerName()), zap.Error(err))
6674
return nil, status.Error(codes.Unknown, err.Error())
6775
}
6876

6977
activeOperationEntities, err := h.operationManager.ListSchedulerActiveOperations(ctx, request.GetSchedulerName())
7078
if err != nil {
79+
h.logger.Error("error listing pending operations", zap.String("schedulerName", request.GetSchedulerName()), zap.Error(err))
7180
return nil, status.Error(codes.Unknown, err.Error())
7281
}
7382
sortOperationsByCreatedAt(activeOperationEntities, sortingOrder)
7483

7584
activeOperationResponses, err := h.fromOperationsToResponses(activeOperationEntities)
7685
if err != nil {
86+
h.logger.Error("error converting active operations", zap.String("schedulerName", request.GetSchedulerName()), zap.Error(err))
7787
return nil, status.Error(codes.Unknown, err.Error())
7888
}
7989

8090
finishedOperationEntities, err := h.operationManager.ListSchedulerFinishedOperations(ctx, request.GetSchedulerName())
8191
if err != nil {
92+
h.logger.Error("error listing finished operations", zap.String("schedulerName", request.GetSchedulerName()), zap.Error(err))
8293
return nil, status.Error(codes.Unknown, err.Error())
8394
}
8495
sortOperationsByCreatedAt(finishedOperationEntities, sortingOrder)
8596

8697
finishedOperationResponse, err := h.fromOperationsToResponses(finishedOperationEntities)
8798
if err != nil {
99+
h.logger.Error("error converting finished operations", zap.String("schedulerName", request.GetSchedulerName()), zap.Error(err))
88100
return nil, status.Error(codes.Unknown, err.Error())
89101
}
90102

@@ -98,6 +110,7 @@ func (h *OperationsHandler) ListOperations(ctx context.Context, request *api.Lis
98110
func (h *OperationsHandler) CancelOperation(ctx context.Context, request *api.CancelOperationRequest) (*api.CancelOperationResponse, error) {
99111
err := h.operationManager.EnqueueOperationCancellationRequest(ctx, request.SchedulerName, request.OperationId)
100112
if err != nil {
113+
h.logger.Error("error cancelling operation", zap.String("schedulerName", request.GetSchedulerName()), zap.String("operationId", request.GetOperationId()), zap.Error(err))
101114
return nil, status.Error(codes.Unknown, err.Error())
102115
}
103116

internal/api/handlers/ping_handler.go

Lines changed: 0 additions & 43 deletions
This file was deleted.

internal/api/handlers/ping_handler_test.go

Lines changed: 0 additions & 139 deletions
This file was deleted.

internal/api/handlers/rooms_handler.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import (
2727
"errors"
2828
"time"
2929

30+
"go.uber.org/zap"
31+
3032
"github.com/topfreegames/maestro/internal/core/ports"
3133

3234
"github.com/topfreegames/maestro/internal/core/entities/events"
@@ -44,13 +46,16 @@ import (
4446
type RoomsHandler struct {
4547
roomManager ports.RoomManager
4648
eventsService ports.EventsService
49+
logger *zap.Logger
4750
api.UnimplementedRoomsServiceServer
4851
}
4952

5053
func ProvideRoomsHandler(roomManager ports.RoomManager, eventsService ports.EventsService) *RoomsHandler {
5154
return &RoomsHandler{
5255
roomManager: roomManager,
5356
eventsService: eventsService,
57+
logger: zap.L().
58+
With(zap.String("component", "handler"), zap.String("handler", "rooms_handler")),
5459
}
5560
}
5661

@@ -61,6 +66,7 @@ func (h *RoomsHandler) ForwardRoomEvent(ctx context.Context, message *api.Forwar
6166

6267
err := h.eventsService.ProduceEvent(ctx, events.NewRoomEvent(message.SchedulerName, message.RoomName, eventMetadata))
6368
if err != nil {
69+
h.logger.Error("error forwarding room event", zap.String("schedulerName", message.SchedulerName), zap.String("roomName", message.RoomName), zap.Any("eventMessage", message), zap.Error(err))
6470
return &api.ForwardRoomEventResponse{Success: false, Message: err.Error()}, nil
6571
}
6672
return &api.ForwardRoomEventResponse{Success: true, Message: ""}, nil
@@ -72,6 +78,7 @@ func (h *RoomsHandler) ForwardPlayerEvent(ctx context.Context, message *api.Forw
7278

7379
err := h.eventsService.ProduceEvent(ctx, events.NewPlayerEvent(message.SchedulerName, message.RoomName, eventMetadata))
7480
if err != nil {
81+
h.logger.Error("error forwarding player event", zap.String("schedulerName", message.SchedulerName), zap.String("roomName", message.RoomName), zap.Any("eventMessage", message), zap.Error(err))
7582
return &api.ForwardPlayerEventResponse{Success: false, Message: err.Error()}, nil
7683
}
7784
return &api.ForwardPlayerEventResponse{Success: true, Message: ""}, nil
@@ -80,10 +87,12 @@ func (h *RoomsHandler) ForwardPlayerEvent(ctx context.Context, message *api.Forw
8087
func (h *RoomsHandler) UpdateRoomWithPing(ctx context.Context, message *api.UpdateRoomWithPingRequest) (*api.UpdateRoomWithPingResponse, error) {
8188
gameRoom, err := h.fromApiUpdateRoomRequestToEntity(message)
8289
if err != nil {
90+
h.logger.Error("error parsing ping request", zap.String("schedulerName", message.SchedulerName), zap.String("roomName", message.RoomName), zap.Any("ping", message), zap.Error(err))
8391
return nil, status.Error(codes.InvalidArgument, err.Error())
8492
}
8593
err = h.roomManager.UpdateRoom(ctx, gameRoom)
8694
if err != nil {
95+
h.logger.Error("error updating room with ping", zap.String("schedulerName", message.SchedulerName), zap.String("roomName", message.RoomName), zap.Any("ping", message), zap.Error(err))
8796
if errors.Is(err, portsErrors.ErrNotFound) {
8897
return nil, status.Error(codes.NotFound, err.Error())
8998
}

0 commit comments

Comments
 (0)