이 페이지에서는 지원되는 다음 인터페이스 중 하나를 사용해서 Cloud Storage와 상호작용하기 위해 gRPC를 사용할 때 gRPC 클라이언트 측 측정항목을 Cloud Monitoring으로 보내는 방법을 설명합니다.
클라이언트 측 측정항목을 사용하면 gRPC를 사용하여 Cloud Storage와 상호작용하는 클라이언트 애플리케이션의 성능을 모니터링할 수 있습니다. 클라이언트 측 측정항목은 서버 측 관점에서 Cloud Storage 성능에 대한 인사이트를 제공하는 서버 측 측정항목과 다릅니다.
작동 방식
gRPC를 통해 지원되는 인터페이스 중 하나를 사용하여 Cloud Storage와 상호작용할 때는 클라이언트 측 측정항목을 Cloud Monitoring으로 보내도록 선택할 수 있습니다. 측정항목 탐색기를 사용해서 클라이언트 측 측정항목을 확인하면 Cloud Storage와 gRPC 클라이언트 사이의 상호작용을 모니터링 및 최적화하고, 사용량을 관리하고, 성능 병목 현상과 기술적 문제를 해결하는 데 도움이 됩니다.
가격 책정
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 문서를 참조하세요.
고려사항
Dataproc에서 Cloud Storage 커넥터를 사용 중이면 모니터링 측정항목 작성자(
roles/monitoring.metricWriter
) IAM 역할을 Dataproc 가상 머신(VM) 서비스 계정에 부여해야 합니다.Dataflow에서 Apache Beam 커넥터를 사용 중이면 모니터링 측정항목 작성자(
roles/monitoring.metricWriter
) IAM 역할을 Dataflow 작업자 서비스 계정에 부여해야 합니다.
측정항목 탐색기에서 측정항목 보기
다음 안내에 따라 측정항목 탐색기에서 Cloud Storage gRPC 클라이언트 측 측정항목을 확인합니다.
Google Cloud 콘솔에서 측정항목 탐색기 페이지로 이동합니다.
측정항목을 보려는 프로젝트를 선택합니다.
측정항목 드롭다운 메뉴에서 측정항목 선택을 클릭합니다.
리소스 또는 측정항목 이름으로 필터링 검색창에
storage.googleapis.com/Client
를 입력하거나 측정항목 이름을 기준으로 적용하려는 측정항목을 검색하고 적용을 클릭합니다. 측정항목을 2개 이상 추가하려면 쿼리 추가를 클릭합니다.Cloud Storage가 프로젝트에 측정항목을 적용합니다. 다음 드롭다운 메뉴를 사용해서 측정항목을 필터링하거나 집계할 수 있습니다.
지정된 기준에 따라 데이터의 하위 집합을 선택하고 보려면 필터 드롭다운 메뉴를 사용하세요.
여러 데이터 포인트를 단일 값으로 결합하고 측정항목의 요약 뷰를 보려면 집계 드롭다운 메뉴를 사용하세요.
게시된 측정항목을 확인하기 전에 최소 1분 이상 애플리케이션이 실행되도록 합니다.
대시보드를 사용해서 프로젝트에 추가된 측정항목을 보려면 대시보드 개요를 참조하세요.
측정항목 설명
다음 섹션에서는 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
로 설정합니다.
다음 단계
Google Cloud의 모니터링 가능성 자세히 알아보기
애플리케이션에 커스텀 trace 및 측정항목 추가 방법 알아보기