open-vault/vendor/github.com/denverdino/aliyungo/ecs/monitoring.go
2020-10-13 16:26:39 -04:00

137 lines
3.6 KiB
Go

package ecs
import (
"github.com/denverdino/aliyungo/common"
"github.com/denverdino/aliyungo/util"
)
type DescribeInstanceMonitorDataArgs struct {
InstanceId string
StartTime util.ISO6801Time
EndTime util.ISO6801Time
Period int //Default 60s
}
//
// You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/datatype&instancemonitordatatype
type InstanceMonitorDataType struct {
InstanceId string
CPU int
IntranetRX int
IntranetTX int
IntranetBandwidth int
InternetRX int
InternetTX int
InternetBandwidth int
IOPSRead int
IOPSWrite int
BPSRead int
BPSWrite int
TimeStamp util.ISO6801Time
}
type DescribeInstanceMonitorDataResponse struct {
common.Response
MonitorData struct {
InstanceMonitorData []InstanceMonitorDataType
}
}
// DescribeInstanceMonitorData describes instance monitoring data
//
// You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/monitor&describeinstancemonitordata
func (client *Client) DescribeInstanceMonitorData(args *DescribeInstanceMonitorDataArgs) (monitorData []InstanceMonitorDataType, err error) {
if args.Period == 0 {
args.Period = 60
}
response := DescribeInstanceMonitorDataResponse{}
err = client.Invoke("DescribeInstanceMonitorData", args, &response)
if err != nil {
return nil, err
}
return response.MonitorData.InstanceMonitorData, err
}
type DescribeEipMonitorDataArgs struct {
AllocationId string
StartTime util.ISO6801Time
EndTime util.ISO6801Time
Period int //Default 60s
}
//
// You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/datatype&eipmonitordatatype
type EipMonitorDataType struct {
EipRX int
EipTX int
EipFlow int
EipBandwidth int
EipPackets int
TimeStamp util.ISO6801Time
}
type DescribeEipMonitorDataResponse struct {
common.Response
EipMonitorDatas struct {
EipMonitorData []EipMonitorDataType
}
}
// DescribeEipMonitorData describes EIP monitoring data
//
// You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/monitor&describeeipmonitordata
func (client *Client) DescribeEipMonitorData(args *DescribeEipMonitorDataArgs) (monitorData []EipMonitorDataType, err error) {
if args.Period == 0 {
args.Period = 60
}
response := DescribeEipMonitorDataResponse{}
err = client.Invoke("DescribeEipMonitorData", args, &response)
if err != nil {
return nil, err
}
return response.EipMonitorDatas.EipMonitorData, err
}
type DescribeDiskMonitorDataArgs struct {
DiskId string
StartTime util.ISO6801Time
EndTime util.ISO6801Time
Period int //Default 60s
}
//
// You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/datatype&diskmonitordatatype
type DiskMonitorDataType struct {
DiskId string
IOPSRead int
IOPSWrite int
IOPSTotal int
BPSRead int
BPSWrite int
BPSTotal int
TimeStamp util.ISO6801Time
}
type DescribeDiskMonitorDataResponse struct {
common.Response
TotalCount int
MonitorData struct {
DiskMonitorData []DiskMonitorDataType
}
}
// DescribeDiskMonitorData describes disk monitoring data
//
// You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/monitor&describediskmonitordata
func (client *Client) DescribeDiskMonitorData(args *DescribeDiskMonitorDataArgs) (monitorData []DiskMonitorDataType, totalCount int, err error) {
if args.Period == 0 {
args.Period = 60
}
response := DescribeDiskMonitorDataResponse{}
err = client.Invoke("DescribeDiskMonitorData", args, &response)
if err != nil {
return nil, 0, err
}
return response.MonitorData.DiskMonitorData, response.TotalCount, err
}