서비스 디렉터리를 사용하는 관측 가능성 및 디버깅

Cloud Service Mesh와 서비스 디렉터리의 통합으로 디버깅에 새로운 복잡성이 생깁니다. 비즈니스 내에서 서비스 소비자와 서비스 프로듀서가 서로 다른 팀 또는 조직에 속할 수 있습니다. 이러한 문제를 디버깅하기 위해 Cloud Service Mesh는 Cloud Logging 및 Cloud Monitoring과 통합됩니다.

예를 들면 다음과 같습니다.

  • 애플리케이션 네트워킹에 Cloud Service Mesh를 사용하는 checkout 서비스가 있습니다.
  • 서비스 디렉터리에는 다른 팀(서비스 프로듀서)이 소유하고 유지 관리하는 payment 서비스가 있습니다.
  • Cloud Service Mesh에서 새 백엔드 서비스를 만들 수 있도록 checkout 서비스에서 payment 서비스를 호출하려고 합니다. 이 백엔드 서비스는 서비스 검색을 위해 서비스 디렉터리를 사용하여 payment 서비스에 연결됩니다.

이 모델에서 서비스 프로듀서는 서비스 디렉터리에 호스팅되는 payment 서비스를 삭제하거나 수정해야 할 수 있습니다. payment 서비스를 소유하고 있으므로 이러한 항목을 변경하도록 허용합니다. 하지만 payment 서비스가 삭제되면 서비스 검색이 중단됩니다.

로깅

Cloud Service Mesh는 서비스 디렉터리 서비스에 연결된 백엔드 서비스를 확인할 때 서비스 디렉터리에서 엔드포인트 목록을 가져옵니다. 서비스가 서비스 디렉터리에서 삭제된 경우 Cloud Service Mesh가 엔드포인트를 가져오지 않습니다. 이 경우 로그 항목이 Logging에 추가됩니다. 로그 항목에는 다음 정보가 포함됩니다.

  • 백엔드 서비스 이름
  • 서비스 디렉터리 이름
  • 메시지: Service Directory returned 0 endpoints for this service.

이 정보는 문제를 디버깅하는 데 도움이 됩니다. 또한 사전 알림을 받도록 알림을 설정할 수도 있습니다.

모니터링

Logging 사례와 같이 Cloud Service Mesh는 Monitoring과도 통합되어 측정항목을 생성합니다. Cloud Service Mesh는 Monitoring에 각 백엔드 서비스에 대한 다음 측정항목을 추가합니다.

  • 백엔드 서비스 이름
  • Cloud Service Mesh의 클라이언트와 공유하는 백엔드 서비스와 연결된 엔드포인트 수

Cloud Service Mesh 클라이언트는 엔드포인트가 없는 백엔드 서비스로 트래픽을 전송할 수 없습니다.

Google Cloud 콘솔

서비스 디렉터리 서비스가 삭제되었는데 해당 서비스에 대한 연결이 Cloud Service Mesh 백엔드 서비스에 존재하면 Google Cloud 콘솔에 The attached Service Directory service could not be found. 경고가 표시됩니다.

다음 단계