monitoring.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package ecs
  2. import (
  3. "github.com/denverdino/aliyungo/common"
  4. "github.com/denverdino/aliyungo/util"
  5. )
  6. type DescribeInstanceMonitorDataArgs struct {
  7. InstanceId string
  8. StartTime util.ISO6801Time
  9. EndTime util.ISO6801Time
  10. Period int //Default 60s
  11. }
  12. //
  13. // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/datatype&instancemonitordatatype
  14. type InstanceMonitorDataType struct {
  15. InstanceId string
  16. CPU int
  17. IntranetRX int
  18. IntranetTX int
  19. IntranetBandwidth int
  20. InternetRX int
  21. InternetTX int
  22. InternetBandwidth int
  23. IOPSRead int
  24. IOPSWrite int
  25. BPSRead int
  26. BPSWrite int
  27. TimeStamp util.ISO6801Time
  28. }
  29. type DescribeInstanceMonitorDataResponse struct {
  30. common.Response
  31. MonitorData struct {
  32. InstanceMonitorData []InstanceMonitorDataType
  33. }
  34. }
  35. // DescribeInstanceMonitorData describes instance monitoring data
  36. //
  37. // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/monitor&describeinstancemonitordata
  38. func (client *Client) DescribeInstanceMonitorData(args *DescribeInstanceMonitorDataArgs) (monitorData []InstanceMonitorDataType, err error) {
  39. if args.Period == 0 {
  40. args.Period = 60
  41. }
  42. response := DescribeInstanceMonitorDataResponse{}
  43. err = client.Invoke("DescribeInstanceMonitorData", args, &response)
  44. if err != nil {
  45. return nil, err
  46. }
  47. return response.MonitorData.InstanceMonitorData, err
  48. }
  49. type DescribeEipMonitorDataArgs struct {
  50. AllocationId string
  51. StartTime util.ISO6801Time
  52. EndTime util.ISO6801Time
  53. Period int //Default 60s
  54. }
  55. //
  56. // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/datatype&eipmonitordatatype
  57. type EipMonitorDataType struct {
  58. EipRX int
  59. EipTX int
  60. EipFlow int
  61. EipBandwidth int
  62. EipPackets int
  63. TimeStamp util.ISO6801Time
  64. }
  65. type DescribeEipMonitorDataResponse struct {
  66. common.Response
  67. EipMonitorDatas struct {
  68. EipMonitorData []EipMonitorDataType
  69. }
  70. }
  71. // DescribeEipMonitorData describes EIP monitoring data
  72. //
  73. // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/monitor&describeeipmonitordata
  74. func (client *Client) DescribeEipMonitorData(args *DescribeEipMonitorDataArgs) (monitorData []EipMonitorDataType, err error) {
  75. if args.Period == 0 {
  76. args.Period = 60
  77. }
  78. response := DescribeEipMonitorDataResponse{}
  79. err = client.Invoke("DescribeEipMonitorData", args, &response)
  80. if err != nil {
  81. return nil, err
  82. }
  83. return response.EipMonitorDatas.EipMonitorData, err
  84. }
  85. type DescribeDiskMonitorDataArgs struct {
  86. DiskId string
  87. StartTime util.ISO6801Time
  88. EndTime util.ISO6801Time
  89. Period int //Default 60s
  90. }
  91. //
  92. // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/datatype&diskmonitordatatype
  93. type DiskMonitorDataType struct {
  94. DiskId string
  95. IOPSRead int
  96. IOPSWrite int
  97. IOPSTotal int
  98. BPSRead int
  99. BPSWrite int
  100. BPSTotal int
  101. TimeStamp util.ISO6801Time
  102. }
  103. type DescribeDiskMonitorDataResponse struct {
  104. common.Response
  105. TotalCount int
  106. MonitorData struct {
  107. DiskMonitorData []DiskMonitorDataType
  108. }
  109. }
  110. // DescribeDiskMonitorData describes disk monitoring data
  111. //
  112. // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/monitor&describediskmonitordata
  113. func (client *Client) DescribeDiskMonitorData(args *DescribeDiskMonitorDataArgs) (monitorData []DiskMonitorDataType, totalCount int, err error) {
  114. if args.Period == 0 {
  115. args.Period = 60
  116. }
  117. response := DescribeDiskMonitorDataResponse{}
  118. err = client.Invoke("DescribeDiskMonitorData", args, &response)
  119. if err != nil {
  120. return nil, 0, err
  121. }
  122. return response.MonitorData.DiskMonitorData, response.TotalCount, err
  123. }