Skip to content

Commit 62cc353

Browse files
committed
feat: add metric for ping handler update room failures
1 parent 314d8e9 commit 62cc353

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

internal/api/handlers/metrics.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// MIT License
2+
//
3+
// Copyright (c) 2021 TFG Co
4+
//
5+
// Permission is hereby granted, free of charge, to any person obtaining a copy
6+
// of this software and associated documentation files (the "Software"), to deal
7+
// in the Software without restriction, including without limitation the rights
8+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
// copies of the Software, and to permit persons to whom the Software is
10+
// furnished to do so, subject to the following conditions:
11+
//
12+
// The above copyright notice and this permission notice shall be included in all
13+
// copies or substantial portions of the Software.
14+
//
15+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
// SOFTWARE.
22+
23+
package handlers
24+
25+
import (
26+
"github.com/topfreegames/maestro/internal/core/monitoring"
27+
)
28+
29+
var pingHandlerUpdateRoomFailuresMetric = monitoring.CreateCounterMetric(&monitoring.MetricOpts{
30+
Namespace: monitoring.Namespace,
31+
Subsystem: monitoring.SubsystemApi,
32+
Name: "ping_handler_update_room_failures",
33+
Help: "Number of failures in UpdateRoomWithPing handler when calling UpdateRoom",
34+
Labels: []string{
35+
monitoring.LabelScheduler,
36+
},
37+
})
38+
39+
func reportPingHandlerUpdateRoomFailure(schedulerName string) {
40+
pingHandlerUpdateRoomFailuresMetric.WithLabelValues(schedulerName).Inc()
41+
}

internal/api/handlers/rooms_handler.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ func (h *RoomsHandler) UpdateRoomWithPing(ctx context.Context, message *api.Upda
9090
err = h.roomManager.UpdateRoom(ctx, gameRoom)
9191
if err != nil {
9292
handlerLogger.Error("error updating room with ping", zap.Any("ping", message), zap.Error(err))
93+
reportPingHandlerUpdateRoomFailure(message.SchedulerName)
9394
return &api.UpdateRoomWithPingResponse{Success: false}, nil
9495
}
9596

0 commit comments

Comments
 (0)