
# 获取资产属性聚合值
#### 功能介绍
获取资产属性聚合值
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTAnalytics&api=ShowMetricValue)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
POST /v1/{project_id}/assets/{asset_id}/metrics/query
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID 最大长度：**128** |
| asset_id   | 是    | String | 资产ID 最大长度：**256** |
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                     |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 租户Token 最大长度：**65535** |
   
表3请求Body参数 
| 参数        | 是否必选 | 参数类型                                                                                             | 描述                                               |
|:---|:---|:---|:---|
| type      | 是    | String                                                                                           | 查询类型，经过转换计算的序列值（transform）、经过聚合计算的序列值（aggregate） |
| transform | 否    | [TransformMetricsRequest] object | 查询经过转换计算的序列值定义                                   |
| aggregate | 否    | [AggregateMetricsRequest] object | 查询经过聚合计算的序列值定义                                   |
   
 表4TransformMetricsRequest 
| 参数              | 是否必选 | 参数类型                                                                                             | 描述                                                                                                                   |
|:---|:---|:---|:---|
| time_span       | 否    | [TimeSpanDT] object                           | 起止时间                                                                                                                 |
| tags            | 否    | map\<string, object\>                                                                            | 对property按指定tags标签进行过滤查询，填入资产标签属性的属性名与属性值，不可为空，例如 {"tagPropertyA": "id0001"}；注意，标签过滤只对打上标签时刻之后的数据生效，打标签之前的数据不能通过标签过滤 |
| property_filter | 否    | Array of [PropertyFilter] objects         | 属性过滤器，最多5个                                                                                                           |
| metrics         | 是    | Array of [DTTransformMetrics] objects | 转换查询指标列表，对资产属性进行转换查询得到指标                                                                                             |
| limit           | 否    | Integer                                                                                          | 返回值个数限制，最多2000个 最大值：**2000** 缺省值：**2000**                                                                            |
   
 表5DTTransformMetrics 
| 参数          | 是否必选 | 参数类型                                                                               | 描述                                       |
|:---|:---|:---|:---|
| inputs      | 是    | Array of [MetricInput] objects | 定义指标计算查询的输入资产属性列表                        |
| expression  | 是    | String                                                                             | 指标表达式,最多64个字符 最小长度：**1** 最大长度：**64**     |
| metric_name | 是    | String                                                                             | 指标名，指标计算查询的输出指标名称 最小长度：**1** 最大长度：**64** |
   
 表6AggregateMetricsRequest 
| 参数              | 是否必选 | 参数类型                                                                                             | 描述                                                                                                                   |
|:---|:---|:---|:---|
| time_span       | 否    | [TimeSpanDT] object                           | 起止时间                                                                                                                 |
| interval        | 是    | String                                                                                           | 聚合时间间隔，正则："\^\[1-9\]\[0-9\]\*\[dhms\]$"，示例："1d\|1h\|10m\|10s" 最小长度：**1** 最大长度：**32**                                 |
| offset          | 否    | String                                                                                           | 聚合时间偏移量，需要小于interval，正则： "\^\[1-9\]\[0-9\]\*\[hms\]$"，示例： "1h\|10m\|10s" 最小长度：**1** 最大长度：**32**                      |
| tags            | 否    | map\<string, object\>                                                                            | 对property按指定tags标签进行过滤查询，填入资产标签属性的属性名与属性值，不可为空，例如 {"tagPropertyA": "id0001"}；注意，标签过滤只对打上标签时刻之后的数据生效，打标签之前的数据不能通过标签过滤 |
| property_filter | 否    | Array of [PropertyFilter] objects         | 属性过滤器，最多5个                                                                                                           |
| metrics         | 是    | Array of [DTAggregateMetrics] objects | 聚合查询指标列表，对资产属性进行聚合查询得到指标                                                                                             |
| limit           | 否    | Integer                                                                                          | 返回值个数限制，最多2000个 最大值：**2000** 缺省值：**2000**                                                                            |
   
 表7TimeSpanDT 
| 参数   | 是否必选 | 参数类型   | 描述                                                                                    |
|:---|:---|:---|:---|
| from | 否    | String | 起始时间, 使用UTC时间，格式：yyyy-MM-dd'T'HH:mm:ss.SSS'Z',示例：2021-02-01T00:00:00.123Z 最大长度：**64** |
| to   | 否    | String | 结束时间，使用UTC时间，格式：yyyy-MM-dd'T'HH:mm:ss.SSS'Z',示例：2021-02-01T00:00:00.123Z 最大长度：**64**  |
   
 表8PropertyFilter 
| 参数            | 是否必选 | 参数类型   | 描述                                                         |
|:---|:---|:---|:---|
| property_name | 是    | String | 过滤属性名称，正则："\^\[a-zA-Z0-9_\]{1,64}$" 最小长度：**1** 最大长度：**64** |
| operator      | 是    | String | 过滤操作方式,当前仅支持"=" 最小长度：**1** 最大长度：**64**                     |
| value         | 是    | Object | 过滤属性值                                                      |
   
 表9DTAggregateMetrics 
| 参数          | 是否必选 | 参数类型                                                                               | 描述                                       |
|:---|:---|:---|:---|
| inputs      | 是    | Array of [MetricInput] objects | 定义指标计算查询的输入资产属性列表                        |
| expression  | 是    | String                                                                             | 指标表达式,最多64个字符 最小长度：**1** 最大长度：**64**     |
| metric_name | 是    | String                                                                             | 指标名，指标计算查询的输出指标名称 最小长度：**1** 最大长度：**64** |
   
 表10MetricInput 
| 参数            | 是否必选 | 参数类型   | 描述                                  |
|:---|:---|:---|:---|
| name          | 是    | String | 指标计算表达式的入参名称 最小长度：**1** 最大长度：**32** |
| property_name | 是    | String | 入参所对应的资产属性名称 最小长度：**1** 最大长度：**64** |
   
#### 响应参数
**状态码： 200**
表11响应Body参数 
| 参数         | 参数类型                                                                                | 描述                                                                       |
|:---|:---|:---|
| timestamps | Array of strings                                                                    | 时间序列,使用UTC时间，格式：yyyy-MM-dd'T'HH:mm:ss.SSS'Z',示例：2021-02-01T00:00:00.123Z |
| metrics    | Array of [MetricValue] objects | 指标计算结果列表                                                                 |
   
 表12MetricValue 
| 参数          | 参数类型             | 描述              |
|:---|:---|:---|
| metric_name | String           | 指标名称            |
| values      | Array of objects | 计算结果，示例：\[1,2\] |
   
#### 请求示例
```
{
  "type" : "transform|aggregate",
  "transform" : {
    "time_span" : {
      "from" : "2021-02-01T00:00:00.123Z",
      "to" : "2021-02-05T20:00:00.100Z"
    },
    "tags" : {
      "tagPropertyA" : "IA2006300"
    },
    "property_filter" : [ {
      "property_name" : "string",
      "operator" : "=",
      "value" : 1
    } ],
    "metrics" : [ {
      "inputs" : [ {
        "name" : "string",
        "property_name" : "string"
      } ],
      "expression" : "floor(pp6)+pp7",
      "metric_name" : "string"
    } ],
    "limit" : 2000
  },
  "aggregate" : {
    "time_span" : {
      "from" : "2021-02-01T00:00:00.123Z",
      "to" : "2021-02-05T20:00:00.100Z"
    },
    "interval" : "1d|1h|10m|10s",
    "offset" : "1h|10m|10s",
    "tags" : {
      "tagPropertyA" : "IA2006300"
    },
    "property_filter" : [ {
      "property_name" : "string",
      "operator" : "=",
      "value" : 1
    } ],
    "metrics" : [ {
      "inputs" : [ {
        "name" : "string",
        "property_name" : "string"
      } ],
      "expression" : "log(10,a)+1",
      "metric_name" : "string"
    } ],
    "limit" : 2000
  }
}
```
#### 响应示例
**状态码： 200**
OK
```
{
  "timestamps" : [ "string" ],
  "metrics" : [ {
    "metric_name" : "string",
    "values" : [ 1, 2 ]
  } ]
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | OK                    |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 403 | Forbidden             |
| 404 | Not Found             |
| 409 | Conflict              |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iotanalytics/ErrorCode.html)。
