
# 根据标签聚合查询指标
#### 功能介绍
根据标签聚合查询指标
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTAnalytics&api=ListMetrics)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
POST /v1/{project_id}/data-stores/{data_store_id}/metrics/query
表1路径参数 
| 参数            | 是否必选 | 参数类型   | 描述                           |
|:---|:---|:---|:---|
| project_id    | 是    | String | 项目ID 最小长度：**1** 最大长度：**128** |
| data_store_id | 是    | String | 存储ID 最小长度：**1** 最大长度：**64**  |
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 租户Token 最小长度：**1** 最大长度：**65535** |
   
表3请求Body参数 
| 参数        | 是否必选 | 参数类型                                                                               | 描述                          |
|:---|:---|:---|:---|
| type      | 是    | String                                                                             | 查询类型 最小长度：**1** 最大长度：**64** |
| transform | 否    | [TransformMetrics] object | 转换计算定义                      |
| aggregate | 否    | [AggregateMetrics] object | 聚合计算定义                      |
   
 表4TransformMetrics 
| 参数        | 是否必选 | 参数类型                                                                                       | 描述                                                                 |
|:---|:---|:---|:---|
| time_span | 是    | [TimeSpan] object                         | 起止时间范围                                                             |
| tags      | 是    | map\<string, object\>                                                                      | 对property按指定tags标签进行过滤查询，填入设备标签与标签值，不可为空，例如 {"deviceId": "id0001"} |
| metrics   | 是    | Array of [TransformMetric] objects | 查询的测量指标列表                                                          |
| limit     | 否    | Integer                                                                                    | 返回值个数限制 最小值：**1** 最大值：**2000** 缺省值：**100**                         |
   
 表5TransformMetric 
| 参数          | 是否必选 | 参数类型                                                                             | 描述                          |
|:---|:---|:---|:---|
| inputs      | 是    | Array of [InputParam] objects | 声明属性作为表达式参数                 |
| metric_name | 是    | String                                                                           | 指标名称 最小长度：**1** 最大长度：**64** |
| expression  | 是    | String                                                                           | 表达式 最小长度：**0** 最大长度：**64**  |
   
 表6AggregateMetrics 
| 参数        | 是否必选 | 参数类型                                                                                       | 描述                                                                 |
|:---|:---|:---|:---|
| time_span | 是    | [TimeSpan] object                         | 起止时间范围                                                             |
| interval  | 否    | String                                                                                     | 聚合时间间隔, 示例："1d\|1h\|10m\|10s" 最小长度：**1** 最大长度：**32**               |
| offset    | 否    | String                                                                                     | 聚合时间偏移量, 需要小于interval, 示例： "1h\|10m\|10s" 最小长度：**1** 最大长度：**32**   |
| tags      | 是    | map\<string, object\>                                                                      | 对property按指定tags标签进行过滤查询，填入设备标签与标签值，不可为空，例如 {"deviceId": "id0001"} |
| metrics   | 是    | Array of [AggregateMetric] objects | 查询的测量指标列表                                                          |
| limit     | 否    | Integer                                                                                    | 返回值个数限制 最小值：**1** 最大值：**2000** 缺省值：**100**                         |
   
 表7TimeSpan 
| 参数   | 是否必选 | 参数类型   | 描述                          |
|:---|:---|:---|:---|
| from | 是    | String | 起始时间 最小长度：**1** 最大长度：**64** |
| to   | 是    | String | 结束时间 最小长度：**1** 最大长度：**64** |
   
 表8AggregateMetric 
| 参数          | 是否必选 | 参数类型                                                                             | 描述                          |
|:---|:---|:---|:---|
| inputs      | 是    | Array of [InputParam] objects | 声明属性作为表达式参数                 |
| metric_name | 是    | String                                                                           | 指标名称 最小长度：**1** 最大长度：**64** |
| expression  | 是    | String                                                                           | 表达式 最小长度：**0** 最大长度：**64**  |
   
 表9InputParam 
| 参数            | 是否必选 | 参数类型   | 描述   |
|:---|:---|:---|:---|
| name          | 是    | String | 参数名称 |
| property_name | 是    | String | 属性名称 |
   
#### 响应参数
**状态码： 200**
表10响应Body参数 
| 参数         | 参数类型                                                                              | 描述        |
|:---|:---|:---|
| timestamps | Array of strings                                                                  | 时间序列      |
| metrics    | Array of [MetricList] objects | 查询的测量指标列表 |
   
 表11MetricList 
| 参数          | 参数类型             | 描述                               |
|:---|:---|:---|
| metric_name | String           | metric 名称 最小长度：**1** 最大长度：**64** |
| values      | Array of objects | 计算结果                             |
   
**状态码： 400**
表12响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误编码 |
| error_msg  | String | 错误消息 |
   
**状态码： 401**
表13响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误编码 |
| error_msg  | String | 错误消息 |
   
**状态码： 403**
表14响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误编码 |
| error_msg  | String | 错误消息 |
   
**状态码： 500**
表15响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误编码 |
| error_msg  | String | 错误消息 |
   
#### 请求示例
```
{
  "type" : "aggregate",
  "aggregate" : {
    "time_span" : {
      "from" : "2021-02-01T00:00:00.123Z",
      "to" : "2021-02-02T23:59:59.999Z"
    },
    "interval" : "1d",
    "tags" : {
      "deviceId" : "IA2006300"
    },
    "metrics" : [ {
      "inputs" : [ {
        "name" : "x1",
        "property_name" : "prop_1"
      } ],
      "metric_name" : "temperature_avg",
      "expression" : "avg(x1)"
    } ],
    "limit" : 100
  }
}
```
#### 响应示例
**状态码： 200**
OK
```
{
  "timestamps" : [ "2021-02-01T00:00:00.000Z", "2021-02-02T00:00:00.000Z" ],
  "metrics" : [ {
    "metric_name" : "temperature_avg",
    "values" : [ 1, 2 ]
  } ]
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | OK                    |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 403 | Forbidden             |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iotanalytics/ErrorCode.html)。
