Skip to content

Commit a57aefc

Browse files
committed
feat: add controller metrics
1 parent 55bc8d0 commit a57aefc

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

pkg/blob/blob.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import (
4242
const (
4343
// DriverName holds the name of the csi-driver
4444
DriverName = "blob.csi.azure.com"
45+
blobCSIDriverName = "blob_csi_driver"
4546
separator = "#"
4647
volumeIDTemplate = "%s#%s#%s"
4748
secretNameTemplate = "azure-storage-account-%s-secret"

pkg/blob/controllerserver.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"k8s.io/klog/v2"
3333

3434
"sigs.k8s.io/blob-csi-driver/pkg/util"
35+
"sigs.k8s.io/cloud-provider-azure/pkg/metrics"
3536
azure "sigs.k8s.io/cloud-provider-azure/pkg/provider"
3637
)
3738

@@ -171,6 +172,12 @@ func (d *Driver) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest)
171172
parameters[containerNameField] = containerName
172173
}
173174

175+
mc := metrics.NewMetricContext(blobCSIDriverName, "controller_create_volume", d.cloud.ResourceGroup, d.cloud.SubscriptionID, d.Name)
176+
isOperationSucceeded := false
177+
defer func() {
178+
mc.ObserveOperationWithResult(isOperationSucceeded)
179+
}()
180+
174181
klog.V(2).Infof("begin to create container(%s) on account(%s) type(%s) rg(%s) location(%s) size(%d)", containerName, accountName, storageAccountType, resourceGroup, location, requestGiB)
175182
client, err := azstorage.NewBasicClientOnSovereignCloud(accountName, accountKey, d.cloud.Environment)
176183
if err != nil {
@@ -196,6 +203,7 @@ func (d *Driver) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest)
196203
volumeID := fmt.Sprintf(volumeIDTemplate, resourceGroup, accountName, containerName)
197204
klog.V(2).Infof("create container %s on storage account %s successfully", containerName, accountName)
198205

206+
isOperationSucceeded = true
199207
return &csi.CreateVolumeResponse{
200208
Volume: &csi.Volume{
201209
VolumeId: volumeID,
@@ -231,6 +239,12 @@ func (d *Driver) DeleteVolume(ctx context.Context, req *csi.DeleteVolumeRequest)
231239
resourceGroupName = d.cloud.ResourceGroup
232240
}
233241

242+
mc := metrics.NewMetricContext(blobCSIDriverName, "controller_delete_volume", d.cloud.ResourceGroup, d.cloud.SubscriptionID, d.Name)
243+
isOperationSucceeded := false
244+
defer func() {
245+
mc.ObserveOperationWithResult(isOperationSucceeded)
246+
}()
247+
234248
var accountKey string
235249
if len(req.GetSecrets()) == 0 { // check whether account is provided by secret
236250
accountKey, err = d.cloud.GetStorageAccesskey(accountName, resourceGroupName)
@@ -263,6 +277,7 @@ func (d *Driver) DeleteVolume(ctx context.Context, req *csi.DeleteVolumeRequest)
263277
return nil, err
264278
}
265279

280+
isOperationSucceeded = true
266281
klog.V(2).Infof("container(%s) under rg(%s) account(%s) volumeID(%s) is deleted successfully", containerName, resourceGroupName, accountName, volumeID)
267282
return &csi.DeleteVolumeResponse{}, nil
268283
}

0 commit comments

Comments
 (0)