mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-08-17 04:36:05 +00:00
Add Gauge metric for BSL availability
The label of the gauge is the name of BSL Signed-off-by: Daniel Jiang <daniel.jiang@broadcom.com>
This commit is contained in:
committed by
Xun Jiang/Bruce Jiang
parent
28b2d11b51
commit
a550910f36
@@ -21,6 +21,8 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/vmware-tanzu/velero/pkg/metrics"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sirupsen/logrus"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
@@ -53,8 +55,8 @@ type backupStorageLocationReconciler struct {
|
||||
// replaced with fakes for testing.
|
||||
newPluginManager func(logrus.FieldLogger) clientmgmt.Manager
|
||||
backupStoreGetter persistence.ObjectBackupStoreGetter
|
||||
|
||||
log logrus.FieldLogger
|
||||
metrics *metrics.ServerMetrics
|
||||
log logrus.FieldLogger
|
||||
}
|
||||
|
||||
// NewBackupStorageLocationReconciler initialize and return a backupStorageLocationReconciler struct
|
||||
@@ -64,6 +66,7 @@ func NewBackupStorageLocationReconciler(
|
||||
defaultBackupLocationInfo storage.DefaultBackupLocationInfo,
|
||||
newPluginManager func(logrus.FieldLogger) clientmgmt.Manager,
|
||||
backupStoreGetter persistence.ObjectBackupStoreGetter,
|
||||
metrics *metrics.ServerMetrics,
|
||||
log logrus.FieldLogger) *backupStorageLocationReconciler {
|
||||
return &backupStorageLocationReconciler{
|
||||
ctx: ctx,
|
||||
@@ -71,6 +74,7 @@ func NewBackupStorageLocationReconciler(
|
||||
defaultBackupLocationInfo: defaultBackupLocationInfo,
|
||||
newPluginManager: newPluginManager,
|
||||
backupStoreGetter: backupStoreGetter,
|
||||
metrics: metrics,
|
||||
log: log,
|
||||
}
|
||||
}
|
||||
@@ -164,8 +168,10 @@ func (r *backupStorageLocationReconciler) logReconciledPhase(defaultFound bool,
|
||||
switch phase {
|
||||
case velerov1api.BackupStorageLocationPhaseAvailable:
|
||||
availableBSLs = append(availableBSLs, &locationList.Items[i])
|
||||
r.metrics.RegisterBackupLocationAvailable(locationList.Items[i].Name)
|
||||
case velerov1api.BackupStorageLocationPhaseUnavailable:
|
||||
unAvailableBSLs = append(unAvailableBSLs, &locationList.Items[i])
|
||||
r.metrics.RegisterBackupLocationUnavailable(locationList.Items[i].Name)
|
||||
default:
|
||||
unknownBSLs = append(unknownBSLs, &locationList.Items[i])
|
||||
}
|
||||
|
||||
@@ -21,6 +21,8 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/vmware-tanzu/velero/pkg/metrics"
|
||||
|
||||
. "github.com/onsi/ginkgo/v2"
|
||||
. "github.com/onsi/gomega"
|
||||
"github.com/pkg/errors"
|
||||
@@ -92,6 +94,7 @@ var _ = Describe("Backup Storage Location Reconciler", func() {
|
||||
},
|
||||
newPluginManager: func(logrus.FieldLogger) clientmgmt.Manager { return pluginManager },
|
||||
backupStoreGetter: NewFakeObjectBackupStoreGetter(backupStores),
|
||||
metrics: metrics.NewServerMetrics(),
|
||||
log: velerotest.NewLogger(),
|
||||
}
|
||||
|
||||
@@ -157,6 +160,7 @@ var _ = Describe("Backup Storage Location Reconciler", func() {
|
||||
},
|
||||
newPluginManager: func(logrus.FieldLogger) clientmgmt.Manager { return pluginManager },
|
||||
backupStoreGetter: NewFakeObjectBackupStoreGetter(backupStores),
|
||||
metrics: metrics.NewServerMetrics(),
|
||||
log: velerotest.NewLogger(),
|
||||
}
|
||||
|
||||
@@ -245,6 +249,7 @@ func TestEnsureSingleDefaultBSL(t *testing.T) {
|
||||
ctx: context.Background(),
|
||||
client: fake.NewClientBuilder().WithScheme(scheme.Scheme).WithRuntimeObjects(&test.locations).Build(),
|
||||
defaultBackupLocationInfo: test.defaultBackupInfo,
|
||||
metrics: metrics.NewServerMetrics(),
|
||||
log: velerotest.NewLogger(),
|
||||
}
|
||||
defaultFound, err := r.ensureSingleDefaultBSL(test.locations)
|
||||
@@ -289,6 +294,7 @@ func TestBSLReconcile(t *testing.T) {
|
||||
ctx: context.Background(),
|
||||
client: fake.NewClientBuilder().WithScheme(scheme.Scheme).WithRuntimeObjects(&test.locationList).Build(),
|
||||
newPluginManager: func(logrus.FieldLogger) clientmgmt.Manager { return pluginManager },
|
||||
metrics: metrics.NewServerMetrics(),
|
||||
log: velerotest.NewLogger(),
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user