报告结算指标

本页面介绍如何使用 Service Infrastructure 启用托管式服务以发送结算用量数据,从而使 Cloud Billing 能够针对服务使用方收费。 例如,您可以定义一个名为 library.appspot.com/books/borrowed 的指标来度量客户借阅的书籍数量,并定义其库存量单位 (SKU) 和价格。

Service Control API 接受由其批量处理、汇总并转发到 Cloud Billing 的指标。Cloud Billing 会获取这些指标并根据预定义的价格模型生成账单。如果没有预定义的价格模型,Cloud Billing 会直接忽略结算指标。如要定义价格模型,请与您的 Google Cloud 合作伙伴客户经理联系。

配置结算功能

在向 Service Control API 发送结算数据之前,您需要在服务配置中指定三种不同的信息:

  • 受监控的资源:您可以收集每项资源的结算功能使用情况。受监控的资源至少需要一个标签密钥 cloud.googleapis.com/location 来指示计费使用的位置。

  • 指标:您可以报告一个或多个指标。每个指标都会衡量指定类型的资源的使用情况。只有包含 INT64 值的 DELTA 指标才可用于结算。

  • 结算配置:可让您指定要发送到 Cloud Billing 的指标。

以下示例服务配置定义了一个用于统计客户借用的图书数量的指标。客户端可以调用 services.report 方法来报告该指标值。如需详细了解结算配置,请访问 billing.proto

# library
monitored_resources:
 - type: library.appspot.com/branch
   labels:
   - key: cloud.googleapis.com/location
     description: The cloud location.
   - key: library.appspot.com/city
     description: The city where the library branch is located in.

# The metrics to be used.
metrics:
- name: library.appspot.com/books/borrowed
  metric_kind: DELTA
  value_type: INT64
  unit: '1'

# The billing configuration.
billing:
  consumer_destinations:
  - monitored_resource: library.appspot.com/branch
    metrics:
    - library.appspot.com/books/borrowed

报告结算指标

服务配置中配置完监控服务并使用 Service Management API 推送服务配置后,您就可以调用 Service Control API 来报告指标了。下面的示例使用 gcurl 命令演示该调用。如需了解如何进行这项设置,请参阅 Service Control API 使用入门

$ gcurl -d "{
  'operations': [ {
    'operationId': '8356d3c5-f9b5-4274-b4f9-079a3731e6e5',
    'consumerId': 'project:library-consumer',
    'startTime': '`date +%FT%T%:z`',
    'endTime': '`date +%FT%T%:z`',
    'labels': {
      'cloud.googleapis.com/location': 'us-west1',
      'library.appspot.com/city': 'Kirkland',
    },
    'metricValueSets': [ {
      'metricName': 'library.appspot.com/books/borrowed',
      'metricValues': [ { 'int64Value': '10' } ]
    } ]
  } ]
}" https://servicecontrol.googleapis.com/v1/services/library.appspot.com:report