このページで説明する 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
指標タイプをご覧ください。