services/eci/describe_multi_container_group_metric.go (369 lines of code) (raw):

//Licensed under the Apache License, Version 2.0 (the "License"); //you may not use this file except in compliance with the License. //You may obtain a copy of the License at // //http://www.apache.org/licenses/LICENSE-2.0 // //Unless required by applicable law or agreed to in writing, software //distributed under the License is distributed on an "AS IS" BASIS, //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //See the License for the specific language governing permissions and //limitations under the License. // // Code generated by Alibaba Cloud SDK Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package eci import ( "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests" "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses" ) // DescribeMultiContainerGroupMetric invokes the eci.DescribeMultiContainerGroupMetric API synchronously // api document: https://help.aliyun.com/api/eci/describemulticontainergroupmetric.html func (client *Client) DescribeMultiContainerGroupMetric(request *DescribeMultiContainerGroupMetricRequest) (response *DescribeMultiContainerGroupMetricResponse, err error) { response = CreateDescribeMultiContainerGroupMetricResponse() err = client.DoAction(request, response) return } // DescribeMultiContainerGroupMetricWithChan invokes the eci.DescribeMultiContainerGroupMetric API asynchronously // api document: https://help.aliyun.com/api/eci/describemulticontainergroupmetric.html // asynchronous document: https://help.aliyun.com/document_detail/66220.html func (client *Client) DescribeMultiContainerGroupMetricWithChan(request *DescribeMultiContainerGroupMetricRequest) (<-chan *DescribeMultiContainerGroupMetricResponse, <-chan error) { responseChan := make(chan *DescribeMultiContainerGroupMetricResponse, 1) errChan := make(chan error, 1) err := client.AddAsyncTask(func() { defer close(responseChan) defer close(errChan) response, err := client.DescribeMultiContainerGroupMetric(request) if err != nil { errChan <- err } else { responseChan <- response } }) if err != nil { errChan <- err close(responseChan) close(errChan) } return responseChan, errChan } // DescribeMultiContainerGroupMetricWithCallback invokes the eci.DescribeMultiContainerGroupMetric API asynchronously // api document: https://help.aliyun.com/api/eci/describemulticontainergroupmetric.html // asynchronous document: https://help.aliyun.com/document_detail/66220.html func (client *Client) DescribeMultiContainerGroupMetricWithCallback(request *DescribeMultiContainerGroupMetricRequest, callback func(response *DescribeMultiContainerGroupMetricResponse, err error)) <-chan int { result := make(chan int, 1) err := client.AddAsyncTask(func() { var response *DescribeMultiContainerGroupMetricResponse var err error defer close(result) response, err = client.DescribeMultiContainerGroupMetric(request) callback(response, err) result <- 1 }) if err != nil { defer close(result) callback(nil, err) result <- 0 } return result } // DescribeMultiContainerGroupMetricRequest is the request struct for api DescribeMultiContainerGroupMetric type DescribeMultiContainerGroupMetricRequest struct { *requests.RpcRequest OwnerId requests.Integer `position:"Query" name:"OwnerId"` ResourceOwnerAccount string `position:"Query" name:"ResourceOwnerAccount"` ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"` OwnerAccount string `position:"Query" name:"OwnerAccount"` RegionId string `position:"Query" name:"RegionId"` ContainerGroupIds string `position:"Query" name:"ContainerGroupIds"` ResourceGroupId string `position:"Query" name:"ResourceGroupId"` MetricType string `position:"Query" name:"MetricType"` } // DescribeMultiContainerGroupMetricResponse is the response struct for api DescribeMultiContainerGroupMetric type DescribeMultiContainerGroupMetricResponse struct { *responses.BaseResponse RequestId string `json:"RequestId" xml:"RequestId"` MonitorDatas []DescribeMultiContainerGroupMetricRecord0 `json:"MonitorDatas" xml:"MonitorDatas"` } type DescribeMultiContainerGroupMetricRecord0 struct { ContainerGroupId string `json:"ContainerGroupId" xml:"ContainerGroupId"` Records []DescribeMultiContainerGroupMetricPodStat1 `json:"Records" xml:"Records"` ContainerInfos []DescribeMultiContainerGroupMetricContainerInfo1 `json:"ContainerInfos" xml:"ContainerInfos"` } type DescribeMultiContainerGroupMetricPodStat1 struct { Timestamp string `json:"Timestamp" xml:"Timestamp"` Containers []DescribeMultiContainerGroupMetricContainer2 `json:"Containers" xml:"Containers"` CPU DescribeMultiContainerGroupMetricCPU2 `json:"CPU" xml:"CPU"` Memory DescribeMultiContainerGroupMetricMemory2 `json:"Memory" xml:"Memory"` Network DescribeMultiContainerGroupMetricNetwork2 `json:"Network" xml:"Network"` } type DescribeMultiContainerGroupMetricContainer2 struct { Name string `json:"Name" xml:"Name"` CPU DescribeMultiContainerGroupMetricCPU3 `json:"CPU" xml:"CPU"` Memory DescribeMultiContainerGroupMetricMemory3 `json:"Memory" xml:"Memory"` } type DescribeMultiContainerGroupMetricCPU3 struct { Limit int64 `json:"Limit" xml:"Limit"` Load int64 `json:"Load" xml:"Load"` UsageCoreNanoSeconds int64 `json:"UsageCoreNanoSeconds" xml:"UsageCoreNanoSeconds"` UsageNanoCores int64 `json:"UsageNanoCores" xml:"UsageNanoCores"` } type DescribeMultiContainerGroupMetricMemory3 struct { AvailableBytes int64 `json:"AvailableBytes" xml:"AvailableBytes"` UsageBytes int64 `json:"UsageBytes" xml:"UsageBytes"` Cache int64 `json:"Cache" xml:"Cache"` WorkingSet int64 `json:"WorkingSet" xml:"WorkingSet"` Rss int64 `json:"Rss" xml:"Rss"` } type DescribeMultiContainerGroupMetricCPU2 struct { Limit int64 `json:"Limit" xml:"Limit"` Load int64 `json:"Load" xml:"Load"` UsageCoreNanoSeconds int64 `json:"UsageCoreNanoSeconds" xml:"UsageCoreNanoSeconds"` UsageNanoCores int64 `json:"UsageNanoCores" xml:"UsageNanoCores"` } type DescribeMultiContainerGroupMetricMemory2 struct { AvailableBytes int64 `json:"AvailableBytes" xml:"AvailableBytes"` UsageBytes int64 `json:"UsageBytes" xml:"UsageBytes"` Cache int64 `json:"Cache" xml:"Cache"` WorkingSet int64 `json:"WorkingSet" xml:"WorkingSet"` Rss int64 `json:"Rss" xml:"Rss"` } type DescribeMultiContainerGroupMetricNetwork2 struct { Interfaces []DescribeMultiContainerGroupMetricInterface3 `json:"Interfaces" xml:"Interfaces"` } type DescribeMultiContainerGroupMetricInterface3 struct { TxBytes int64 `json:"TxBytes" xml:"TxBytes"` RxBytes int64 `json:"RxBytes" xml:"RxBytes"` TxErrors int64 `json:"TxErrors" xml:"TxErrors"` RxErrors int64 `json:"RxErrors" xml:"RxErrors"` Name string `json:"Name" xml:"Name"` } type DescribeMultiContainerGroupMetricContainerInfo1 struct { Id string `json:"Id" xml:"Id"` Name string `json:"Name" xml:"Name"` Namespace string `json:"Namespace" xml:"Namespace"` Labels string `json:"Labels" xml:"Labels"` ContainerStats []DescribeMultiContainerGroupMetricContainerStats2 `json:"ContainerStats" xml:"ContainerStats"` Aliases []string `json:"Aliases" xml:"Aliases"` ContainerSpec DescribeMultiContainerGroupMetricContainerSpec2 `json:"ContainerSpec" xml:"ContainerSpec"` } type DescribeMultiContainerGroupMetricContainerStats2 struct { Timestamp string `json:"Timestamp" xml:"Timestamp"` FsStats []DescribeMultiContainerGroupMetricFsStats3 `json:"FsStats" xml:"FsStats"` AcceleratorStats []DescribeMultiContainerGroupMetricAcceleratorStats3 `json:"AcceleratorStats" xml:"AcceleratorStats"` CpuStats DescribeMultiContainerGroupMetricCpuStats3 `json:"CpuStats" xml:"CpuStats"` DiskIoStats DescribeMultiContainerGroupMetricDiskIoStats3 `json:"DiskIoStats" xml:"DiskIoStats"` MemoryStats DescribeMultiContainerGroupMetricMemoryStats3 `json:"MemoryStats" xml:"MemoryStats"` NetworkStats DescribeMultiContainerGroupMetricNetworkStats3 `json:"NetworkStats" xml:"NetworkStats"` TaskStats DescribeMultiContainerGroupMetricTaskStats3 `json:"TaskStats" xml:"TaskStats"` } type DescribeMultiContainerGroupMetricFsStats3 struct { Device string `json:"Device" xml:"Device"` Type string `json:"Type" xml:"Type"` Limit int64 `json:"Limit" xml:"Limit"` Usage int64 `json:"Usage" xml:"Usage"` BaseUsage int64 `json:"BaseUsage" xml:"BaseUsage"` Available int64 `json:"Available" xml:"Available"` HasInodes bool `json:"HasInodes" xml:"HasInodes"` Inodes int64 `json:"Inodes" xml:"Inodes"` InodesFree int64 `json:"InodesFree" xml:"InodesFree"` ReadsCompleted int64 `json:"ReadsCompleted" xml:"ReadsCompleted"` ReadsMerged int64 `json:"ReadsMerged" xml:"ReadsMerged"` SectorsRead int64 `json:"SectorsRead" xml:"SectorsRead"` ReadTime int64 `json:"ReadTime" xml:"ReadTime"` WritesCompleted int64 `json:"WritesCompleted" xml:"WritesCompleted"` WritesMerged int64 `json:"WritesMerged" xml:"WritesMerged"` SectorsWritten int64 `json:"SectorsWritten" xml:"SectorsWritten"` WriteTime int64 `json:"WriteTime" xml:"WriteTime"` IoInProgress int64 `json:"IoInProgress" xml:"IoInProgress"` IoTime int64 `json:"IoTime" xml:"IoTime"` WeightedIoTime int64 `json:"WeightedIoTime" xml:"WeightedIoTime"` } type DescribeMultiContainerGroupMetricAcceleratorStats3 struct { Id string `json:"Id" xml:"Id"` Make string `json:"Make" xml:"Make"` Model string `json:"Model" xml:"Model"` MemoryTotal int64 `json:"MemoryTotal" xml:"MemoryTotal"` MemoryUsed int64 `json:"MemoryUsed" xml:"MemoryUsed"` DutyCycle int64 `json:"DutyCycle" xml:"DutyCycle"` } type DescribeMultiContainerGroupMetricCpuStats3 struct { LoadAverage int64 `json:"LoadAverage" xml:"LoadAverage"` CpuUsage DescribeMultiContainerGroupMetricCpuUsage4 `json:"CpuUsage" xml:"CpuUsage"` CpuCFS DescribeMultiContainerGroupMetricCpuCFS4 `json:"CpuCFS" xml:"CpuCFS"` } type DescribeMultiContainerGroupMetricCpuUsage4 struct { Total int64 `json:"Total" xml:"Total"` User int64 `json:"User" xml:"User"` System int64 `json:"System" xml:"System"` PerCpuUsages []string `json:"PerCpuUsages" xml:"PerCpuUsages"` } type DescribeMultiContainerGroupMetricCpuCFS4 struct { Periods int64 `json:"Periods" xml:"Periods"` ThrottledPeriods int64 `json:"ThrottledPeriods" xml:"ThrottledPeriods"` ThrottledTime int64 `json:"ThrottledTime" xml:"ThrottledTime"` } type DescribeMultiContainerGroupMetricDiskIoStats3 struct { IoServiceBytes []DescribeMultiContainerGroupMetricIoServiceByte4 `json:"IoServiceBytes" xml:"IoServiceBytes"` IoServiced []DescribeMultiContainerGroupMetricIoServiced4 `json:"IoServiced" xml:"IoServiced"` IoQueued []DescribeMultiContainerGroupMetricIoQueued4 `json:"IoQueued" xml:"IoQueued"` Sectors []DescribeMultiContainerGroupMetricSector4 `json:"Sectors" xml:"Sectors"` IoServiceTime []DescribeMultiContainerGroupMetricIoServiceTime4 `json:"IoServiceTime" xml:"IoServiceTime"` IoWaitTime []DescribeMultiContainerGroupMetricIoWaitTime4 `json:"IoWaitTime" xml:"IoWaitTime"` IoMerged []DescribeMultiContainerGroupMetricIoMerged4 `json:"IoMerged" xml:"IoMerged"` IoTime []DescribeMultiContainerGroupMetricIoTime4 `json:"IoTime" xml:"IoTime"` } type DescribeMultiContainerGroupMetricIoServiceByte4 struct { Device string `json:"Device" xml:"Device"` Major int64 `json:"Major" xml:"Major"` Minor int64 `json:"Minor" xml:"Minor"` Stats string `json:"Stats" xml:"Stats"` } type DescribeMultiContainerGroupMetricIoServiced4 struct { Device string `json:"Device" xml:"Device"` Major int64 `json:"Major" xml:"Major"` Minor int64 `json:"Minor" xml:"Minor"` Stats string `json:"Stats" xml:"Stats"` } type DescribeMultiContainerGroupMetricIoQueued4 struct { Device string `json:"Device" xml:"Device"` Major int64 `json:"Major" xml:"Major"` Minor int64 `json:"Minor" xml:"Minor"` Stats string `json:"Stats" xml:"Stats"` } type DescribeMultiContainerGroupMetricSector4 struct { Device string `json:"Device" xml:"Device"` Major int64 `json:"Major" xml:"Major"` Minor int64 `json:"Minor" xml:"Minor"` Stats string `json:"Stats" xml:"Stats"` } type DescribeMultiContainerGroupMetricIoServiceTime4 struct { Device string `json:"Device" xml:"Device"` Major int64 `json:"Major" xml:"Major"` Minor int64 `json:"Minor" xml:"Minor"` Stats string `json:"Stats" xml:"Stats"` } type DescribeMultiContainerGroupMetricIoWaitTime4 struct { Device string `json:"Device" xml:"Device"` Major int64 `json:"Major" xml:"Major"` Minor int64 `json:"Minor" xml:"Minor"` Stats string `json:"Stats" xml:"Stats"` } type DescribeMultiContainerGroupMetricIoMerged4 struct { Device string `json:"Device" xml:"Device"` Major int64 `json:"Major" xml:"Major"` Minor int64 `json:"Minor" xml:"Minor"` Stats string `json:"Stats" xml:"Stats"` } type DescribeMultiContainerGroupMetricIoTime4 struct { Device string `json:"Device" xml:"Device"` Major int64 `json:"Major" xml:"Major"` Minor int64 `json:"Minor" xml:"Minor"` Stats string `json:"Stats" xml:"Stats"` } type DescribeMultiContainerGroupMetricMemoryStats3 struct { Usage int64 `json:"Usage" xml:"Usage"` MaxUsage int64 `json:"MaxUsage" xml:"MaxUsage"` Cache int64 `json:"Cache" xml:"Cache"` Rss int64 `json:"Rss" xml:"Rss"` Swap int64 `json:"Swap" xml:"Swap"` WorkingSet int64 `json:"WorkingSet" xml:"WorkingSet"` FailCnt int64 `json:"FailCnt" xml:"FailCnt"` ContainerData DescribeMultiContainerGroupMetricContainerData4 `json:"ContainerData" xml:"ContainerData"` HierarchicalData DescribeMultiContainerGroupMetricHierarchicalData4 `json:"HierarchicalData" xml:"HierarchicalData"` } type DescribeMultiContainerGroupMetricContainerData4 struct { PgFault int64 `json:"PgFault" xml:"PgFault"` PgmajFault int64 `json:"PgmajFault" xml:"PgmajFault"` } type DescribeMultiContainerGroupMetricHierarchicalData4 struct { PgFault int64 `json:"PgFault" xml:"PgFault"` PgmajFault int64 `json:"PgmajFault" xml:"PgmajFault"` } type DescribeMultiContainerGroupMetricNetworkStats3 struct { Name string `json:"Name" xml:"Name"` RxBytes int64 `json:"RxBytes" xml:"RxBytes"` RxPackets int64 `json:"RxPackets" xml:"RxPackets"` RxErrors int64 `json:"RxErrors" xml:"RxErrors"` RxDropped int64 `json:"RxDropped" xml:"RxDropped"` TxBytes int64 `json:"TxBytes" xml:"TxBytes"` TxPackets int64 `json:"TxPackets" xml:"TxPackets"` TxDropped int64 `json:"TxDropped" xml:"TxDropped"` TxErrors int64 `json:"TxErrors" xml:"TxErrors"` InterfaceStats []DescribeMultiContainerGroupMetricInterfaceStats4 `json:"InterfaceStats" xml:"InterfaceStats"` Tcp DescribeMultiContainerGroupMetricTcp4 `json:"Tcp" xml:"Tcp"` Tcp6 DescribeMultiContainerGroupMetricTcp64 `json:"Tcp6" xml:"Tcp6"` Udp DescribeMultiContainerGroupMetricUdp4 `json:"Udp" xml:"Udp"` Udp6 DescribeMultiContainerGroupMetricUdp64 `json:"Udp6" xml:"Udp6"` } type DescribeMultiContainerGroupMetricInterfaceStats4 struct { Name string `json:"Name" xml:"Name"` RxBytes int64 `json:"RxBytes" xml:"RxBytes"` RxPackets int64 `json:"RxPackets" xml:"RxPackets"` RxErrors int64 `json:"RxErrors" xml:"RxErrors"` RxDropped int64 `json:"RxDropped" xml:"RxDropped"` TxBytes int64 `json:"TxBytes" xml:"TxBytes"` TxPackets int64 `json:"TxPackets" xml:"TxPackets"` TxDropped int64 `json:"TxDropped" xml:"TxDropped"` TxErrors int64 `json:"TxErrors" xml:"TxErrors"` } type DescribeMultiContainerGroupMetricTcp4 struct { Established int64 `json:"Established" xml:"Established"` SynSent int64 `json:"SynSent" xml:"SynSent"` SynRecv int64 `json:"SynRecv" xml:"SynRecv"` FinWait1 int64 `json:"FinWait1" xml:"FinWait1"` FinWait2 int64 `json:"FinWait2" xml:"FinWait2"` TimeWait int64 `json:"TimeWait" xml:"TimeWait"` Close int64 `json:"Close" xml:"Close"` CloseWait int64 `json:"CloseWait" xml:"CloseWait"` LastAck int64 `json:"LastAck" xml:"LastAck"` Listen int64 `json:"Listen" xml:"Listen"` Closing int64 `json:"Closing" xml:"Closing"` } type DescribeMultiContainerGroupMetricTcp64 struct { Established int64 `json:"Established" xml:"Established"` SynSent int64 `json:"SynSent" xml:"SynSent"` SynRecv int64 `json:"SynRecv" xml:"SynRecv"` FinWait1 int64 `json:"FinWait1" xml:"FinWait1"` FinWait2 int64 `json:"FinWait2" xml:"FinWait2"` TimeWait int64 `json:"TimeWait" xml:"TimeWait"` Close int64 `json:"Close" xml:"Close"` CloseWait int64 `json:"CloseWait" xml:"CloseWait"` LastAck int64 `json:"LastAck" xml:"LastAck"` Listen int64 `json:"Listen" xml:"Listen"` Closing int64 `json:"Closing" xml:"Closing"` } type DescribeMultiContainerGroupMetricUdp4 struct { Listen int64 `json:"Listen" xml:"Listen"` Dropped int64 `json:"Dropped" xml:"Dropped"` RxQueued int64 `json:"RxQueued" xml:"RxQueued"` TxQueued int64 `json:"TxQueued" xml:"TxQueued"` } type DescribeMultiContainerGroupMetricUdp64 struct { Listen int64 `json:"Listen" xml:"Listen"` Dropped int64 `json:"Dropped" xml:"Dropped"` RxQueued int64 `json:"RxQueued" xml:"RxQueued"` TxQueued int64 `json:"TxQueued" xml:"TxQueued"` } type DescribeMultiContainerGroupMetricTaskStats3 struct { NrSleeping int64 `json:"NrSleeping" xml:"NrSleeping"` NrRunning int64 `json:"NrRunning" xml:"NrRunning"` NrStopped int64 `json:"NrStopped" xml:"NrStopped"` NrUninterruptible int64 `json:"NrUninterruptible" xml:"NrUninterruptible"` NrIoWait int64 `json:"NrIoWait" xml:"NrIoWait"` } type DescribeMultiContainerGroupMetricContainerSpec2 struct { CreationTime string `json:"CreationTime" xml:"CreationTime"` HasCpu bool `json:"HasCpu" xml:"HasCpu"` HasMemory bool `json:"HasMemory" xml:"HasMemory"` HasNetwork bool `json:"HasNetwork" xml:"HasNetwork"` HasFilesystem bool `json:"HasFilesystem" xml:"HasFilesystem"` HasDiskIo bool `json:"HasDiskIo" xml:"HasDiskIo"` HasCustomMetrics bool `json:"HasCustomMetrics" xml:"HasCustomMetrics"` Image string `json:"Image" xml:"Image"` Labels string `json:"Labels" xml:"Labels"` Envs string `json:"Envs" xml:"Envs"` ContainerCpu DescribeMultiContainerGroupMetricContainerCpu3 `json:"ContainerCpu" xml:"ContainerCpu"` ContainerMemory DescribeMultiContainerGroupMetricContainerMemory3 `json:"ContainerMemory" xml:"ContainerMemory"` } type DescribeMultiContainerGroupMetricContainerCpu3 struct { Limit int64 `json:"Limit" xml:"Limit"` MaxLimit int64 `json:"MaxLimit" xml:"MaxLimit"` Mask string `json:"Mask" xml:"Mask"` Quota int64 `json:"Quota" xml:"Quota"` Period int64 `json:"Period" xml:"Period"` } type DescribeMultiContainerGroupMetricContainerMemory3 struct { Limit int64 `json:"Limit" xml:"Limit"` Reservation int64 `json:"Reservation" xml:"Reservation"` SwapLimit int64 `json:"SwapLimit" xml:"SwapLimit"` } // CreateDescribeMultiContainerGroupMetricRequest creates a request to invoke DescribeMultiContainerGroupMetric API func CreateDescribeMultiContainerGroupMetricRequest() (request *DescribeMultiContainerGroupMetricRequest) { request = &DescribeMultiContainerGroupMetricRequest{ RpcRequest: &requests.RpcRequest{}, } request.InitWithApiInfo("Eci", "2018-08-08", "DescribeMultiContainerGroupMetric", "eci", "openAPI") return } // CreateDescribeMultiContainerGroupMetricResponse creates a response to parse from DescribeMultiContainerGroupMetric response func CreateDescribeMultiContainerGroupMetricResponse() (response *DescribeMultiContainerGroupMetricResponse) { response = &DescribeMultiContainerGroupMetricResponse{ BaseResponse: &responses.BaseResponse{}, } return }