github.com/huaweicloud/golangsdk@v0.0.0-20210831081626-d823fe11ceba/openstack/ces/v1/metricdata/results.go (about) 1 package metricdata 2 3 import ( 4 "github.com/huaweicloud/golangsdk" 5 ) 6 7 type MetricData struct { 8 // Specifies the namespace in service. 9 Namespace string `json:"namespace"` 10 11 // The value can be a string of 1 to 64 characters 12 // and must start with a letter and contain only uppercase 13 // letters, lowercase letters, digits, and underscores. 14 MetricName string `json:"metric_name"` 15 16 //Specifies the list of the metric dimensions. 17 Dimensions []Dimension `json:"dimensions"` 18 Datapoints []Data `json:"datapoints"` 19 20 // Specifies the metric unit. 21 Unit string `json:"unit"` 22 } 23 24 type Dimension struct { 25 Name string `json:"name"` 26 Value string `json:"value"` 27 } 28 29 type Data struct { 30 Average float64 `json:"average"` 31 Timestamp int `json:"timestamp"` 32 } 33 34 type MetricDatasResult struct { 35 golangsdk.Result 36 } 37 38 // ExtractMetricDatas is a function that accepts a result and extracts metric datas. 39 func (r MetricDatasResult) ExtractMetricDatas() ([]MetricData, error) { 40 var s struct { 41 // Specifies the metric data. 42 MetricDatas []MetricData `json:"metrics"` 43 } 44 err := r.ExtractInto(&s) 45 return s.MetricDatas, err 46 } 47 48 type Datapoint struct { 49 // 指标值,该字段名称与请求参数中filter使用的查询值相同。 50 Average float64 `json:"average"` 51 // 指标采集时间。 52 Timestamp int `json:"timestamp"` 53 // 指标单位 54 Unit string `json:"unit,omitempty"` 55 } 56 57 type EventDataInfo struct { 58 // 事件类型,例如instance_host_info。 59 Type string `json:"type"` 60 // 事件上报时间。 61 Timestamp int `json:"timestamp"` 62 // 主机配置信息。 63 Value string `json:"value"` 64 } 65 66 // This is a auto create Response Object 67 type EventData struct { 68 Datapoints []EventDataInfo `json:"datapoints"` 69 } 70 71 type Metricdata struct { 72 // 指标数据列表。由于查询数据时,云监控会根据所选择的聚合粒度向前取整from参数,所以datapoints中包含的数据点有可能会多于预期。 73 Datapoints []Datapoint `json:"datapoints"` 74 // 指标名称,例如弹性云服务器监控指标中的cpu_util。 75 MetricName string `json:"metric_name"` 76 } 77 78 type AddMetricDataResult struct { 79 golangsdk.ErrResult 80 } 81 82 type GetEventDataResult struct { 83 golangsdk.Result 84 } 85 86 type GetResult struct { 87 golangsdk.Result 88 } 89 90 func (r GetEventDataResult) Extract() (*EventData, error) { 91 var s *EventData 92 err := r.ExtractInto(&s) 93 return s, err 94 } 95 96 func (r GetResult) Extract() (*Metricdata, error) { 97 var s *Metricdata 98 err := r.ExtractInto(&s) 99 return s, err 100 }