PushMeteringData

更新时间:

调用PushMeteringData推送计量数据。

  • 目前不支持子账号调用该接口。
  • 请求参数全部需要URLEncode编码。
  • 云市场对每个InstanceId的请求限制为60秒一次,每次请求支持写入的计量数据为100条。
  • 不支持跨商品的InstanceId批量推送,批量推送时请确保所有InstanceId来自同一个商品。
  • 按小时出账的商品,截止出账时间是下一个小时,计量数据必须按时推送过来。比如推送的计量数据是8:10-08:20, 则必须在9.59之前将计量数据推送过来,否则将不会出账。按天出账规则类似,即第二天必须要把前一天的数据推送过来,否则不会出账。

    -注意参数中Metering字段要严格按照文档中的示例来提交,以往发现很多提交过来的不是一个JSON字段,再提交之前可以先用JSON格式化工具检查一下,否则接口调用会失败, 一定要仔细检查。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称

类型

是否必选

示例值

描述

Action String PushMeteringData

系统规定参数。取值:PushMeteringData

Metering String [{"InstanceId":"1000001","StartTime":"100000000","EndTime":"100000010","Entities":[{"Key":"PeriodMin","Value":"96","meteringAssit":"cmapi00060317-PeriodMin-4"}]}]

示例中的参数说明如下:

  • InstanceId:云市场实例ID 。参数类型为String。
  • StartTime:计量开始时间。单位秒(格式为Unix时间戳, 如1723771200)。参数类型为Long。
  • EndTime:计量结束时间。单位秒(格式为Unix时间戳,如1723771800)。参数类型为Long。
  • Entities:计量实体对象。参数类型为List<Map>。
    • Key:计量项属性名称。参数类型为String。
      • Frequency:使用次数(次)。
      • Period:使用小时时长(秒)。
    • meteringAssit: 多维度计量项Id。参数类型为String, 在商品发布的后台可以看到这个计费项id。Frequency等计费项有1个或多个都会有这个值,新发布的品推送计量时需要将这个参数传递过来。

      注意:请求参数中的时长单位为秒,而计费单位为小时,因此计费时会转换为小时,如推送19:00-20:00的用量1800,计费价格为1元/小时,按小时出账该时段费用为1800 / 3600 x 1 = 0.5元, 费用如为小数,保留两位小数,超过两位舍弃。

      • Storage:使用存储空间(Byte)。

        注意:请求参数中的单位为Byte,而计费单位为MB,因此计费时会转换为MB,如推送19:00-20:00的用量524288,计费价格为1元/MB,按小时出账该时段费用为524288 / 1024 / 1024 x 1 = 0.5元,费用如为小数,保留两位小数,超过两位舍弃。

      • NetworkOut:上行使用流量(Bit)。

        注意:请求参数中的单位为Bit,而计费单位为Mb,因此计费时会转换为Mb,如推送19:00-20:00的用量524288,计费价格为1元/Mb,按小时出账该时段费用为524288 / 1024 / 1024 x 1 = 0.5元,费用如为小数,保留两位小数,超过两位舍弃。

      • NetworkIn:下行使用流量(Bit)。

        注意:请求参数中的单位为Bit,而计费单位为Mb,因此计费时会转换为Mb,如推送19:00-20:00的用量524288,计费价格为1元/Mb,按小时出账该时段费用为524288 / 1024 / 1024 x 1 = 0.5元,费用如为小数,保留两位小数,超过两位舍弃。

      • Character:字符数(个)。
      • DailyActiveUser:日活跃用户数(DAU)。
      • PeriodMin:使用分钟时长(分钟)。
      • VirtualCpu:虚拟CPU核数。

        -Unit: Unit(个)。

        -Memory: Memory(GB)

    • Value:计量数值(取值 >= 0)。参数类型为Integer。

说明

  • 如果商品设置为实时出账,StartTime和 EndTime为任意时间宽度均可以,但是EndTime一定要大于StartTime 。
  • 如果商品设置为非实时出账(即选择按小时、按天、按月等),StartTime和EndTime 的间隔必须大于5分钟。
  • 批量推送计量数据时,“InstanceId”属性必须为同一个商品所产生的实例,目前不支持多个商品的实例同时推送。
  • 新支持了多维度的计量能力,即对于上述的Frequency(次)、Period(使用时长)、PeriodMin等这些计费项在发布商品的时候可以支持多个,比如一个商品中可以有多个PeriodMin计费项,每个PeriodMin计费项会生成一个唯一的ID, 用户标识计费项,这个计费项是在发布商品的时候生成的,格式如(cmapi00060317-PeriodMin-3, cmapi00060317-PeriodMin-4)。在推送计量的时候需要将上面的ID传递过来,以便进行相应的计费扣减。新发布品推送的计量数据格式如下所示:{"InstanceId":"1000001","StartTime":"100000000","EndTime":"100000010","Entities":[{"Key":"PeriodMin","Value":"96","meteringAssit":"cmapi00060317-PeriodMin-4"}}]

返回数据

名称

类型

示例值

描述

Success Boolean true

成功状态标识

RequestId String 6EF60BEC-0242-43AF-BB20-270359FB54A7

请求ID

示例

请求示例

http(s)://market.aliyuncs.com/?Action=PushMeteringData
&Metering=%5B%7B%22InstanceId%22%3A%221000001%22%2C%22StartTime%22%3A%22100000000%22%2C%22EndTime%22%3A%22100000010%22%2C%22Entities%22%3A%5B%7B%22Key%22%3A%22Frequency%22%2C%22Value%22%3A%2296%22%7D%5D%7D%5D
&<公共请求参数>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<PushMeteringDataResponse>
<RequestId>6EF60BEC-0242-43AF-BB20-270359FB54A7</RequestId>
<Success>true</Success>
</PushMeteringDataResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "6EF60BEC-0242-43AF-BB20-270359FB54A7",
  "Success" : "true"
}

错误码

HttpCode

错误码

错误信息

描述

400 Invalid.Parameter.Metering meteringAssit is empty meteringAssit 为空
500 UnknownError An error occurred while processing your request. 未知错误。
500 Service.Flow.Control The rate throttling threshold has been exceeded. 请求超过流控限制。
500 Invalid.Parameter The specified parameter is invalid. 请求参数错误。
500 Invalid.Parameter.Instance The specified Instance parameter is invalid. Instance参数请求错误。
500 Invalid.Parameter.Metering The specified Metering parameter is invalid. Metering参数请求错误。
500 Metering.Data.Exceeded The number of metering entities must not exceed 100. Metering entities不能超过100个。
500 Permission.Denied You are not authorized to call the API operation. Contact the API developer to add your account to the API user whitelist. 没有调用权限,请联系接口负责人添加白名单。
500 UnknownError execute oms post error 执行oms post相关接口出错

访问错误中心查看更多错误码。