# 查询监控数据
#### 功能介绍
该接口用于查询指定时间范围内指标的监控数据，可以通过参数指定需要查询的数据维度，数据周期等。
#### URI
POST /v1/{project_id}/ams/metricdata?fillValue=xx
参数说明请参见[表1]。
 表1参数说明 
| 参数        | 是否必选 | 参数类型 | 取值范围              | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|:---|
| project_id | 是    | String                       | -                 | 租户从IAM申请到的projectid，一般为32位字符串。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| fillValue    | 否     | String                        | -1、0、null、average | 用于对查询到的监控数据进行断点插值，默认值为-1。 - -1：断点处使用-1进行表示。  - 0 ：断点处使用0进行表示。  - null：断点处使用null进行表示。  - average：断点处使用前后邻近的有效数据的平均值进行表示，如果不存在有效数据则使用null进行表示。   |
   
#### 请求消息
**请求参数**
请求参数如[表2]所示。
 表2请求参数 
| 参数         | 是否必选 | 参数类型 | 取值范围                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 描述                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|:---|
| metrics    | 是    | Array                  | JSON数组大小不超过20                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 指标列表                                                                                                                                                                                                                                                     |
| namespace   | 是     | String                | PAAS.CONTAINER、PAAS.NODE、PAAS.SLA、PAAS.AGGR、CUSTOMMETRICS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 指标命名空间                                                                                                                                                                                                                                                   |
| metricName | 是    | String               | 名称长度为1\~255个字符                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 指标名称                                                                                                                                                                                                                                                     |
| dimensions | 是    | Array                  | 数组不能为空，同时数组中任何一个dimension对象name和value属性的值也不能为空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 指标维度 dimensions.name：维度名称，如应用名称为appName。 dimensions.value：维度取值，如应用名称具体的值。                          |
| period      | 是    | Integer               | 枚举值，取值范围： - 60，1分钟粒度  - 300，5分钟粒度  - 900，15分钟粒度  - 3600，1小时粒度   | 监控数据粒度。                                                                                                                                                                                                                                                  |
| timerange  | 是     | String                | 格式：开始时间UTC毫秒.结束时间UTC毫秒.时间范围分钟数。开始和结束时间为-1时，表示最近N分钟，N为时间范围分钟取值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 查询时间段，如最近五分钟可以表示为-1.-1.5，固定的时间范围（2017-08-01 08:00:00到2017-08-02 08:00:00）可以表示为1501545600000.1501632000000.1440。 timerange/period≤1440，在计算时，timerange和period需换算为相同的单位。 |
| statistics | 是    | Array                 | maximum，minimum，sum，average，sampleCount                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 统计方式                                                                                                                                                                                                                                                     |
   
**Header说明**
请求消息头（Header）如[表3]所示。
 表3Header说明 
| 名称               | 是否必选 | 说明                     |
|:---|:---|:---|
| X-Auth-Token | 是     | 从IAM服务获取的用户Token。    |
| Content-Type    | 是     | 指定类型为application/json。 |
   
**请求示例**
```
{ 
    "metrics": [ 
        { 
            "namespace": "abc", 
            "metricName": "def", 
            "dimensions": [ 
                { 
                    "name": "instance_id", 
                    "value": "demo1" 
                } 
            ] 
        } 
    ], 
    "period": 60, 
    "timerange": "-1.-1.5",// 最近5分钟
      "statistics": [ 
        "maximum", 
        "minimum", 
        "sum" 
    ] 
}
```
#### 响应消息
**响应参数**
响应参数如[表4]所示。
 表4响应参数 
| 参数名称        | 类型     | 描述      |
|:---|:---|:---|
| errorCode   | String | 响应码。    |
| errorMessage | String                  | 响应信息描述。 |
| metrics     | Object | -       |
   
**响应示例**
```
{ 
    "errorCode": "SVCSTG.AMS.2000", 
    "errorMessage": "success", 
    "metrics": [{ 
      "metric": { 
        "namespace": "abc", 
        "metricName": "def", 
        "dimensions": [{ 
          "name": "ghi", 
          "value": "lmn" 
        }] 
      }, 
      "dataPoints": [{ 
        "timestamp": 1467892800000, 
        "unit": "Percent", 
        "statistics": [{ 
          "statistic": "maximum", 
          "value": 23
        }] 
      }] 
    }] 
}
```
#### 状态码
- 正常 状态码如[表5]所示。
   表5状态码 
  | 状态码 | 编码  | 描述         |
  |:---|:---|:---|
  | 200 | OK | 请求响应成功。 |
     
  

- 异常 状态码如[表6]所示。更多状态码请见[状态码](https://support.huaweicloud.com/api-aom/aom_04_0021.html)。
   表6状态码 
  | 状态码 | 编码                    | 描述                                                                                                                                                                |
  |:---|:---|:---|
  | 400   | BadRequest        | 非法请求。 建议直接修改该请求，不要重试该请求。                                                           |
  | 401 | Unauthorized         | 在客户端提供认证信息后，返回该状态码，表明服务端指出客户端所提供的认证信息不正确或非法。                                                                                                                 |
  | 403 | Forbidden          | 请求被拒绝访问。 返回该状态码，表明请求能够到达服务端，且服务端能够理解用户请求，但是拒绝做更多的事情，因为该请求被设置为拒绝访问，建议直接修改该请求，不要重试该请求。 |
  | 500 | InternalServerError | 表明服务端能被请求访问到，但是不能理解用户的请求。                                                                                                                                    |
  | 503 | ServiceUnavailable   | 被请求的服务无效。 建议直接修改该请求，不要重试该请求。                                                    |
     
  
 
#### 错误码
表7错误码 
| 错误码                 | 错误信息                                                      | 处理措施            |
|:---|:---|:---|
| SVCSTG_AMS_4000101   | Projectid is left blank.                                | 请检查对应的参数是否符合要求。 |
| SVCSTG_AMS_4000102  | The metric data parameter is null.                      | 请检查对应的参数是否符合要求。    |
| SVCSTG_AMS_4000103 | Invalid period.                                          | 请检查对应的参数是否符合要求。    |
| SVCSTG_AMS_4000104   | Invalid statistics.                                       | 请检查对应的参数是否符合要求。   |
| SVCSTG_AMS_4000105  | Invalid metrics.                                        | 请检查对应的参数是否符合要求。   |
| SVCSTG_AMS_4000106  | Invalid time range.                                       | 请检查对应的参数是否符合要求。  |
| SVCSTG_AMS_4000107   | The number of data points in a time range exceeds 1440. | 请检查对应的参数是否符合要求。  |
| SVCSTG_AMS_4000110   | Invalid fillValue.                                       | 请检查对应的参数是否符合要求。  |
| SVCSTG_AMS_5000000    | Internal server error.                                   | 请联系技术支持工程师解决。    |
   
