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  }