이 페이지에서는 지원되는 다음 인터페이스 중 하나를 사용해서 Cloud Storage와 상호작용하기 위해 gRPC를 사용할 때 gRPC 클라이언트 측 측정항목을 Cloud Monitoring으로 보내는 방법을 설명합니다.
클라이언트 측 측정항목을 사용하면 gRPC를 사용하여 Cloud Storage와 상호작용하는 클라이언트 애플리케이션의 성능을 모니터링할 수 있습니다. 클라이언트 측 측정항목은 서버 측 관점에서 Cloud Storage 성능에 대한 인사이트를 제공하는 서버 측 측정항목과 다릅니다.
작동 방식
gRPC를 통해 지원되는 인터페이스 중 하나를 사용하여 Cloud Storage와 상호작용할 때는 클라이언트 측 측정항목을 Cloud Monitoring으로 보내도록 선택할 수 있습니다.
가격 책정
Cloud Storage 클라이언트 측 측정항목은 비용이 청구되지 않습니다. 즉, Cloud Storage 클라이언트 측 측정항목을 전송, 저장, 액세스해도 Cloud Monitoring 요금이 발생하지 않습니다. 가격 책정에 대한 자세한 내용은 Google Cloud Observability 가격 책정을 참조하세요.
시작하기 전에
클라이언트 측 측정항목을 사용하려면 먼저 다음 단계를 완료해야 합니다.
사용하려는 Cloud Storage 클라이언트 라이브러리 또는 커넥터가 gRPC를 지원하는지 확인합니다. gRPC를 지원하는 Cloud Storage 클라이언트 라이브러리와 커넥터는 다음과 같습니다.
Cloud Monitoring API를 사용 설정합니다.
Cloud Storage API를 사용 설정합니다.
클라이언트 측 측정항목을 보내는 데 필요한 역할 및 권한을 설정합니다.
필요한 역할
gRPC 클라이언트 측 측정항목을 Cloud Monitoring으로 보내는 데 필요한 권한을 설정하려면 gRPC 클라이언트에 사용된 서비스 계정에 모니터링 측정항목 작성자(roles/monitoring.metricWriter
) IAM 역할을 부여합니다.
이 사전 정의된 역할에는 gRPC 클라이언트 측 측정항목을 Cloud Monitoring에 보내는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필요한 권한 섹션을 참조하세요.
필요한 권한
monitoring.timeSeries.create
다른 커스텀 역할이나 사전 정의된 역할을 사용하여 이러한 권한을 얻을 수도 있습니다. 모니터링 측정항목 작성자 역할에 대한 자세한 내용은 roles/monitoring.metricWriter
에 대한 IAM 문서를 참조하세요.
측정항목 설명
다음 섹션에서는 gRPC 클라이언트 성능을 모니터링하는 데 사용할 수 있는 Cloud Storage 클라이언트 측 측정항목에 대해 설명합니다.
클라이언트 시도별 측정항목
다음 측정항목은 클라이언트가 서버와 통신하기 위해 수행하는 개별 시도에 대한 성능 데이터를 수집합니다. 클라이언트 시도별 측정항목은 재시도 동작 및 병목 현상을 측정하고 클라이언트와 서버 간의 통신을 최적화하는 데 도움이 됩니다.
전체 측정항목 | 설명 | 계측 유형 | 단위 | 속성 |
---|---|---|---|---|
storage.googleapis.com/client/grpc/client/attempt/started |
Preview . 완료되지 않은 시도를 포함하여 시작된 총 RPC 시도 수입니다. |
카운터 | {attempt} |
|
storage.googleapis.com/client/grpc/client/attempt/duration |
Preview . 하위 채널을 선택하는 데 걸리는 시간을 포함하여 RPC 시도를 완료하는 데 걸리는 엔드 투 엔드 시간입니다. |
히스토그램 | s |
|
storage.googleapis.com/client/grpc/client/attempt/sent_total_compressed_message_size |
Preview . RPC 호출별로 메타데이터를 제외하고 모든 요청 메시지에 전송되는 압축 후 암호화 없이 전송되는 총 바이트 수입니다. 여기에는 gRPC 또는 전송 프레이밍 바이트가 포함되지 않습니다. |
히스토그램 | By |
|
storage.googleapis.com/client/grpc/client/attempt/rcvd_total_compressed_message_size |
Preview . RPC 호출별로 메타데이터를 제외하고 모든 응답 메시지에 수신되는 압축 후 암호화 없이 수신되는 총 바이트 수입니다. 여기에는 gRPC 또는 전송 프레이밍 바이트가 포함되지 않습니다. |
히스토그램 | By |
|
클라이언트 시도별 계측에 대한 자세한 내용은 GitHub의 OpenTelemetry 측정항목 문서를 참조하세요.
클라이언트 호출별 측정항목
다음 측정항목은 서버에 대한 클라이언트 호출의 전체 수명 주기에 대해 집계된 보기를 제공합니다. 클라이언트 호출별 측정항목은 클라이언트 호출에 대한 상위 레벨의 데이터를 제공하고, 호출 패턴을 파악하기 위한 추적 측정항목을 제공하고, 오류 빈도를 확인하는 데 도움이 됩니다.
전체 측정항목 | 설명 | 계측 유형 | 단위 | 속성 |
---|---|---|---|---|
storage.googleapis.com/client/grpc/client/call/duration |
Preview . gRPC 라이브러리가 애플리케이션 관점에서 RPC를 완료하는 데 걸리는 엔드 투 엔드 시간을 측정합니다. |
히스토그램 | s |
|
클라이언트 호출별 계측에 대한 자세한 내용은 GitHub의 OpenTelemetry 측정항목 문서를 참조하세요.
요청 부하 감지 측정항목
다음 측정항목은 요청 부하 감지를 사용하는 클라이언트 애플리케이션의 효율성에 대한 인사이트를 제공합니다. 요청 부하 감지 측정항목은 서버 부하의 균형을 조정하고 리소스 사용률을 최적화하고 클라이언트 응답 시간을 개선하는 데 도움이 될 수 있습니다. 다음 측정항목은 직접 연결의 경우에만 제공됩니다.
전체 측정항목 | 설명 | 계측 유형 | 단위 | 속성 |
---|---|---|---|---|
storage.googleapis.com/client/grpc/lb/rls/cache_entries |
Preview . 요청 부하 감지 캐시의 항목 수입니다. |
게이지 | {entry} |
|
storage.googleapis.com/client/grpc/lb/rls/cache_size |
Preview . 요청 부하 감지 캐시의 현재 크기입니다. |
게이지 | By |
|
storage.googleapis.com/client/grpc/lb/rls/default_target_picks |
Preview . 부하 분산기(LB)가 기본 대상을 선택한 횟수입니다. |
카운터 | {pick} |
|
storage.googleapis.com/client/grpc/lb/rls/target_picks |
Preview . 각 요청 부하 감지 대상에 전송되는 LB 선택 수입니다. 또한 기본 대상이 요청 부하 감지 서버에서 반환된 경우에는 캐시에서 대상으로 전송되는 RPC가 grpc.rls.default_target_picks 가 아닌 이 측정항목에서 계산됩니다. |
카운터 | {pick} |
|
storage.googleapis.com/client/grpc/lb/rls/failed_picks |
Preview . 실패한 요청 부하 감지 요청 또는 제한되는 요청 부하 감지 채널로 인해 실패한 LB 선택 수입니다. |
카운터 | {pick} |
|
xDiscovery 서비스 클라이언트 측정항목
다음 측정항목은 백엔드 서비스에 대한 연결을 검색하고 구성하기 위해 클라이언트 애플리케이션이 xDiscovery 서비스(xDS) 컨트롤 플레인과 상호작용하는 방법에 대한 인사이트를 제공합니다. xDS 측정항목은 서비스 요청 지연 시간을 추적하고, 구성 업데이트를 모니터링하고, 전체 xDS 성능을 최적화하는 데 도움이 될 수 있습니다.
다음 측정항목은 직접 연결의 경우에만 제공됩니다.
전체 측정항목 | 설명 | 계측 유형 | 단위 | 속성 |
---|---|---|---|---|
storage.googleapis.com/client/grpc/xds_client/connected |
Preview . xDS 클라이언트에 xDS 서버에 대해 작동 중인 ADS 스트림이 있는지 여부를 측정합니다. 특정 서버에서 이 측정항목은 스트림이 처음에 생성되었을 때 1 에 전송됩니다. 연결 오류가 있거나 A57 에 정의된 대로 응답 메시지 없이 ADS 스트림이 실패하면 측정항목이 0 으로 설정됩니다. 0 으로 설정하면 ADS 스트림에서 첫 번째 응답이 수신되면 측정항목이 1 로 재설정됩니다. 이 측정항목은 C++용 Cloud 클라이언트 라이브러리에만 제공됩니다. |
게이지 | {bool} |
|
storage.googleapis.com/client/grpc/xds_client/resource_updates_invalid |
Preview . 잘못된 것으로 간주되어 수신된 리소스 수입니다. 이 측정항목은 C++용 Cloud 클라이언트 라이브러리에만 제공됩니다. |
카운터 | {resource} |
|
storage.googleapis.com/client/grpc/xds_client/resource_updates_valid |
Preview . 변경되지 않았더라도 유효한 것으로 간주되어 수신된 리소스 수입니다.
이 측정항목은 C++용 Cloud 클라이언트 라이브러리에만 제공됩니다. |
카운터 | {resource} |
|
storage.googleapis.com/client/grpc/xds_client/resources |
Preview . xDS 리소스 수입니다. 이 측정항목은 C++용 Cloud 클라이언트 라이브러리에만 제공됩니다. |
게이지 | {resource} |
|
storage.googleapis.com/client/grpc/xds_client/server_failure |
Preview . 더 이상 올바르게 작동하지 않고 사용 불가능 또는 과부하 상태로 되었거나 올바르지 않거나 유효하지 않은 구성 데이터를 제공하는 xDS 서버 수입니다. 이 측정항목은 C++용 Cloud 클라이언트 라이브러리에만 제공됩니다. |
카운터 | {failure} |
|
xDS 클라이언트 측정항목에 대한 자세한 내용은 GitHub에서 xDS 기반 전역 부하 분산 문서를 참조하세요.
클라이언트 측 측정항목 선택 해제
필요한 경우 클라이언트 측 측정항목을 선택 해제할 수 있습니다.
Java
public GrpcStorageOptions.Builder setEnableGrpcClientMetrics(false enableGrpcClientMetrics)
자세한 내용은 Java용 Cloud 클라이언트 라이브러리의 GrpcStorageOptions.Builder
클래스에 정의된 gRPC 클라이언트 측정항목 관련 메서드를 참조하세요.
C++
C++용 Cloud 클라이언트 라이브러리를 사용하여 gRPC API에 대한 클라이언트 측 측정항목을 선택 해제하려면 EnableGrpcMetricsOption
구조체를 참조하세요.
Bazel을 사용하여 애플리케이션을 빌드하고 클라이언트 측 측정항목을 사용 중지하려면 애플리케이션의 빌드 파일에서 enable_grpc_metrics
옵션을 false
로 설정합니다.