課金指標の報告

このページでは、Cloud Billing からサービス ユーザーに課金するため、Service Infrastructure を使用してマネージド サービスから課金利用データを送信できるようにする方法について説明します。たとえば、library.appspot.com/books/borrowed という指標を定義して、顧客が借りた書籍の数を測定し、その SKU と価格を定義することができます。

Service Control API は指標を受け入れ、それを一括処理して集計し、Cloud Billing に転送します。Cloud Billing は、これらの指標を取り込み、定義済みの価格モデルに基づいて請求書を生成します。定義済みの価格モデルがない場合、Cloud Billing は課金指標を無視します。価格モデルを定義するには、Google Cloud パートナー アカウント マネージャーにお問い合わせください。

課金の設定

Service Control API に課金データを送信する前に、サービス構成で次の 3 種類の情報を指定する必要があります。

  • モニタリング対象リソース: 各リソースの課金利用状況を収集できます。モニタリング対象リソースには、課金利用の場所を示すラベルキー cloud.googleapis.com/location が少なくとも 1 つ必要です。

  • 指標: 1 つ以上の指標を報告できます。各指標は、特定のタイプのリソースの使用量を測定したものです。INT64 値を使用した DELTA 指標のみが課金でサポートされます。

  • 課金構成: Cloud Billing に送信される指標を指定できます。

次のサービス構成の例では、顧客が借りた本の数をカウントする 1 つの指標を定義しています。クライアントは 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 を使用してその設定を push したら、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