이 페이지에서 설명하는 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
측정항목 라벨을 사용하여 ReadObject
와 같은 특정 API 메서드의 가용성을 측정할 수도 있습니다.
다음 예시와 같이 총 요청에 대한 양호한 요청의 비율인 TimeSeriesRatio
를 사용하여 Cloud Storage 버킷에서 객체를 읽을 수 있도록 요청 기반 가용성 SLI를 표현합니다.
"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에 기록합니다.
-
server/request_count
: 총 요청 수를 계산합니다. -
server/error_count
: 실패한 총 요청 수를 계산합니다.
다음 예시와 같이 총 요청에 대한 '불량' 요청의 비율인 TimeSeriesRatio
를 사용하여 Cloud Storage 버킷에서 객체를 읽을 수 있도록 요청 기반 가용성 SLI를 표현합니다.
이 두 가지 측정항목을 사용하여 다음 예시와 같이 총 요청에 대한 실패한 요청의 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%가 1시간 동안 총 지연 시간의 0~100ms 사이에 속할 것으로 예상합니다.
{
"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%가 1시간 동안 총 지연 시간의 0~100ms 사이에 속할 것으로 예상합니다.
{
"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
측정항목 유형을 참조하세요.