diff --git a/changelogs/unreleased/6318-ywk253100 b/changelogs/unreleased/6318-ywk253100 new file mode 100644 index 000000000..064070e34 --- /dev/null +++ b/changelogs/unreleased/6318-ywk253100 @@ -0,0 +1 @@ +Update metrics when backup failed with validation error \ No newline at end of file diff --git a/pkg/controller/backup_controller.go b/pkg/controller/backup_controller.go index e04cd3902..000e5a510 100644 --- a/pkg/controller/backup_controller.go +++ b/pkg/controller/backup_controller.go @@ -256,8 +256,13 @@ func (b *backupReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctr // store ref to just-updated item for creating patch original = request.Backup.DeepCopy() + backupScheduleName := request.GetLabels()[velerov1api.ScheduleNameLabel] + if request.Status.Phase == velerov1api.BackupPhaseFailedValidation { log.Debug("failed to validate backup status") + b.metrics.RegisterBackupValidationFailure(backupScheduleName) + b.metrics.RegisterBackupLastStatus(backupScheduleName, metrics.BackupLastStatusFailure) + return ctrl.Result{}, nil } @@ -271,7 +276,6 @@ func (b *backupReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctr log.Debug("Running backup") - backupScheduleName := request.GetLabels()[velerov1api.ScheduleNameLabel] b.metrics.RegisterBackupAttempt(backupScheduleName) // execution & upload of backup diff --git a/pkg/controller/backup_controller_test.go b/pkg/controller/backup_controller_test.go index ee0083271..30296b7e5 100644 --- a/pkg/controller/backup_controller_test.go +++ b/pkg/controller/backup_controller_test.go @@ -214,6 +214,7 @@ func TestProcessBackupValidationFailures(t *testing.T) { defaultBackupLocation: defaultBackupLocation.Name, clock: &clock.RealClock{}, formatFlag: formatFlag, + metrics: metrics.NewServerMetrics(), } require.NotNil(t, test.backup)