Skip to content

Commit

Permalink
re-record tortoise metrics when phase or mode is changed (#231)
Browse files Browse the repository at this point in the history
  • Loading branch information
sanposhiho authored Dec 25, 2023
1 parent 48ec800 commit 60901cc
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 18 deletions.
7 changes: 6 additions & 1 deletion controllers/tortoise_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,19 @@ func (r *TortoiseReconciler) Reconcile(ctx context.Context, req ctrl.Request) (_
return ctrl.Result{RequeueAfter: r.Interval}, nil
}

metrics.RecordTortoise(tortoise, false)
oldTortoise := tortoise.DeepCopy()

defer func() {
if tortoise == nil {
logger.Error(reterr, "get error during the reconciliation, but cannot record the event because tortoise object is nil", "tortoise", req.NamespacedName)
return
}

if metrics.ShouldRerecordTortoise(oldTortoise, tortoise) {
metrics.RecordTortoise(oldTortoise, true)
metrics.RecordTortoise(tortoise, false)
}

tortoise = r.TortoiseService.RecordReconciliationFailure(tortoise, reterr, now)
_, err = r.TortoiseService.UpdateTortoiseStatus(ctx, tortoise, now, false)
if err != nil {
Expand Down
17 changes: 0 additions & 17 deletions pkg/metrics/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ package metrics
import (
"github.com/prometheus/client_golang/prometheus"
"sigs.k8s.io/controller-runtime/pkg/metrics"

"github.com/mercari/tortoise/api/v1beta3"
)

var (
Expand Down Expand Up @@ -80,18 +78,3 @@ func init() {
TortoiseNumber,
)
}

func RecordTortoise(t *v1beta3.Tortoise, deleted bool) {
value := 1.0
if deleted {
value = 0
}
TortoiseNumber.WithLabelValues(
t.Name,
t.Namespace,
t.Spec.TargetRefs.ScaleTargetRef.Name,
t.Spec.TargetRefs.ScaleTargetRef.Kind,
string(t.Spec.UpdateMode),
string(t.Status.TortoisePhase),
).Set(value)
}
25 changes: 25 additions & 0 deletions pkg/metrics/tortoisenumber.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package metrics

import (
"github.com/mercari/tortoise/api/v1beta3"
)

func RecordTortoise(t *v1beta3.Tortoise, deleted bool) {
value := 1.0
if deleted {
value = 0
}
TortoiseNumber.WithLabelValues(
t.Name,
t.Namespace,
t.Spec.TargetRefs.ScaleTargetRef.Name,
t.Spec.TargetRefs.ScaleTargetRef.Kind,
string(t.Spec.UpdateMode),
string(t.Status.TortoisePhase),
).Set(value)
}

func ShouldRerecordTortoise(old, new *v1beta3.Tortoise) bool {
return old.Status.TortoisePhase != new.Status.TortoisePhase ||
old.Spec.UpdateMode != new.Spec.UpdateMode
}

0 comments on commit 60901cc

Please sign in to comment.