github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/icd/icdv4/autoscaling/main.go (about) 1 package main 2 3 import ( 4 "flag" 5 "log" 6 "os" 7 8 "github.com/IBM-Cloud/bluemix-go/api/icd/icdv4" 9 "github.com/IBM-Cloud/bluemix-go/session" 10 "github.com/IBM-Cloud/bluemix-go/trace" 11 ) 12 13 func main() { 14 15 var icdID, groupID string 16 flag.StringVar(&icdID, "icdID", "", "CRN of the IBM Cloud Database service instance") 17 flag.Parse() 18 flag.StringVar(&groupID, "icdID", "", "CRN of the IBM Cloud Database service instance") 19 flag.Parse() 20 21 if icdID == "" || groupID == "" { 22 flag.Usage() 23 os.Exit(1) 24 } 25 autoScaleType := "memory" 26 trace.Logger = trace.NewLogger("true") 27 sess, err := session.New() 28 if err != nil { 29 log.Fatal(err) 30 } 31 32 icdClient, err := icdv4.New(sess) 33 if err != nil { 34 log.Fatal(err) 35 } 36 autoScalingAPI := icdClient.AutoScaling() 37 param := icdv4.AutoscalingSetGroup{} 38 memoryReq := icdv4.ASGBody{ 39 Scalers: icdv4.ScalersBody{ 40 IO: &icdv4.IOBody{ 41 Enabled: true, 42 AbovePercent: 35, 43 OverPeriod: "15m", 44 }, 45 }, 46 Rate: icdv4.RateBody{ 47 IncreasePercent: 10, 48 LimitMBPerMember: 5000, 49 PeriodSeconds: 900, 50 Units: "mb", 51 }, 52 } 53 if autoScaleType == "memory" { 54 param.Autoscaling.Memory = &memoryReq 55 } 56 57 setgroup, err := autoScalingAPI.SetAutoScaling(icdID, groupID, param) 58 group, err := autoScalingAPI.GetAutoScaling(icdID, groupID) 59 60 if err != nil { 61 log.Fatal(err) 62 } 63 log.Printf("AutoScaling :%+v", group) 64 log.Printf("AutoScaling :%+v", setgroup) 65 66 }