このページで説明する Google Cloud データサービスには、リクエストに対するレスポンスとしてデータを保存、提供するサービスが含まれます。こうしたサービスの SLI は、リクエスト レスポンス サービスの SLI と似ており、主に可用性とレイテンシに重点を置いています。なお、特にデータベース クエリのレスポンス時間を測定する場合、たいていレイテンシは、取得されるデータ量の要因となります。また、アプリケーションのワークロードによって変化する可能性があります。
リクエスト ベースの可用性 SLI を表現するには、TimeSeriesRatio 構造体を使用し、リクエスト全体に対する「良い」リクエストの比率を設定します。「良い」または「有効」という好ましい判定に至るために利用可能なラベルを使用して指標をフィルタする方法を定めます。
リクエスト ベースのレイテンシ SLI を表現するには、DistributionCut 構造体を使用します。
Cloud Storage
Cloud Storage は Google Cloudのグローバルで利用できる、耐久性に優れたオブジェクト ストアです。Cloud Storage には複数のストレージ クラスがあり、コストとデータ取得モデルをサービスやユースケースに応じて適切に選べます。
詳細については、次のリンク先をご覧ください。
- Cloud Storage のドキュメント。
 storage.googleapis.com指標タイプのリスト。
可用性 SLI
Cloud Storage は、gcs_bucket モニタリング対象リソースタイプと api/request_count 指標タイプを使用して、Cloud Monitoring に指標データを書き込みます。response_code 指標ラベルを使用して「良い」リクエストをカウントすることで、データをフィルタできます。method 指標ラベルを使用して、特定の API メソッド(ReadObject など)の可用性を測定することもできます。
Cloud Storage バケットからオブジェクトを読み取るためにリクエスト ベースの可用性 SLI を表現するには、次の例に示すように、リクエスト全体に対する「良い」リクエストの比率(TimeSeriesRatio)を使用します。
"serviceLevelIndicator": {
  "requestBased": {
    "goodTotalRatio": {
      "totalServiceFilter":
        "metric.type=\"storage.googleapis.com/api/request_count\"
         resource.type=\"gcs_bucket\"
         metric.label.\"method\"=\"ReadObject\"
         resource.label.\"bucket_name\"=\"my_bucket\"",
      "goodServiceFilter":
        "metric.type=\"storage.googleapis.com/api/request_count\"
         resource.type=\"gcs_bucket\"
         metric.label.\"method\"=\"ReadObject\"
         resource.label.\"bucket_name\"=\"my_bucket\"
         metric.label.\"response_code\"=\"OK\"",
    }
  }
}
レイテンシ SLI
Cloud Storage では、レイテンシ指標は提供されません。レイテンシが懸念される場合は、クライアントでそのデータを収集するために、サービスを計測することをご検討ください。
Bigtable
Bigtable は、大規模な分析ワークロードにも運用ワークロードにも対応できる、フルマネージドのスケーラブルな NoSQL データベース サービスです。Bigtable は、非常に多くのデータを Key-Value ストアに格納する場合に最適です。Bigtable は、低レイテンシで読み書きのスループットが高いため、大量のデータに迅速にアクセスできます。
詳細については、次のリンク先をご覧ください。
- Bigtable のドキュメント。
 bigtable.googleapis.com指標タイプのリスト。
可用性 SLI
Bigtable は、bigtable_table モニタリング対象リソースタイプと次の指標タイプを使用して、Cloud Monitoring に指標データを書き込みます。
- 
server/request_count。リクエストの合計数をカウントします。 - 
server/error_count。失敗したリクエストの合計数をカウントします。 
Cloud Storage バケットからオブジェクトを読み取るためにリクエスト ベースの可用性 SLI を表現するには、次の例に示すように、リクエスト全体に対する「悪い」リクエストの比率(TimeSeriesRatio)を使用します。
次の例に示すように、この 2 つの指標を使用して、リクエスト全体に対する失敗したリクエストについて、TimeSeriesRatio 構造体を作成することでリクエスト ベースの可用性 SLI を表現できます。
"serviceLevelIndicator": {
  "requestBased": {
    "goodTotalRatio": {
      "totalServiceFilter":
        "metric.type=\"bigtable.googleapis.com/server/request_count\"
         resource.type=\"bigtable_table\"
         resource.label.\"table\"=\"my_table\"
         resource.label.\"cluster\"=\"my_cluster\"",
      "badServiceFilter":
        "metric.type=\"bigtable.googleapis.com/server/error_count\"
         resource.type=\"bigtable_table\"
         resource.label.\"table\"=\"my_table\"
         resource.label.\"cluster\"=\"my_cluster\"",
    }
  }
}
レイテンシ SLI
Bigtable は、レイテンシを測定するために bigtable_table モニタリング対象リソースタイプと server/latencies 指標タイプを使用して Cloud Monitoring に指標データを書き込みます。method 指標ラベルを使用してデータをフィルタし、特定のメソッドのレイテンシを測定できます。
リクエスト ベースのレイテンシ SLI を表現するには、DistributionCut 構造体を使用します。
次の SLO の例では、1 時間のローリング期間で、my_cluster クラスタの my_table テーブルに対する全リクエストの 99% が、合計レイテンシ 0~100 ミリ秒に収まることを想定しています。
{
  "serviceLevelIndicator": {
    "requestBased": {
      "distributionCut": {
        "distributionFilter":
          "metric.type=\"bigtable.googleapis.com/server/latencies\"
           resource.type=\"bigtable_table\"
           resource.label.\"table\"=\"my_table\"
           resource.label.\"cluster\"=\"my_cluster\"",
        "range": {
          "min": 0,
          "max": 100
        }
      }
    }
  },
  "goal": 0.99,
  "rollingPeriod": "3600s",
  "displayName": "98% requests under 100 ms"
}
Spanner
Spanner は、フルマネージドのリレーショナル データベース サービスです。グローバルなトランザクション整合性、スキーマ、SQL(拡張機能を含む ANSI 2011)および自動の同期レプリケーションによって、高可用性を実現します。
詳細については、次のリンク先をご覧ください。
- Spanner のドキュメント。
 spanner.googleapis.com指標タイプのリスト。
可用性 SLI
Spanner は、spanner_instance モニタリング対象リソースタイプと query_count 指標タイプを使用して、Cloud Monitoring に指標データを書き込みます。status 指標ラベルを使用してデータをフィルタし、データベース クエリの成功と失敗をカウントできます。
リクエスト ベースの可用性 SLI を表現するには、次の例に示すように、リクエスト全体に対する「良い」リクエストについて、TimeSeriesRatio 構造体を作成します。
"serviceLevelIndicator": {
  "requestBased": {
    "goodTotalRatio": {
      "totalServiceFilter":
        "metric.type=\"spanner.googleapis.com/query_count\"
         resource.type=\"spanner_instance\"
         metric.label.\"database\"=\"my_database\"",
      "goodServiceFilter":
        "metric.type=\"spanner.googleapis.com/query_count\"
         resource.type=\"spanner_instance\"
         metric.label.\"database\"=\"my_database\"
         metric.label.\"status\"=\"ok\"",
    }
  }
}
レイテンシ SLI
Spanner は、レイテンシを測定するために spanner_instance モニタリング対象リソースタイプと api/request_latencies 指標タイプを使用して Cloud Monitoring に指標データを書き込みます。method 指標ラベルを使用してデータをフィルタし、特定のメソッドのレイテンシを測定できます。データには、クエリだけでなく他の Spanner API 呼び出しのレイテンシも含まれます。
リクエスト ベースのレイテンシ SLI を表現するには、DistributionCut 構造体を使用します。次の SLO の例では、1 時間のローリング期間で、my_database データベースに対する全 API リクエストの 99% が、合計レイテンシ 0~100 ミリ秒に収まることを想定しています。
{
  "serviceLevelIndicator": {
    "requestBased": {
      "distributionCut": {
        "distributionFilter":
          "metric.type=\"spanner.googleapis.com/api/request_latencies\"
           resource.type=\"spanner_instance\"
           metric.label.\"database\"=\"my_database\"",
        "range": {
          "min": 0,
          "max": 100
        }
      }
    }
  },
  "goal": 0.99,
  "rollingPeriod": "3600s",
  "displayName": "98% requests under 100 ms"
}
データストア
Datastore は、アプリケーション向けのスケーラビリティが高い NoSQL データベースです。シャーディングとレプリケーションを自動的に処理し、アプリケーションの負荷に合わせて自動的にスケールする、可用性と耐久性に優れたデータベースを提供します。
詳細については、次のリンク先をご覧ください。
- Datastore のドキュメント。
 datastore.googleapis.com指標タイプのリスト。
可用性 SLI
Datastore は、datastore_request モニタリング対象リソースタイプと api/request_count 指標タイプを使用して、Cloud Monitoring に指標データを書き込みます。response_code 指標ラベルを使用してデータをフィルタし、API 呼び出しの成功と失敗をカウントするか、api_method 指標ラベルを使用してドキュメントの読み取りなどを測定します。
リクエスト ベースの可用性 SLI を表現するには、次の例に示すように、リクエスト全体に対する成功したリクエストについて、TimeSeriesRatio 構造体を作成します。
"serviceLevelIndicator": {
  "requestBased": {
    "goodTotalRatio": {
      "totalServiceFilter":
        "metric.type=\"datastore.googleapis.com/api/request_count\"
         resource.type=\"datastore_request\"",
      "goodServiceFilter":
        "metric.type=\"datastore.googleapis.com/api/request_count\"
         resource.type=\"datastore_request\"
         metric.label.\"response_code\"=\"success\"",
    }
  }
}
レイテンシ SLI
Datastore は現在、レイテンシ指標を提供していません。利用可能な指標については、datastore.googleapis.com 指標タイプをご覧ください。