报告用量的最佳做法

对于按使用量付费的 SaaS 产品,Google Cloud Marketplace 会将使用情况归因于由 usageReportingId 字段指定的单个 Google Cloud 项目。在某些情况下,SaaS 产品可能会在客户组织内广泛共享,并在许多客户项目中使用。为了支持更具体的费用归因,我们建议按用量付费的 SaaS 产品在其用量报告的操作中添加可选的 userLabels 字段。

如果您的服务已支持资源标签的概念,我们建议您在用量报告中转发这些标签。标签必须符合语法要求

使用情况标签

Cloud Marketplace 预留了以下标签。您可以使用这些标签来标识您的服务平台中的用量的额外上下文。我们建议您在用量报告中默认添加这些标签。

标签键标签值说明
cloudmarketplace.googleapis.com/resource_name USER_SUPPLIED 与用量指标关联的资源的名称。
cloudmarketplace.googleapis.com/container_name USER_SUPPLIED 资源容器的名称。

标签会转发到 Cloud Billing 费用管理工具,包括费用报告结算导出

使用标签示例

在本例中,假设贵组织提供名为 SaaS 存储解决方案的存储产品。

客户 Carl 为其 Google Cloud 项目 e-commerce-website 购买了您的存储产品,以托管其电子商务网站的 user_profiles_dbproducts_db 数据库:

  • user_profiles_db 包含有关访问 Carl 网站的用户的信息。
  • products_db 包含 Carl 在其网站上销售的商品的相关信息。

如果您想向 Carl 提供其使用情况的详细费用明细,可以使用 userLabels 键值对分别报告每个数据库的使用费用。

例如,如需报告 Carl 的 products_db 存储用量所产生的费用,您可以发送以下报告,其中表明 Carl 的 products_db 存储费用为 100 个单位:

operation = {
  'operationId': '<UUID>',
  'operationName': 'db-total-storage',
  'consumerId': 'project:carl_website',
  'startTime': '<Timestamp>',
  'endTime': '<Timestamp>',
  'metricValues': [{
      'int64Value': 100,
  }],
  'userLabels': {
    'cloudmarketplace.googleapis.com/container_name': 'e-commerce-website',
    'cloudmarketplace.googleapis.com/resource_name': 'products_db'
  }
}

service.services().report(
  serviceName=service_name, body={
    'operations': [operation]
}).execute()

在此示例中,service_name 是 Carl 的 Google Cloud 项目的项目 ID。

如需有关使用 userLabels 的更详细示例,请参阅 SaaS Codelab