数据存储和检索服务

本页面中介绍的 Google Cloud 数据服务包括为响应请求存储和提供数据的服务。这些服务的 SLI 类似于请求响应服务中所述的请求响应服务的 SLI,主要侧重于可用性和延迟时间。请注意,延迟时间(特别是在衡量数据库查询响应时间时)通常是由于要检索的数据量,并且可能会因应用工作负载而异。

您可以通过使用 TimeSeriesRatio 结构设置正常请求数与请求总数的比率来表示基于请求的可用性 SLI。可以使用可用标签获得“正常”或“有效”首选确定结果,从而决定如何过滤指标。

您可以使用 DistributionCut 结构来表示基于请求的延迟时间 SLI。

Cloud Storage

Cloud Storage 是一项 Google Cloud 的全球高度耐用的对象存储服务。Cloud Storage 有多个存储类别,让您可以确定适合您的服务或使用场景的费用和检索模型。

如需了解详情,请参阅以下内容:

可用性 SLI

Cloud Storage 使用 gcs_bucket 受监控的资源类型和 api/request_count 指标类型将指标数据写入 Cloud Monitoring。您可以使用 response_code 指标标签统计“正常”请求数来过滤数据。您还可以使用 method 指标标签来衡量特定 API 方法(例如 ReadObject)的可用性。

您可以通过使用正常请求数与请求总数的比率 TimeSeriesRatio 来表示基于请求的可用性 SLI,从而从 Cloud Storage 存储桶读取对象,如以下示例所示:

"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 非常适合将大量数据存储在键值对存储区中。Bigtable 还支持以低延迟方式实现高读写吞吐量,让您能快速访问大量数据。

如需了解详情,请参阅以下内容:

可用性 SLI

Bigtable 使用 bigtable_table 受监控的资源类型和以下指标类型将指标数据写入 Cloud Monitoring:

您可以通过使用“错误”请求数与请求总数的比率 TimeSeriesRatio 来表示基于请求的可用性 SLI,从而从 Cloud Storage 存储桶读取对象,如以下示例所示:

您可以使用以上两个指标,通过为失败请求数与请求总数创建 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 指标标签衡量特定方法的延迟时间来过滤数据。

您可以使用 DistributionCut 结构来表示基于请求的延迟时间 SLI。

以下示例 SLO 预计,在对 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 扩展版),以及自动同步复制功能以实现高可用性。

如需了解详情,请参阅以下内容:

可用性 SLI

Spanner 使用 spanner_instance 受监控的资源类型和 query_count 指标类型将指标数据写入 Cloud Monitoring。您可以使用 status 指标标签统计成功和失败的数据库查询数来过滤数据。

您可以通过为“正常”请求数与请求总数创建 TimeSeriesRatio 结构来表示基于请求的可用性 SLI,如以下示例所示:

"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 调用的延迟时间。

您可以使用 DistributionCut 结构来表示基于请求的延迟时间 SLI。以下示例 SLO 预计,在对 my_database 数据库的所有 API 请求中,99% 的 API 请求在一个滚动的一小时周期内的总延迟时间介于 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

Datastore 是面向应用且具有出色扩容能力的 NoSQL。Datastore 可自动处理分片和复制操作,为您提供一个高度可用且高度耐用的数据库,该数据库可自动扩缩,帮助您处理应用的负载。

如需了解详情,请参阅以下内容:

可用性 SLI

Datastore 使用 datastore_request 受监控的资源类型和 api/request_count 指标类型将指标数据写入 Cloud Monitoring。如需过滤数据,您可以使用 response_code 指标标签统计成功和失败的 API 调用次数,或者使用 api_method 指标标签来执行仅衡量文档读取次数等操作。

您可以通过为成功请求数与请求总数创建 TimeSeriesRatio 结构来表示基于请求的可用性 SLI,如以下示例所示:

"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 指标类型