diff --git a/pkg/gce-pd-csi-driver/controller.go b/pkg/gce-pd-csi-driver/controller.go index 439af2873..d27937b0b 100644 --- a/pkg/gce-pd-csi-driver/controller.go +++ b/pkg/gce-pd-csi-driver/controller.go @@ -205,9 +205,7 @@ func (gceCS *GCEControllerServer) CreateVolume(ctx context.Context, req *csi.Cre var err error diskTypeForMetric := "" defer func() { - if err != nil { - gceCS.Metrics.RecordOperationErrorMetrics("CreateVolume", err, diskTypeForMetric) - } + gceCS.Metrics.RecordOperationErrorMetrics("CreateVolume", err, diskTypeForMetric) }() // Validate arguments volumeCapabilities := req.GetVolumeCapabilities() @@ -444,9 +442,7 @@ func (gceCS *GCEControllerServer) DeleteVolume(ctx context.Context, req *csi.Del var err error diskTypeForMetric := "" defer func() { - if err != nil { - gceCS.Metrics.RecordOperationErrorMetrics("DeleteVolume", err, diskTypeForMetric) - } + gceCS.Metrics.RecordOperationErrorMetrics("DeleteVolume", err, diskTypeForMetric) }() // Validate arguments volumeID := req.GetVolumeId() @@ -490,9 +486,7 @@ func (gceCS *GCEControllerServer) ControllerPublishVolume(ctx context.Context, r var err error diskTypeForMetric := "" defer func() { - if err != nil { - gceCS.Metrics.RecordOperationErrorMetrics("ControllerPublishVolume", err, diskTypeForMetric) - } + gceCS.Metrics.RecordOperationErrorMetrics("ControllerPublishVolume", err, diskTypeForMetric) }() // Only valid requests will be accepted _, _, _, err = gceCS.validateControllerPublishVolumeRequest(ctx, req) @@ -657,9 +651,7 @@ func (gceCS *GCEControllerServer) ControllerUnpublishVolume(ctx context.Context, var err error diskTypeForMetric := "" defer func() { - if err != nil { - gceCS.Metrics.RecordOperationErrorMetrics("ControllerUnpublishVolume", err, diskTypeForMetric) - } + gceCS.Metrics.RecordOperationErrorMetrics("ControllerUnpublishVolume", err, diskTypeForMetric) }() _, _, err = gceCS.validateControllerUnpublishVolumeRequest(ctx, req) if err != nil { @@ -768,9 +760,7 @@ func (gceCS *GCEControllerServer) ValidateVolumeCapabilities(ctx context.Context var err error diskTypeForMetric := "" defer func() { - if err != nil { - gceCS.Metrics.RecordOperationErrorMetrics("ValidateVolumeCapabilities", err, diskTypeForMetric) - } + gceCS.Metrics.RecordOperationErrorMetrics("ValidateVolumeCapabilities", err, diskTypeForMetric) }() if req.GetVolumeCapabilities() == nil || len(req.GetVolumeCapabilities()) == 0 { return nil, status.Error(codes.InvalidArgument, "Volume Capabilities must be provided") @@ -922,9 +912,7 @@ func (gceCS *GCEControllerServer) CreateSnapshot(ctx context.Context, req *csi.C var err error diskTypeForMetric := "" defer func() { - if err != nil { - gceCS.Metrics.RecordOperationErrorMetrics("CreateSnapshot", err, diskTypeForMetric) - } + gceCS.Metrics.RecordOperationErrorMetrics("CreateSnapshot", err, diskTypeForMetric) }() // Validate arguments volumeID := req.GetSourceVolumeId() @@ -1159,9 +1147,7 @@ func (gceCS *GCEControllerServer) DeleteSnapshot(ctx context.Context, req *csi.D var err error diskTypeForMetric := "" defer func() { - if err != nil { - gceCS.Metrics.RecordOperationErrorMetrics("DeleteSnapshot", err, diskTypeForMetric) - } + gceCS.Metrics.RecordOperationErrorMetrics("DeleteSnapshot", err, diskTypeForMetric) }() // Validate arguments snapshotID := req.GetSnapshotId() @@ -1250,9 +1236,7 @@ func (gceCS *GCEControllerServer) ControllerExpandVolume(ctx context.Context, re var err error diskTypeForMetric := "" defer func() { - if err != nil { - gceCS.Metrics.RecordOperationErrorMetrics("ControllerExpandVolume", err, diskTypeForMetric) - } + gceCS.Metrics.RecordOperationErrorMetrics("ControllerExpandVolume", err, diskTypeForMetric) }() volumeID := req.GetVolumeId() if len(volumeID) == 0 { diff --git a/pkg/metrics/metrics.go b/pkg/metrics/metrics.go index 43282ee4a..a0aff7d83 100644 --- a/pkg/metrics/metrics.go +++ b/pkg/metrics/metrics.go @@ -21,6 +21,7 @@ import ( "net/http" "os" + "google.golang.org/grpc/codes" "k8s.io/component-base/metrics" "k8s.io/klog/v2" "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/common" @@ -90,7 +91,11 @@ func (mm *MetricsManager) RecordOperationErrorMetrics( operationName string, operationErr error, diskType string) { - pdcsiOperationErrorsMetric.WithLabelValues(pdcsiDriverName, "/csi.v1.Controller/"+operationName, common.CodeForError(operationErr).String(), diskType).Inc() + err := codes.OK.String() + if operationErr != nil { + err = common.CodeForError(operationErr).String() + } + pdcsiOperationErrorsMetric.WithLabelValues(pdcsiDriverName, "/csi.v1.Controller/"+operationName, err, diskType).Inc() } func (mm *MetricsManager) EmitGKEComponentVersion() error {