Error Reporting 개요

Error Reporting은 실행 중인 클라우드 서비스에서 발생한 오류를 집계합니다. 이러한 오류는 Error Reporting API에서 보고되거나 Error Reporting이 로그 항목에서 스택 추적과 같은 일반적인 텍스트 패턴을 검사할 때 오류로 유추됩니다. Error Reporting은 근본 원인이 동일한 것으로 간주되는 오류를 그룹화합니다.

Cloud Logging은 수집된 사용자 로그가 이러한 패턴과 일치하면 Error Reporting을 자동으로 사용 설정합니다.

Error Reporting은 전역 서비스이므로 소스 및 대상 Google Cloud 프로젝트가 동일하고 CMEK(고객 관리 암호화 키)가 실행 중지된 global 리전의 Cloud Logging 버킷에 저장된 로그 항목만 분석할 수 있습니다. 다른 Google Cloud 프로젝트, 리전화된 버킷으로 로그를 라우팅하거나 CMEK를 사용 설정하면 Error Reporting이 이러한 로그를 캡처하고 분석하지 않습니다.

Error Reporting은 시간당 최대 1,000개의 오류를 샘플링합니다. 이 한도에 도달하면 표시 개수가 추정됩니다. 너무 많은 이벤트가 수신되면 Error Reporting은 시간당 최대 100개의 오류를 샘플링하고 횟수를 계속 추정합니다.

오류 그룹화 방식

Error Reporting은 로그 항목을 평가할 때 다음 조건에 해당하는 로그 항목을 무시합니다.

  • App Engine 표준 환경에서 ERROR 보다 낮은 심각도로 로깅된 오류는 무시됩니다.
  • 사용자가 소유하지 않은 스택 프레임은 무시됩니다(예: 공개 라이브러리에 속한 프레임).
  • 하나 이상의 스택 프레임의 반복 시퀀스는 해당 시퀀스의 단일 어커런스로 대체됩니다.
  • 컴파일러에서 도입된 메소드와 기호는 삭제됩니다.

그런 다음 Error Reporting이 다음 일반 패턴에 따라 오류를 그룹화합니다.

  • 예외가 동일한 예외 유형 및 유사한 스택을 갖는 경우 함께 그룹화됩니다.
  • 일반적으로 발생하는 소스 위치와 관련이 없는 예외에 대해서는 스택 추적이 무시됩니다.
  • 예외 스택이 없는 오류는 보고된 소스 위치(reportLocation)를 계산하여 동일한 로그 항목으로 작성된 경우 함께 그룹화됩니다.

특히 다음과 같은 그룹화 규칙이 다음 순서대로 적용됩니다.

오류 유형 그룹 기준
환경의 일반적인 문제점으로 발생한 오류.

예를 들어 App Engine 관련 문제는 다음과 같습니다.


com.google.apphosting.runtime.HardDeadlineExceededError

com.google.appengine.api.datastore.DatastoreTimeoutException

자바 문제:


java.util.concurrent.CancellationException
예외 유형별로 그룹화됩니다.
스택 추적 오류. 중첩된 예외의 경우 가장 안쪽의 예외가 고려됩니다.

예:


runtime error: index out of range
package1.func1()
      file1:20
package2.func2()
      file2:33
예외 유형 및 최상위 프레임 5개로 그룹화됩니다.
스택 트레이스는 없지만 메시지가 있는 오류.

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


runtime error: index out of range
    func1()
메시지(있는 경우) 및 함수 이름별로 그룹화됩니다. 메시지의 처음 3자 리터럴 토큰만 고려됩니다. 왼쪽의 예시에서는 runtime, error, index입니다.

다음 단계