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 입니다. |