@@ -45,6 +45,7 @@ import (
45
45
"sigs.k8s.io/cluster-api/util"
46
46
47
47
infrav1 "sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha4"
48
+ "sigs.k8s.io/cluster-api-provider-openstack/pkg/metrics"
48
49
"sigs.k8s.io/cluster-api-provider-openstack/pkg/record"
49
50
capoerrors "sigs.k8s.io/cluster-api-provider-openstack/pkg/utils/errors"
50
51
)
@@ -217,11 +218,14 @@ func (s *Service) createInstance(eventObject runtime.Object, clusterName string,
217
218
218
219
serverCreateOpts = applyServerGroupID (serverCreateOpts , i .ServerGroupID )
219
220
221
+ mc := metrics .NewMetricPrometheusContext ("server" , "create" )
222
+
220
223
server , err := servers .Create (s .computeClient , keypairs.CreateOptsExt {
221
224
CreateOptsBuilder : serverCreateOpts ,
222
225
KeyName : i .SSHKeyName ,
223
226
}).Extract ()
224
- if err != nil {
227
+
228
+ if mc .ObserveRequest (err ) != nil {
225
229
if err = s .deletePorts (eventObject , portList ); err != nil {
226
230
return nil , err
227
231
}
@@ -400,8 +404,10 @@ func (s *Service) getOrCreatePort(eventObject runtime.Object, clusterName string
400
404
if net .Subnet .ID != "" {
401
405
portCreateOpts .FixedIPs = []ports.IP {{SubnetID : net .Subnet .ID }}
402
406
}
407
+ mc := metrics .NewMetricPrometheusContext ("port" , "create" )
408
+
403
409
port , err := ports .Create (s .networkClient , portCreateOpts ).Extract ()
404
- if err != nil {
410
+ if mc . ObserveRequest ( err ) != nil {
405
411
record .Warnf (eventObject , "FailedCreatePort" , "Failed to create port %s: %v" , portName , err )
406
412
return nil , err
407
413
}
@@ -431,8 +437,10 @@ func (s *Service) getOrCreateTrunk(eventObject runtime.Object, trunkName, portID
431
437
Name : trunkName ,
432
438
PortID : portID ,
433
439
}
440
+ mc := metrics .NewMetricPrometheusContext ("trunk" , "create" )
441
+
434
442
trunk , err := trunks .Create (s .networkClient , trunkCreateOpts ).Extract ()
435
- if err != nil {
443
+ if mc . ObserveRequest ( err ) != nil {
436
444
record .Warnf (eventObject , "FailedCreateTrunk" , "Failed to create trunk %s: %v" , trunkName , err )
437
445
return nil , err
438
446
}
@@ -442,10 +450,11 @@ func (s *Service) getOrCreateTrunk(eventObject runtime.Object, trunkName, portID
442
450
}
443
451
444
452
func (s * Service ) replaceAllAttributesTags (eventObject runtime.Object , trunkID string , tags []string ) error {
453
+ mc := metrics .NewMetricPrometheusContext ("trunk" , "update" )
445
454
_ , err := attributestags .ReplaceAll (s .networkClient , "trunks" , trunkID , attributestags.ReplaceAllOpts {
446
455
Tags : tags ,
447
456
}).Extract ()
448
- if err != nil {
457
+ if mc . ObserveRequest ( err ) != nil {
449
458
record .Warnf (eventObject , "FailedReplaceAllAttributesTags" , "Failed to replace all attributestags, trunk %s: %v" , trunkID , err )
450
459
return err
451
460
}
@@ -488,8 +497,9 @@ func (s *Service) AssociateFloatingIP(instanceID, floatingIP string) error {
488
497
opts := floatingips.AssociateOpts {
489
498
FloatingIP : floatingIP ,
490
499
}
500
+ mc := metrics .NewMetricPrometheusContext ("floating_ip" , "update" )
491
501
err := floatingips .AssociateInstance (s .computeClient , instanceID , opts ).ExtractErr ()
492
- if err != nil {
502
+ if mc . ObserveRequest ( err ) != nil {
493
503
return err
494
504
}
495
505
return nil
@@ -551,8 +561,9 @@ func (s *Service) deletePort(eventObject runtime.Object, portID string) error {
551
561
}
552
562
553
563
err = util .PollImmediate (RetryIntervalPortDelete , TimeoutPortDelete , func () (bool , error ) {
564
+ mc := metrics .NewMetricPrometheusContext ("port" , "delete" )
554
565
err := ports .Delete (s .networkClient , port .ID ).ExtractErr ()
555
- if err != nil {
566
+ if mc . ObserveRequest ( err ) != nil {
556
567
if capoerrors .IsRetryable (err ) {
557
568
return false , nil
558
569
}
@@ -595,8 +606,9 @@ func (s *Service) deleteAttachInterface(eventObject runtime.Object, instanceID,
595
606
return nil
596
607
}
597
608
609
+ mc := metrics .NewMetricPrometheusContext ("router_interface" , "delete" )
598
610
err = attachinterfaces .Delete (s .computeClient , instanceID , portID ).ExtractErr ()
599
- if err != nil {
611
+ if mc . ObserveRequest ( err ) != nil {
600
612
if capoerrors .IsNotFound (err ) {
601
613
return nil
602
614
}
@@ -673,8 +685,9 @@ func (s *Service) deleteInstance(eventObject runtime.Object, instanceID string)
673
685
if instance == nil || instance .ID == "" {
674
686
return nil
675
687
}
676
-
677
- if err = servers .Delete (s .computeClient , instance .ID ).ExtractErr (); err != nil {
688
+ mc := metrics .NewMetricPrometheusContext ("server" , "delete" )
689
+ err = servers .Delete (s .computeClient , instance .ID ).ExtractErr ()
690
+ if mc .ObserveRequest (err ) != nil {
678
691
record .Warnf (eventObject , "FailedDeleteServer" , "Failed to deleted server %s with id %s: %v" , instance .Name , instance .ID , err )
679
692
return err
680
693
}
0 commit comments