마이크로서비스 관측 가능성 개요

마이크로서비스 관측 가능성 도구는 Google Cloud 및 기타 위치에 배포된 gRPC 워크로드에서 Cloud Monitoring, Cloud Logging, Cloud Trace의 원격 분석 데이터를 수집하고 나타내기 위해 애플리케이션을 계측하는 기능을 제공합니다.

이 문서는 gRPC 서비스 소유자, 사이트 안정성 엔지니어, gRPC 워크로드 문제 해결 및 최적화를 위해 원격 분석 데이터를 사용하는 모든 사용자를 대상으로 합니다.

관측 가능성은 종속 항목을 노출하지 않고 측정항목, trace, gRPC 로깅에 대한 OpenCensus 플러그인을 단일 통합 플러그인에 래핑합니다. 마이크로서비스 관측 가능성은 Cloud Monitoring, Cloud Logging, Cloud Trace와 통합된 관측 가능성 데이터를 사용합니다. 이 문서에서는 gRPC 애플리케이션에 관측 가능성 플러그인을 포함하기 위한 안내를 제공합니다.

정보를 수집하고 애플리케이션을 디버그하는 데 도움이 되도록 마이크로서비스 관측 가능성에는 다음 기능이 포함됩니다.

  • 전송 수준 RPC 이벤트 로깅 생성
  • 분산 추적 지원
  • 사전 정의된 대시보드를 포함하는 Cloud Monitoring 지원
  • Cloud Logging 추천 쿼리
  • 리소스 라벨 및 커스텀 라벨

기능

이 섹션에서는 마이크로서비스 관측 가능성 기능에 대해 설명합니다.

원격 분석 통합

각 gRPC 언어(C++, Go, Java)의 관측 가능성 플러그인 패키지는 기본적으로 Google Cloud Observability와 통합됩니다. 이 플러그인은 최소한의 구성으로 프로젝트 및 배포에 대한 메타데이터를 검색하고 추적, 측정항목, 로깅 데이터 생성에 대한 기본 수량을 구성합니다.

RPC 전송 수준 이벤트 검사

리모트 프로시져 콜(RPC)의 수명 주기에는 헤더 및 트레일러를 비롯한 메타데이터 이벤트, 메시지 이벤트, OK 상태 및 오류 상태를 비롯한 상태 이벤트, 마감 이벤트가 포함될 수 있습니다. 마이크로서비스 관측 가능성을 사용할 때는 각 이벤트 유형에 대해 세부정보를 검사할 수 있습니다. 직렬화된 메시지 길이, 권한, 클라이언트/서버 주소, 클라이언트 또는 서버가 RPC를 취소했는지 여부를 검사할 수 있습니다.

마이크로서비스 관측 가능성은 명시적인 설정을 통해 메시지 또는 헤더에 대해 페이로드 로깅을 사용 설정할 수 있습니다. 페이로드 로그, 제어 메시지, 헤더 페이로드 로그에 대해 개별적으로 크기 한도를 설정할 수 있습니다. 또한 와일드 카드 유무에 관계없이 메서드의 대상 그룹을 지정할 수 있습니다.

RPC의 분산 추적 지원

서버 아키텍처는 RPC가 구성요소를 통과하는 여러 호출 또는 개별 요청으로 팬아웃되도록 허용할 수 있습니다. 마이크로서비스 관측 가능성은 분산 추적을 사용하여 복잡한 시스템을 더 쉽게 분석하고 문제 해결할 수 있게 해줍니다. 마이크로서비스 관측 가능성 제품은 gRPC 애플리케이션이 추적을 시작하고, 스팬을 생성하고, 추적 컨텍스트를 채울 수 있도록 기본 지원을 제공합니다.

측정항목 모니터링을 위한 측정 캡처

이 플러그인은 메시지 수와 메시지 크기부터 지연 시간까지 메시지 수준, RPC 수준, 메서드 수준에서 다양한 범위의 측정에 대해 자사 지원을 제공합니다. 측정은 Cloud Monitoring으로 업로드됩니다. 기존 차트 집합이 있는 대시보드가 포함된 Cloud Monitoring 측정항목 탐색기를 사용하여 수집한 측정항목을 탐색할 수 있습니다. 또한 자체 커스텀 대시보드에 측정항목을 표시할 수도 있습니다.

trace 및 로그 상관관계

Trace는 시스템에서 오류 및 문제를 식별하는 데 도움이 되고 로그 항목은 오류 및 문제의 세부정보를 식별하는 데 도움이 됩니다. 종합적으로 trace와 로그는 오류 또는 문제에 대한 세부 상황을 제공하여 여러 시스템에 걸쳐 있는 RPC를 보다 완전하게 파악할 수 있게 해줍니다. 마이크로서비스 관측 가능성은 로그를 업스트림 샘플링 결정 또는 사용자 정의 샘플링 비율을 기준으로 샘플링되는 trace와 자동으로 연결합니다.

리소스 라벨 및 커스텀 라벨

관측 가능성 데이터를 보다 효율적으로 탐색할 수 있도록 마이크로서비스 관측 가능성은 기본적으로 리소스 라벨을 제공하며 애플리케이션이 커스텀 라벨을 정의할 수 있게 해줍니다. 리소스 라벨은 Compute Engine 노드 이름 또는 Google Kubernetes Engine 네임스페이스와 같이 워크로드 위치를 설명하는 배포 관련 키-값 쌍입니다.

커스텀 라벨은 다음과 같이 맞춤설정된 정보를 연결하기 위한 메커니즘을 제공합니다.

  • tracing 데이터에 대한 스팬 라벨
  • 측정항목 데이터에 대한 측정항목 라벨
  • 로깅 데이터에 대한 로그 항목 라벨

커스텀 라벨은 소스 버전 또는 표준 서비스 이름을 포함해야 할 경우에 도움이 됩니다. 이를 사용하면 사용자 특정 정보를 추가하여, 로그, 측정항목 및 trace에서 특정 관측 가능성 데이터를 식별하는 데 도움이 됩니다.

추천 쿼리

마이크로서비스 관측 가능성 기능은 Cloud Logging에 몇 가지 추천 쿼리를 자동으로 제공합니다. 자세한 내용은 권장 쿼리를 참조하세요.

아키텍처

다음 다이어그램은 마이크로서비스 관측 가능성이 관측 가능성 데이터를 수집하고 제공하는 방법을 보여줍니다.

마이크로서비스 관측 가능성 데이터 수집 및 제공
마이크로서비스 관측 가능성 데이터 수집 및 제공(확대하려면 클릭)

먼저 gRPC 워크로드에 관측 가능성 구성을 지정합니다. 관측 가능성 구성은 환경 변수에 설정하는 필드로 구성됩니다. 이 구성은 다음을 정의합니다.

  • Cloud Trace로 내보내는 추적 스팬
  • Cloud Monitoring으로 내보내는 측정항목 데이터
  • Cloud Logging으로 내보내는 RPC 이벤트

그런 후 Cloud Monitoring의 커스텀 대시보드에서 이 정보를 보고 Cloud Logging에서 추천 쿼리를 가져올 수 있습니다. 또한 Cloud Trace, Cloud Monitoring, Cloud Logging에서 자신이 선택한 서드 파티 플랫폼으로 정보를 내보낼 수 있습니다.

가격 책정

마이크로서비스 관측 가능성 가격 책정은 Google Cloud Observability 가격 책정과 동일합니다. 마이크로서비스 관측 가능성 플러그인에는 Cloud Trace, Cloud Logging, Cloud Monitoring 사용에 대한 개별 요금이 없습니다. 자세한 내용은 Google Cloud Observability 가격 책정을 참조하세요.

다음 단계