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  }