使用状況レポートのベスト プラクティス

従量制の 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 というお客様が、自社の e コマース ウェブサイト用の user_profiles_db データベースと products_db データベースをホストするために Google Cloud プロジェクト e-commerce-website のストレージ サービスを購入しました。

  • user_profiles_db には、Carl のサイトにアクセスするユーザーに関する情報が含まれています。
  • products_db には、Carl が自社サイトで販売するプロダクトに関する情報が含まれています。

使用に関する詳細な費用内訳を Carl に提供する場合は、userLabels Key-Value ペアを使用して、各データベースの使用料金を個別に報告できます。

たとえば、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 をご覧ください。