配置向 Google 报告使用情况

如果您为产品选择基于用量的价格,则必须向 Service Control API 报告应用的使用情况。

如需了解 Service Control,请参阅入门指南

准备工作

  • 设置对 Cloud Commerce Partner Procurement API 的访问权限,如 集成应用中所述。
  • 我们建议您使用 Producer Portal 创建服务账号,以便与 Service Control 搭配使用。

(对于基于用量的价格)报告使用情况

创建权益后,您必须使用以下 HTTP GET 请求调用 Partner Procurement API 来检索 usageReportingId

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

响应包含有关权益的信息,格式如下:

{
  "name": "providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID",
  "provider": "YOUR_PARTNER_ID",
  "account": "USER_ACCOUNT_ID",
  "product": "example-messaging-service",
  "plan": "pro",
  "usageReportingId": "USAGE_REPORTING_ID",
  "state": "ENTITLEMENT_ACTIVATION_REQUESTED",
  "updateTime": "...",
  "createTime": "..."
}

要报告使用情况,您必须首先进行 services.check API 调用,以检查服务的配置。在响应中,如果 checkErrors[] 对象为空,请进行 services.report API 调用以发送使用情况报告。

使用情况报告是一个 Service Control API Operation。以下举例说明了 example-messaging-service 的使用情况报告,该报告会发送有关客户正在使用的存储的信息:

POST https://servicecontrol.googleapis.com/v1/services/example-messaging-service.gcpmarketplace.example.com:report
{
  "operations": [{
    "operationId": "1234-example-operation-id-4567",
    "operationName": "Hourly Usage Report",
    "consumerId": "USAGE_REPORTING_ID",
    "startTime": "2019-02-06T12:00:00Z",
    "endTime": "2019-02-06T13:00:00Z",
    "metricValueSets": [{
      "metricName": "example-messaging-service/UsageInGiB",
      "metricValues": [{ "int64Value": "150" }]
    }],
    "userLabels": {
      "cloudmarketplace.googleapis.com/resource_name": "order_history_cache",
      "cloudmarketplace.googleapis.com/container_name": "storefront_prod",
      "environment": "prod",
      "region": "us-west2"
    }
  }]
}

其中:

  • operationId 是服务实例生成的唯一字符串。为 checkreport 操作使用相同的 operationId
  • consumerId 与权益中的 usageReportingId 相同。
  • startTimeendTime 表示 report 操作的总时间间隔的开始时间和结束时间。在大多数情况下,report 操作的 startTime 的值应与上一个 report 操作的 endTime 相同。如果客户的服务在 report 操作的 startTime 之前停用,则 services.check API 调用会在 checkErrors[] 对象中发送错误,客户将不会被收取相应时段的费用。
  • MetricValueSet 包含一个或多个中间时间间隔以及相应的更新指标值。您可以在选择和提交价格模式时定义服务的指标。您可以在 Producer Portal 的技术集成部分查看和引用指标的标识符。
  • userLabels 是用户创建的标签,定义为符合特定语法要求的键值对字符串。这些标签将转发到 Cloud Billing 费用管理工具以进行归因。如需了解与用量标签相关的建议,请参阅用量标签的最佳实践

如果 services.check API 返回以下一个或多个错误,我们建议您停止向客户提供服务,除非错误得到解决:

  • SERVICE_NOT_ACTIVATED
  • BILLING_DISABLED
  • PROJECT_DELETED