Skip to content

Commit fb57ed3

Browse files
committed
Merge pull request oracle#118 in OKE/oci-cloud-controller-manager from task/OKE-13846 to internal
* commit '6e253538e8c5ee05ddc0cb2ffdbdd4056a12d804': Enable metrics for update operations
2 parents 54ee0e3 + 6e25353 commit fb57ed3

File tree

3 files changed

+45
-82
lines changed

3 files changed

+45
-82
lines changed

pkg/cloudprovider/providers/oci/load_balancer.go

+10-14
Original file line numberDiff line numberDiff line change
@@ -372,17 +372,16 @@ func (cp *CloudProvider) EnsureLoadBalancer(ctx context.Context, clusterName str
372372
return nil, err
373373
}
374374
exists := !client.IsNotFound(err)
375-
// lbOCID := ""
376-
// if lb.Id != nil {
377-
// lbOCID = *lb.Id
378-
// }
375+
lbOCID := ""
376+
if lb != nil && lb.Id != nil {
377+
lbOCID = *lb.Id
378+
}
379379

380380
var sslConfig *SSLConfig
381381
if requiresCertificate(service) {
382382
ports, err := getSSLEnabledPorts(service)
383383
if err != nil {
384-
// TODO: Uncomment once we know our T2 limits are not getting breached
385-
// metrics.SendMetricData(cp.metricPusher, lbUpdateFailureMetricName, time.Since(startTime).Seconds(),loadBalancer, lbOCID)
384+
metrics.SendMetricData(cp.metricPusher, metrics.LBUpdateFailure, time.Since(startTime).Seconds(), loadBalancer, lbOCID)
386385
return nil, err
387386
}
388387
secretListenerString := service.Annotations[ServiceAnnotationLoadBalancerTLSSecret]
@@ -392,16 +391,14 @@ func (cp *CloudProvider) EnsureLoadBalancer(ctx context.Context, clusterName str
392391
subnets, err := cp.getLoadBalancerSubnets(ctx, logger, service)
393392
if err != nil {
394393
logger.With(zap.Error(err)).Error("Failed to get Load balancer Subnets.")
395-
// TODO: Uncomment once we know our T2 limits are not getting breached
396-
// metrics.SendMetricData(cp.metricPusher, lbUpdateFailureMetricName, time.Since(startTime).Seconds(),loadBalancer, lbOCID)
394+
metrics.SendMetricData(cp.metricPusher, metrics.LBUpdateFailure, time.Since(startTime).Seconds(), loadBalancer, lbOCID)
397395
return nil, err
398396
}
399397

400398
spec, err := NewLBSpec(logger, service, nodes, subnets, sslConfig, cp.securityListManagerFactory)
401399
if err != nil {
402400
logger.With(zap.Error(err)).Error("Failed to derive LBSpec")
403-
// TODO: Uncomment once we know our T2 limits are not getting breached
404-
// metrics.SendMetricData(cp.metricPusher, lbUpdateFailureMetricName, time.Since(startTime).Seconds(),loadBalancer, lbOCID)
401+
metrics.SendMetricData(cp.metricPusher, metrics.LBUpdateFailure, time.Since(startTime).Seconds(), loadBalancer, lbOCID)
405402
return nil, err
406403
}
407404

@@ -430,13 +427,12 @@ func (cp *CloudProvider) EnsureLoadBalancer(ctx context.Context, clusterName str
430427
}
431428

432429
if err := cp.updateLoadBalancer(ctx, lb, spec); err != nil {
433-
// TODO: Uncomment once we know our T2 limits are not getting breached
434-
// metrics.SendMetricData(cp.metricPusher, lbUpdateFailureMetricName, time.Since(startTime).Seconds(),loadBalancer, lbOCID)
430+
metrics.SendMetricData(cp.metricPusher, metrics.LBUpdateFailure, time.Since(startTime).Seconds(), loadBalancer, lbOCID)
435431
return nil, err
436432
}
437433

438-
// syncTime := time.Since(startTime).Seconds()
439-
// metrics.SendMetricData(cp.metricPusher,lbUpdateSuccessMetricName, syncTime, loadBalancer, lbOCID)
434+
syncTime := time.Since(startTime).Seconds()
435+
metrics.SendMetricData(cp.metricPusher, metrics.LBUpdateSuccess, syncTime, loadBalancer, lbOCID)
440436

441437
return loadBalancerToStatus(lb)
442438
}

pkg/csi/driver/controller.go

+17-24
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ func (d *ControllerDriver) DeleteVolume(ctx context.Context, req *csi.DeleteVolu
253253

254254
// ControllerPublishVolume attaches the given volume to the node
255255
func (d *ControllerDriver) ControllerPublishVolume(ctx context.Context, req *csi.ControllerPublishVolumeRequest) (*csi.ControllerPublishVolumeResponse, error) {
256-
// startTime := time.Now()
256+
startTime := time.Now()
257257

258258
if req.VolumeId == "" {
259259
return nil, status.Error(codes.InvalidArgument, "Volume ID must be provided")
@@ -272,8 +272,7 @@ func (d *ControllerDriver) ControllerPublishVolume(ctx context.Context, req *csi
272272
id, err := d.util.lookupNodeID(d.KubeClient, req.NodeId)
273273
if err != nil {
274274
log.With(zap.Error(err)).Error("Failed to lookup node")
275-
// TODO: Uncomment once we know our T2 limits are not getting breached
276-
// metrics.SendMetricData(d.metricPusher, pvAttachFailureMetric, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
275+
metrics.SendMetricData(d.metricPusher, metrics.PVAttachFailure, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
277276
return nil, status.Errorf(codes.InvalidArgument, "failed to get ProviderID by nodeName. error : %s", err)
278277
}
279278
id = client.MapProviderIDToInstanceID(id)
@@ -292,15 +291,15 @@ func (d *ControllerDriver) ControllerPublishVolume(ctx context.Context, req *csi
292291
compartmentID, err := util.LookupNodeCompartment(d.KubeClient, req.NodeId)
293292
if err != nil {
294293
log.With(zap.Error(err)).With("instanceID", id).Errorf("failed to get compartmentID from node annotation: %s", util.CompartmentIDAnnotation)
294+
metrics.SendMetricData(d.metricPusher, metrics.PVAttachFailure, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
295295
return nil, status.Errorf(codes.Unknown, "failed to get compartmentID from node annotation:. error : %s", err)
296296
}
297297

298298
volumeAttached, err := d.client.Compute().FindActiveVolumeAttachment(context.Background(), compartmentID, req.VolumeId)
299299

300300
if err != nil && !client.IsNotFound(err) {
301301
log.With(zap.Error(err)).Error("Got error in finding volume attachment: %s", err)
302-
// TODO: Uncomment once we know our T2 limits are not getting breached
303-
// metrics.SendMetricData(d.metricPusher, pvAttachFailureMetric, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
302+
metrics.SendMetricData(d.metricPusher, metrics.PVAttachFailure, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
304303
return nil, err
305304
}
306305

@@ -311,15 +310,13 @@ func (d *ControllerDriver) ControllerPublishVolume(ctx context.Context, req *csi
311310
err = d.client.Compute().WaitForVolumeDetached(ctx, *volumeAttached.GetId())
312311
if err != nil {
313312
log.With(zap.Error(err)).Error("Error while waiting for volume to get detached before attaching: %s", err)
314-
// TODO: Uncomment once we know our T2 limits are not getting breached
315-
// metrics.SendMetricData(d.metricPusher, pvAttachFailureMetric, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
313+
metrics.SendMetricData(d.metricPusher, metrics.PVAttachFailure, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
316314
return nil, status.Errorf(codes.Internal, "Error while waiting for volume to get detached before attaching: %s", err)
317315
}
318316
} else {
319317
if id != *volumeAttached.GetInstanceId() {
320318
log.Error("Volume is already attached to another node: %s", *volumeAttached.GetInstanceId())
321-
// TODO: Uncomment once we know our T2 limits are not getting breached
322-
// metrics.SendMetricData(d.metricPusher, pvAttachFailureMetric, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
319+
metrics.SendMetricData(d.metricPusher, metrics.PVAttachFailure, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
323320
return nil, status.Errorf(codes.Internal, "Failed to attach volume to node. "+
324321
"The volume is already attached to another node.")
325322
}
@@ -328,8 +325,7 @@ func (d *ControllerDriver) ControllerPublishVolume(ctx context.Context, req *csi
328325
volumeAttached, err = d.client.Compute().WaitForVolumeAttached(ctx, *volumeAttached.GetId())
329326
if err != nil {
330327
log.With(zap.Error(err)).Error("Error while waiting: failed to attach volume to the node: %s.", err)
331-
// TODO: Uncomment once we know our T2 limits are not getting breached
332-
// metrics.SendMetricData(d.metricPusher, pvAttachFailureMetric, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
328+
metrics.SendMetricData(d.metricPusher, metrics.PVAttachFailure, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
333329
return nil, status.Errorf(codes.Internal, "Failed to attach volume to the node: %s", err)
334330
}
335331
log.Info("Volume is already ATTACHED to node.")
@@ -344,30 +340,26 @@ func (d *ControllerDriver) ControllerPublishVolume(ctx context.Context, req *csi
344340
volumeAttached, err = d.client.Compute().AttachParavirtualizedVolume(context.Background(), id, req.VolumeId, volumeAttachmentOptions.enableInTransitEncryption)
345341
if err != nil {
346342
log.With(zap.Error(err)).Info("failed paravirtualized attachment instance to volume.")
347-
// TODO: Uncomment once we know our T2 limits are not getting breached
348-
// metrics.SendMetricData(d.metricPusher, pvAttachFailureMetric, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
343+
metrics.SendMetricData(d.metricPusher, metrics.PVAttachFailure, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
349344
return nil, status.Errorf(codes.Internal, "failed paravirtualized attachment instance to volume. error : %s", err)
350345
}
351346
} else {
352347
volumeAttached, err = d.client.Compute().AttachVolume(context.Background(), id, req.VolumeId)
353348
if err != nil {
354349
log.With(zap.Error(err)).Info("failed iscsi attachment instance to volume.")
355-
// TODO: Uncomment once we know our T2 limits are not getting breached
356-
// metrics.SendMetricData(d.metricPusher, pvAttachFailureMetric, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
350+
metrics.SendMetricData(d.metricPusher, metrics.PVAttachFailure, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
357351
return nil, status.Errorf(codes.Internal, "failed iscsi attachment instance to volume : %s", err)
358352
}
359353
}
360354

361355
volumeAttached, err = d.client.Compute().WaitForVolumeAttached(ctx, *volumeAttached.GetId())
362356
if err != nil {
363357
log.With(zap.Error(err)).Error("Failed to attach volume to the node.")
364-
// TODO: Uncomment once we know our T2 limits are not getting breached
365-
// metrics.SendMetricData(d.metricPusher, pvAttachFailureMetric, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
358+
metrics.SendMetricData(d.metricPusher, metrics.PVAttachFailure, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
366359
return nil, status.Errorf(codes.Internal, "Failed to attach volume to the node %s", err)
367360
}
368361

369-
// TODO: Uncomment once we know our T2 limits are not getting breached
370-
// metrics.SendMetricData(d.metricPusher, pvAttachSuccessMetric, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
362+
metrics.SendMetricData(d.metricPusher, metrics.PVAttachSuccess, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
371363
return generatePublishContext(volumeAttachmentOptions, log, volumeAttached), nil
372364

373365
}
@@ -398,7 +390,7 @@ func generatePublishContext(volumeAttachmentOptions VolumeAttachmentOption, log
398390

399391
// ControllerUnpublishVolume deattaches the given volume from the node
400392
func (d *ControllerDriver) ControllerUnpublishVolume(ctx context.Context, req *csi.ControllerUnpublishVolumeRequest) (*csi.ControllerUnpublishVolumeResponse, error) {
401-
// startTime := time.Now()
393+
startTime := time.Now()
402394
log := d.logger.With("volumeID", req.VolumeId)
403395

404396
if req.VolumeId == "" {
@@ -408,6 +400,7 @@ func (d *ControllerDriver) ControllerUnpublishVolume(ctx context.Context, req *c
408400
compartmentID, err := util.LookupNodeCompartment(d.KubeClient, req.NodeId)
409401
if err != nil {
410402
log.With(zap.Error(err)).Errorf("failed to get compartmentID from node annotation: %s", util.CompartmentIDAnnotation)
403+
metrics.SendMetricData(d.metricPusher, metrics.PVDetachFailure, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
411404
return nil, status.Errorf(codes.Unknown, "failed to get compartmentID from node annotation:. error : %s", err)
412405
}
413406

@@ -419,28 +412,28 @@ func (d *ControllerDriver) ControllerUnpublishVolume(ctx context.Context, req *c
419412
return &csi.ControllerUnpublishVolumeResponse{}, nil
420413
}
421414
log.With(zap.Error(err)).With("nodeId", req.NodeId).Error("Volume is not detached from the node.")
422-
// metrics.SendDataMetric(d.metricPusher, pvDetachFailureMetric, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
415+
metrics.SendMetricData(d.metricPusher, metrics.PVDetachFailure, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
423416
return nil, err
424417
}
425418

426419
log.With("volumeAttachedId", attachedVolume.GetId()).Info("Detaching Volume.")
427420
err = d.client.Compute().DetachVolume(context.Background(), *attachedVolume.GetId())
428421
if err != nil {
429422
log.With(zap.Error(err)).With("nodeId", req.NodeId).Error("Volume can not be detached.")
430-
// metrics.SendDataMetric(d.metricPusher, pvDetachFailureMetric, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
423+
metrics.SendMetricData(d.metricPusher, metrics.PVDetachFailure, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
431424
return nil, status.Errorf(codes.Unknown, "volume can not be detached %s", err)
432425
}
433426

434427
err = d.client.Compute().WaitForVolumeDetached(context.Background(), *attachedVolume.GetId())
435428
if err != nil {
436429
log.With(zap.Error(err)).With("nodeId", req.NodeId).Error("timed out waiting for volume to be detached.")
430+
metrics.SendMetricData(d.metricPusher, metrics.PVDetachFailure, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
437431
return nil, status.Errorf(codes.Unknown, "timed out waiting for volume to be detached %s", err)
438432
}
439433

440434
log.With("volumeAttachedId", attachedVolume.GetId()).Info("Un-publishing Volume Completed.")
441435

442-
// TODO: Uncomment once we know our T2 limits are not getting breached
443-
// metrics.SendMetricData(d.metricPusher, pvDetachSuccessMetric, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
436+
metrics.SendMetricData(d.metricPusher, metrics.PVDetachSuccess, time.Since(startTime).Seconds(), csiDriver, req.VolumeId)
444437
return &csi.ControllerUnpublishVolumeResponse{}, nil
445438
}
446439

0 commit comments

Comments
 (0)