모니터링

성능 최적화는 일반적으로 지연 시간 및 처리량과 관련된 주요 측정항목을 파악하는 것으로 시작합니다. 이러한 측정항목을 캡처하고 추적하는 모니터링을 추가하면 애플리케이션의 약점이 노출됩니다. 측정항목을 사용하면 성능 측정항목을 개선하기 위해 최적화를 수행할 수 있습니다.

또한 많은 모니터링 도구를 사용하면 특정 기준이 충족될 때 알림을 받도록 측정항목에 대한 알림을 설정할 수 있습니다. 예를 들어 실패한 요청의 비율이 정상 수준의 x% 를 초과하면 알림을 보내도록 알림을 설정할 수 있습니다. 모니터링 도구를 사용하면 정상적인 성능이 어떤지 파악하고 지연 시간, 오류 수, 기타 주요 측정항목의 비정상적인 급증을 식별할 수 있습니다. 이러한 측정항목을 모니터링하는 기능은 비즈니스적으로 중요한 기간 또는 새 코드가 프로덕션으로 푸시된 후에 특히 중요합니다.

지연 시간 측정항목 식별

사용자는 모바일 앱에서 더 높은 수준의 표준을 기대한다는 점에 유의하여 UI의 반응성을 최대한 유지하세요. 특히 지연 시간을 확인하지 않으면 처리량 문제가 발생할 수 있으므로 백엔드 서비스의 지연 시간도 측정하고 추적해야 합니다.

추적할 추천 측정항목은 다음과 같습니다.

  • 요청 기간
  • 서브시스템 세부사항 (예: API 호출)에서 요청 시간
  • 작업 기간

처리량 측정항목 식별

처리량은 특정 기간 동안 처리된 총 요청 수를 나타내는 측정항목입니다. 처리량은 하위 시스템의 지연 시간의 영향을 받을 수 있으므로 처리량을 개선하려면 지연 시간에 맞게 최적화해야 할 수 있습니다.

다음은 추적할 수 있는 몇 가지 측정항목입니다.

  • 초당 쿼리 수
  • 초당 전송된 데이터의 크기입니다.
  • 초당 I/O 작업 수
  • 리소스 사용률(예: CPU 또는 메모리 사용량)
  • 처리 백로그의 크기(예: pub/sub 또는 스레드 수)

평균뿐만 아니라

성능을 측정할 때 흔히 저지르는 실수는 평균 (평균) 사례만 보는 것입니다. 이는 유용하지만 지연 시간 분포에 관한 유용한 정보를 제공하지는 않습니다. 추적하는 데 더 적합한 측정항목은 성능 백분위수입니다(예: 측정항목의 50/75/90/99백분위수).

일반적으로 최적화는 두 단계로 진행할 수 있습니다. 먼저 90번째 백분위 지연 시간에 맞게 최적화합니다. 그런 다음 99번째 백분위수(대기열 지연 시간이라고도 함)를 고려합니다. 완료하는 데 시간이 훨씬 더 오래 걸리는 소수의 요청입니다.

세부 결과를 위한 서버 측 모니터링

측정항목을 추적할 때는 일반적으로 서버 측 프로파일링을 사용하는 것이 좋습니다. 서버 측은 일반적으로 계측하기가 훨씬 쉽고, 더 세부적인 데이터에 액세스할 수 있으며, 연결 문제로 인한 방해를 덜 받습니다.

엔드 투 엔드 가시성을 위한 브라우저 모니터링

브라우저 프로파일링을 통해 최종 사용자 환경에 대한 추가 통계를 얻을 수 있습니다. 요청 속도가 느린 페이지를 표시할 수 있으며, 이를 서버 측 모니터링과 연관시켜 추가 분석을 진행할 수 있습니다.

Google 애널리틱스페이지 속도 보고서에서 페이지 로드 시간에 대한 기본 모니터링을 제공합니다. 이를 통해 사이트의 사용자 환경을 이해하는 데 유용한 여러 뷰를 확인할 수 있습니다.

  • 페이지 로드 시간
  • 리디렉션 로드 시간
  • 서버 응답 시간

클라우드에서 모니터링

애플리케이션의 성능 측정항목을 캡처하고 모니터링하는 데 사용할 수 있는 도구는 많습니다. 예를 들어 Google Cloud Logging을 사용하여 Google Cloud 프로젝트에 성능 측정항목을 기록한 다음 Google Cloud Monitoring에서 대시보드를 설정하여 기록된 측정항목을 모니터링하고 분류할 수 있습니다.

Python 클라이언트 라이브러리의 맞춤 인터셉터에서 Google Cloud Logging에 로깅하는 로깅 가이드를 참고하세요. Google Cloud에서 이 데이터를 사용하면 로깅된 데이터를 기반으로 측정항목을 빌드하여 Google Cloud Monitoring을 통해 애플리케이션을 파악할 수 있습니다. 사용자 정의 로그 기반 측정항목에 관한 가이드에 따라 Google Cloud Logging으로 전송된 로그를 사용하여 측정항목을 빌드합니다.

또는 모니터링 클라이언트 라이브러리를 사용하여 코드에서 측정항목을 정의하고 로그와 별개로 모니터링으로 직접 전송할 수 있습니다.

로그 기반 측정항목 예

is_fault 값을 모니터링하여 애플리케이션의 오류율을 더 잘 이해하려고 한다고 가정해 보겠습니다. 로그에서 is_fault 값을 새 카운터 측정항목 ErrorCount으로 추출할 수 있습니다.

측정항목 구성

측정항목의 필터 및 라벨

Cloud Logging에서 라벨을 사용하면 로그의 다른 데이터를 기반으로 측정항목을 카테고리로 그룹화할 수 있습니다. Cloud Logging으로 전송된 method 필드의 라벨을 구성하여 Google Ads API 메서드별로 오류 수가 어떻게 분류되는지 확인할 수 있습니다.

ErrorCount 측정항목과 Method 라벨을 구성한 후 Monitoring 대시보드에서 새 차트를 만들어 Method별로 그룹화된 ErrorCount를 모니터링할 수 있습니다.

ErrorCount 대시보드

알림

Cloud Monitoring 및 기타 도구에서 측정항목에 의해 알림이 트리거되는 시점과 방법을 지정하는 알림 정책을 구성할 수 있습니다. Cloud Monitoring 알림 설정에 관한 안내는 알림 가이드를 참고하세요.