에러 상세

IMQA Crash의 에러 상세 기능에 대해 안내해 드립니다.

1. 개요

에러 상세

IMQA Crash 에러 상세는 특정 에러가 어떤 앱 버전에서 얼마나 발생했고, 어떤 사용자 환경에서 주로 발생했는지 분석할 수 있습니다. 호출 스택과 에러 발생 경로 등을 확인하고 관리자는 해당 에러에 태그를 달거나 처리 과정을 기록, 확인할 수 있습니다.

화면 설명

‘대시보드'와 ‘에러 검색'에서 특정 에러를 클릭하면 이동할 수 있으며, IMQA Crash 에러 상세는 다음과 같이 구성됩니다.

❶ 에러 정보 ❷ 에러 분포 ❸ 사용자 정보 ❹ 성능 정보 ❺ 태그 ❻ 호출 스택/인스턴스/이동 경로

2. 에러 정보

에러 정보와 누적 횟수를 확인하고 관리자가 처리 과정을 기록, 확인할 수 있습니다.

크래시

❶ 에러 정보 에러 명, 클래스 명, 에러가 발생한 코드 라인 번호를 표시합니다.

최신 앱 버전에서 해당 에러가 신규 발생했을 경우, 복호화된 크래시 정보를 보기 위해서 해당 버전의 프로가드 설정이 필요합니다. 프로가드 설정에 대한 자세한 내용은 ‘Crash 사용하기 > 프로젝트 리스트 > 프로젝트 관리 > 프로가드 설정'을 참고하세요.

❷ 상태 담당자 확인 후 에러의 처리 상태를 변경할 수 있습니다. 클릭 시 상태를 변경할 수 있는 옵션을 표시합니다. 상태 변경 기준은 별도로 정해져 있지는 않으며 관리자 판단 후 아래와 같이 설정할 수 있습니다.

  • 신규: 새롭게 발생된 에러일 경우

  • 처리: 담당자 원인 파악 후 처리 중일 경우

  • 완료: 담당자 처리 업무가 완료되었을 경우

  • 마감: 관리자 확인 후 해당 에러 처리 업무를 완료시킬 경우

상태 변경을 진행한 에러는 동일 버전 또는 하위 버전에서 동일한 에러가 발생한 경우 별도로 상태 변경이 되지 않습니다. 다만, 상위 버전에서 동일한 에러가 발생한 경우 해당 에러와의 구분을 위해 신규 에러로 생성됩니다.

❸ 최신 버전/누적 해당 에러가 발생한 가장 최신 앱 버전 정보, 해당 에러의 발생 총 누적 횟수를 표시합니다.

웹 크래시

❶ 캐치된 에러 인스턴스 웹뷰에서 에러가 생성되었을 경우 해당 에러의 캐치된 에러 인스턴스명을 표시합니다.

❷ 사용자 정의 에러 메시지 특정 에러 타입 에러가 생성될 때 사용자가 지정한 메시지를 표시합니다.

throw new Error("사용자가 지정한 에러 메시지");

WebView에서 수집하는 기본 에러 메시지를 원하는 에러 메시지로 변경하여 수집할 수 있습니다. 상세한 웹 에러 분석을 위해 에러 메시지를 지정하는 것을 권장드립니다. 에러 메시지 지정에 대한 자세한 내용은 ‘IMQA Crash 설치 가이드 > Custom Web Crash 발생 > 사용자 정의 에러 메시지 지정'을 참고하세요

❸ 에러 타입 / 코드 라인 넘버 웹뷰 에러의 타입과 해당 에러의 라인 넘버를 확인 할 수 있습니다.

에러 타입설명

Error

사용자가 설정한 에러 타입입니다.

EvalError

eval()에서 발생하는 오류입니다.

RangeError

변수의 유효한 범위를 벗어났을 경우 생성되는 오류입니다.

ReferenceError

잘못된 참조를 했을 경우 생성되는 오류입니다.

SyntaxError

잘못된 구문이 존재하는 경우 오류입니다.

TypeError

유효한 자료형이 아닐 경우 해당 타입의 오류입니다.

URIError

encodeURI()decodeURI() 함수에 부적절한 매개변수를 넘겨준 경우 생성되는 오류입니다.

AggregateError

여러 오류를 하나의 오류로 감싸는 오류 형태입니다.

3. 앱 버전별 에러 발생률

최근 1주일간 해당 에러가 어떤 앱 버전에서 얼마나 발생했는지를 표시합니다. 발생 추이와 앱 버전별 비율을 확인할 수 있습니다.

  • 앱 버전별 에러 발생률: 최근 1주일 동안 일별 에러 발생 수를 앱 버전별로 할당합니다.

Y축은 에러 발생 수를 의미합니다. 해당 에러 처리 후 최신 버전에도 재발생했는지 파악하기 용이합니다. 또한 특정 날짜에 에러 발생 수가 급격하게 증가했다면, 어떤 앱 버전에서 발생했는지 확인해보세요. 특정 앱 버전에서 지속적으로 에러가 발생할 경우 해당 앱 버전 사용자에게 업데이트를 권고할 수 있습니다.

4. 사용자 정보

최근 1주일간 해당 에러가 어떤 사용자 환경에서 많이 발생했는지를 표시합니다.

  • Wi-Fi/통신사: 해당 에러가 발생한 사용자의 네트워크 환경을 표시합니다. Wi-Fi 환경과 통신사별로 확인할 수 있습니다.

  • GPS: 해당 에러가 발생한 사용자의 GPS 상태를 표시합니다. ‘ON’과 ‘OFF’로 분류합니다.

  • 앱 버전: 해당 에러가 발생한 사용자의 앱 버전을 표시합니다.

  • OS 버전: 해당 에러가 발생한 사용자의 OS 버전을 표시합니다.

  • 디바이스: 해당 에러가 발생한 사용자의 디바이스를 표시합니다.

‘Unknown Device’는 디바이스 정보가 수집되지 않았음을 의미합니다. 맥과 같은 기기에서 시뮬레이터로 테스트 한 경우 등이 있습니다.

  • 국가: 해당 에러가 발생한 사용자의 접속 국가를 표시합니다.

5. 성능 정보

해당 에러가 발생했을 때의 평균 자원 사용량을 표시합니다.

  • CPU 사용량: 해당 에러가 발생했을 때의 평균 CPU 사용량을 ‘%’로 표시합니다.

  • 메모리 사용량: 해당 에러가 발생했을 때의 평균 메모리 사용량을 ‘MB’로 표시합니다.

개별 사용자 자원 사용량은 'Crash 사용하기 > 에러 상세 > 호출 스택/인스턴스/이동 경로 > 인스턴스 > 상세'에서 확인할 수 있습니다.

6. 태그

해당 에러에 대한 추가 정보를 자유롭게 태그로 관리할 수 있습니다. 태그는 SDK에서 에러 종류와 등급 설정 시에도 설정할 수 있으며, ‘Android > Crash 설정 > Custom Crash 발생'을 참고하세요.

  1. 태그에 원하는 태그 이름을 입력하고 [+] 아이콘을 클릭합니다.

  2. 아래 빈 영역에 등록한 태그가 표시됩니다. [X] 아이콘을 클릭해서 삭제할 수 있습니다.

등록한 태그는 ‘에러 검색' 페이지에서 검색어로 활용할 수 있습니다. 앱의 타겟 사용자 환경으로 태그를 관리하거나 발생 상황, 높은 자원 사용량 기록 등으로 활용해보세요. 하나의 에러에는 같은 이름의 태그를 등록할 수 없습니다.

7. 호출 스택/인스턴스/이동 경로

크래시 발생 스택 정보와 전체 스레드의 스택을 확인할 수 있습니다. 개별 사용자의 상세 정보와 이동 경로를 분석할 수 있습니다.

호출 스택

크래시 발생 스택 정보와 전체 스레드의 스택을 확인하여 에러의 원인과 발생 위치를 확인할 수 있습니다. 스택에 관련된 정보를 파일 형태로 다운로드하여 구성원과 공유할 수 있습니다.

스택 필터 기본 크래시 정보를 가장 상단에 보여주고 있으며, 다른 Thread Call Stack에서 발생한 에러를 확인 할 수 있도록 다른 Stack 정보를 선택하여 보실 수 있습니다.

크래시 발생 스택 크래시 스택 정보 중 상위 스택 라인을 표시합니다.

전체 스택 전체 스레드의 스택 정보를 표시합니다. 이를 통해 보다 정확하게 에러의 원인을 파악하는 데에 참고할 수 있습니다.

원본 다운로드 스택에 관련된 정보를 ‘.txt’ 파일 형태로 다운로드하여 구성원과 공유할 수 있습니다. [원본 다운로드]를 클릭하면 ‘stacktrace.txt’ 파일을 ‘Download’ 폴더에 저장합니다.

인스턴스

크래시가 발생한 사용자 정보를 확인할 수 있습니다. 개별 사용자의 LogCat(로그켓, 로그 상세 정보)과 화면 이동 경로, 사용자 환경에 대한 상세 정보를 확인할 수 있습니다.

사용자 정보 개별 사용자의 IP 주소, 앱 버전, 디바이스, 국가 정보를 표시하고 로그켓, 이동 경로, 상세 정보를 팝업으로 확인할 수 있습니다.

로그켓 *안드로이드 앱 전용 안드로이드 앱의 경우 로그켓 정보를 확인할 수 있습니다. 개별 사용자 항목에서 로그켓 [보기]를 클릭하면 로그켓 정보 팝업이 표시됩니다.

로그켓은 안드로이드 상세 로그 정보를 의미하며, 에러 스택 정보로 파악하지 못한 문제를 크래시 발생 시점 이전에 기록된 로그 정보를 보여주고 있습니다.

이동 경로 개별 사용자 항목에서 이동 경로 [보기]를 클릭하면 이동 경로 정보 팝업이 표시됩니다.

상세 사용자의 디바이스, 앱 정보, OS 등의 환경 정보를 자세하게 확인할 수 있습니다. 개별 사용자 항목에서 상세 [보기]를 클릭하면 상세 정보 팝업이 표시됩니다.

  • 사용자 정보: 해당 사용자의 이름, 고유ID, IP주소, 이메일 주소를 표시합니다.

사용자 정보는 별도로 SDK에서 제공하는 API를 통해 데이터를 제공하는 경우에만 이름, 고유ID, 이메일 주소를 표시합니다.

  • 디바이스: 해당 사용자의 디바이스 관련 정보를 표시합니다.

  • 앱 정보: 해당 사용자의 앱 실행 시작시간, 버전 등의 정보를 표시합니다.

  • OS 정보: 해당 사용자의 플랫폼, OS 버전, 루팅 여부 등을 표시합니다.

  • SDK 정보: 해당 사용자의 앱에 설치된 IMQA SDK 버전을 표시합니다.

  • 사용자 정의 로그: 별도로 SDK에서 제공되는 API를 통해 로그 정보를 전송한 경우에 제공한 로그 정보를 표시합니다.

  • 사용자 정의 키: 별도로 SDK에서 제공되는 API를 통해 키/값 정보를 전송한 경우에 제공한 키/값 정보를 표시합니다.

크래시가 발생한 사용자가 이동한 이벤트 경로를 확인할 수 있습니다.

Sankey 다이어그램은 전체 흐름에서 가장 주된, 중요한 흐름을 찾을 때 유용합니다. 에러 발생 지점까지의 사용자의 주 이벤트를 시각적으로 파악할 수 있습니다. 화면과 화면 사이의 영역에 마우스 포인터를 올리면 ‘순서:이벤트 → 순서:이벤트: 사용자 수’로 툴팁이 표시됩니다.

  • 사용자 수: 특정 화면에서 특정 화면으로 이동한 사용자 수를 카운트합니다.

에러 발생 지점까지의 특정 경로가 크게 강조될 경우, 해당 경로로 이동하는 많은 사용자가 문제를 겪고 있음으로 해석할 수 있습니다. 해당 경로가 앱의 목표 경로라면 빠르게 문제를 해결해야 함을 의미합니다.

Last updated