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