Skip to content

Commit fd64401

Browse files
authored
Add metric for number of reserved replicas (agones-dev#2610)
1 parent 2d5ec2e commit fd64401

3 files changed

Lines changed: 11 additions & 6 deletions

File tree

‎pkg/metrics/controller.go‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ func (c *Controller) recordFleetChanges(obj interface{}) {
241241
}
242242

243243
c.recordFleetReplicas(f.Name, f.Namespace, f.Status.Replicas, f.Status.AllocatedReplicas,
244-
f.Status.ReadyReplicas, f.Spec.Replicas)
244+
f.Status.ReadyReplicas, f.Spec.Replicas, f.Status.ReservedReplicas)
245245
}
246246

247247
func (c *Controller) recordFleetDeletion(obj interface{}) {
@@ -250,10 +250,10 @@ func (c *Controller) recordFleetDeletion(obj interface{}) {
250250
return
251251
}
252252

253-
c.recordFleetReplicas(f.Name, f.Namespace, 0, 0, 0, 0)
253+
c.recordFleetReplicas(f.Name, f.Namespace, 0, 0, 0, 0, 0)
254254
}
255255

256-
func (c *Controller) recordFleetReplicas(fleetName, fleetNamespace string, total, allocated, ready, desired int32) {
256+
func (c *Controller) recordFleetReplicas(fleetName, fleetNamespace string, total, allocated, ready, desired, reserved int32) {
257257

258258
ctx, _ := tag.New(context.Background(), tag.Upsert(keyName, fleetName), tag.Upsert(keyNamespace, fleetNamespace))
259259

@@ -265,6 +265,8 @@ func (c *Controller) recordFleetReplicas(fleetName, fleetNamespace string, total
265265
fleetsReplicasCountStats.M(int64(ready)))
266266
recordWithTags(ctx, []tag.Mutator{tag.Upsert(keyType, "desired")},
267267
fleetsReplicasCountStats.M(int64(desired)))
268+
recordWithTags(ctx, []tag.Mutator{tag.Upsert(keyType, "reserved")},
269+
fleetsReplicasCountStats.M(int64(reserved)))
268270
}
269271

270272
// recordGameServerStatusChanged records gameserver status changes, however since it's based

‎pkg/metrics/controller_test.go‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,8 @@ func TestControllerFleetReplicasCount(t *testing.T) {
203203
defer c.close()
204204
c.run(t)
205205

206-
f := fleet("fleet-test", 8, 2, 5, 1)
207-
fd := fleet("fleet-deleted", 100, 100, 100, 100)
206+
f := fleet("fleet-test", 8, 2, 5, 1, 1)
207+
fd := fleet("fleet-deleted", 100, 100, 100, 100, 100)
208208
c.fleetWatch.Add(f)
209209
f = f.DeepCopy()
210210
f.Status.ReadyReplicas = 1
@@ -234,10 +234,12 @@ func TestControllerFleetReplicasCount(t *testing.T) {
234234

235235
reader.ReadAndExport(exporter)
236236
assertMetricData(t, exporter, "fleets_replicas_count", []expectedMetricData{
237+
{labels: []string{"fleet-deleted", defaultNs, "reserved"}, val: int64(0)},
237238
{labels: []string{"fleet-deleted", defaultNs, "allocated"}, val: int64(0)},
238239
{labels: []string{"fleet-deleted", defaultNs, "desired"}, val: int64(0)},
239240
{labels: []string{"fleet-deleted", defaultNs, "ready"}, val: int64(0)},
240241
{labels: []string{"fleet-deleted", defaultNs, "total"}, val: int64(0)},
242+
{labels: []string{"fleet-test", defaultNs, "reserved"}, val: int64(1)},
241243
{labels: []string{"fleet-test", defaultNs, "allocated"}, val: int64(2)},
242244
{labels: []string{"fleet-test", defaultNs, "desired"}, val: int64(5)},
243245
{labels: []string{"fleet-test", defaultNs, "ready"}, val: int64(1)},

‎pkg/metrics/util_test.go‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ func generateGsEvents(count int, state agonesv1.GameServerState, fleetName strin
150150
}
151151
}
152152

153-
func fleet(fleetName string, total, allocated, ready, desired int32) *agonesv1.Fleet {
153+
func fleet(fleetName string, total, allocated, ready, desired, reserved int32) *agonesv1.Fleet {
154154
return &agonesv1.Fleet{
155155
ObjectMeta: metav1.ObjectMeta{
156156
Name: fleetName,
@@ -161,6 +161,7 @@ func fleet(fleetName string, total, allocated, ready, desired int32) *agonesv1.F
161161
Replicas: desired,
162162
},
163163
Status: agonesv1.FleetStatus{
164+
ReservedReplicas: reserved,
164165
AllocatedReplicas: allocated,
165166
ReadyReplicas: ready,
166167
Replicas: total,

0 commit comments

Comments
 (0)