Google への使用状況レポートを構成する

プロダクトに従量制料金を選択した場合は、アプリの使用状況を Service Control API に報告する必要があります。

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 は、サービス インスタンスが生成する一意の文字列です。check オペレーションと report オペレーションに同じ operationId を使用します。
  • consumerId は、エンタイトルメントからの usageReportingId と同じです。
  • startTimeendTime は、report オペレーションの合計期間の開始時刻と終了時刻を表します。ほとんどの場合、report オペレーションの startTime は、前の report オペレーションの endTime と同じ値になります。顧客のサービスが report オペレーションの startTime の前に無効になると、services.check API 呼び出しが checkErrors[] オブジェクトにエラーを送信し、対応する期間について顧客への請求はされません。
  • MetricValueSet には、1 つまたは複数の中間期間とそれに対応する更新された指標値が含まれています。サービスの指標は、料金モデルを選択して提出するときに定義します。 Producer Portal の技術統合セクションで指標の ID を表示して参照できます。
  • userLabels はユーザーが作成するラベルで、特定の構文要件に沿って Key-Value 文字列として定義されます。これらのラベルは、Cloud Billing のコスト管理ツールに転送され、コスト帰属に使用されます。使用状況のラベル付けに関する推奨事項については、使用状況のラベル付けのベスト プラクティスをご覧ください。

services.check が次のエラーの 1 つ以上を返した場合は、エラーが解決するまで顧客へのサービスの提供を停止することをおすすめします。

  • SERVICE_NOT_ACTIVATED
  • BILLING_DISABLED
  • PROJECT_DELETED