Firebase Crashlytics 데이터를 다음으로 내보낼 수 있습니다. BigQuery, 추가 분석을 실시했습니다 BigQuery를 사용하면 BigQuery SQL을 다른 클라우드 제공업체로 내보내서 시각화 및 커스텀 대시보드를 만들 수 있습니다
BigQuery(으)로 내보내기 사용 설정
- Firebase 콘솔에서 다음으로 이동합니다. 통합 페이지.
- BigQuery 카드에서 연결을 클릭합니다.
- 화면에 표시된 안내에 따라 BigQuery로 내보내기를 사용 설정합니다.
BigQuery로 내보내기를 사용 설정하면 다음과 같은 결과가 발생합니다.
기본적으로 프로젝트의 모든 앱은 BigQuery 등에 연결됩니다. 나중에 프로젝트에 추가한 앱은 자동으로 연결됩니다. BigQuery 다음을 수행할 수 있습니다. 어떤 앱에서 데이터를 전송할지 관리할 수 있습니다.
Firebase에서 Firebase 프로젝트의 데이터가 매일 동기화되도록 설정하고 BigQuery
Firebase 기존 데이터의 사본을 내보내 BigQuery에게 전송합니다. 여기에는 연결된 각 앱에서 일일 데이터 동기화로 생성된 데이터가 있는 배치 테이블이 포함됩니다.
만약 BigQuery(으)로 Crashlytics 스트리밍 내보내기 사용 설정 또한 연결된 모든 앱에는 지속적인 업데이트 데이터가 포함된 실시간 표가 있습니다. 데이터입니다.
BigQuery(으)로 내보내기를 비활성화하려면 다음 단계를 따르세요. 프로젝트 연결 해제 (Firebase 콘솔에서 확인)
어떤 데이터를 BigQuery(으)로 내보내나요?
Firebase Crashlytics 데이터는 다음 이름의 BigQuery 데이터 세트로 내보내집니다.
firebase_crashlytics
입니다. 기본적으로 개별 테이블은 내부에 생성됩니다.
프로젝트에 있는 각 앱의 Crashlytics 데이터 세트입니다. Firebase는
마침표를 밑줄로 변환하여 앱의 식별자에 기반한 테이블
끝에 추가되는 플랫폼 이름입니다.
예를 들어 패키지 이름이 com.google.test
인 Android 앱의 데이터입니다.
com_google_test_ANDROID
이라는 이름의 테이블에 있을 것입니다. 이 배치 테이블은 업데이트됨
하루에 한 번 다음 위치로 Crashlytics 스트리밍 내보내기를 사용 설정한 경우
BigQuery이면 Crashlytics 데이터도 실시간으로 스트리밍됩니다.
이름이 com_google_test_ANDROID_REALTIME
인 테이블로 복사됩니다.
테이블의 각 행은 비정상 종료, 심각하지 않은 오류, ANR을 포함하여 앱에서 발생한 이벤트를 나타냅니다.
BigQuery(으)로 Crashlytics 스트리밍 내보내기
다음을 사용하여 Crashlytics 데이터를 실시간으로 스트리밍할 수 있습니다. BigQuery 스트리밍. 발표와 같이 실시간 데이터가 필요한 어떤 용도로든 사용할 수 있습니다. 실시간 대시보드에 표시되는 정보, 애플리케이션 문제를 해결하는 데 도움이 됩니다.
BigQuery(으)로 Crashlytics 스트리밍 내보내기를 사용 설정하면 다음 사항이 적용됩니다. 배치 테이블 외에 실시간 테이블도 있습니다. 다음은 각 테이블 간의 차이점입니다.
일괄 테이블 | 실시간 테이블 |
---|---|
|
|
배치 테이블은 장기 분석 및 시간 경과에 따른 추세 식별에 이상적임 이벤트를 작성하기 전에 영구적으로 저장하고 백필할 수 있기 때문입니다. 표에 최대 30일 동안 반영됩니다. 실시간 테이블에 데이터를 쓸 때 즉시 BigQuery에 작성하므로 라이브 스트리밍에 적합합니다. 대시보드와 맞춤 알림을 살펴볼 수 있습니다 이 두 테이블은 스티칭 검색어와 결합되어 둘 다의 이점이 있습니다
기본적으로 실시간 테이블의 파티션 만료 시간은 30일입니다. 받는사람 수정하는 방법을 알아보려면 파티션 만료 시간 설정 자세한 내용은 BigQuery 문서를 참조하세요.
BigQuery(으)로 Crashlytics 스트리밍 내보내기 사용 설정
- Firebase 콘솔에서 통합 페이지로 이동합니다.
- BigQuery 카드에서 관리를 클릭합니다.
- 스트리밍 포함 체크박스를 선택합니다.
이렇게 하면 연결된 모든 앱에서 스트리밍이 사용 설정됩니다.
내보낸 데이터로 무엇을 할 수 있나요?
BigQuery로 내보내기에는 기기 유형, 오류(Apple 앱) 및 Crashlytics 로그 등의 데이터가 포함됩니다.
내보낸 Crashlytics 데이터와 그 표를 정확하게 검토합니다. 스키마를 참조하세요.
데이터 스튜디오 템플릿 사용
데이터 스튜디오 템플릿에서 실시간 데이터를 사용 설정하려면 자세한 내용은 데이터 스튜디오를 사용하여 내보낸 Crashlytics 데이터 시각화
뷰 만들기
BigQuery UI를 사용하여 쿼리를 뷰로 변환할 수 있습니다. 자세한 안내는 다음을 참고하세요. 뷰 만들기: BigQuery 문서를 참조하세요.
쿼리 실행
다음 예는 비정상 종료 이벤트 데이터를 집계하는 보고서를 생성할 Crashlytics 데이터 더 쉽게 이해할 수 있습니다 이러한 유형의 보고서는 이러한 API는 Firebase 콘솔의 Crashlytics 대시보드에서 비정상 종료 데이터에 대한 이해와 분석이 필요합니다.
예시 1: 날짜별 비정상 종료
가능한 한 많은 버그를 수정하기 위해 노력한 결과 팀이 마침내 새로운 사진 공유 앱을 출시할 준비가 되었습니다. 그 전에 비정상 종료 횟수도 확인하여 시간이 지날수록 앱의 안정성이 향상됩니다.
다음은 Android 앱의 쿼리 예입니다. iOS 앱의 경우 번들 ID를 사용합니다.
및 IOS
(패키지 이름 및 ANDROID
대신)
SELECT
COUNT(DISTINCT event_id) AS number_of_crashes,
FORMAT_TIMESTAMP("%F", event_timestamp) AS date_of_crashes
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`
GROUP BY
date_of_crashes
ORDER BY
date_of_crashes DESC
LIMIT 30;
예시 2: 가장 심각한 비정상 종료 찾기
제작 계획의 우선순위를 적절하게 설정하기 위해 가장 높은 우선순위 10개를 앱의 지속적인 비정상 종료 발생률을 확인할 수 있습니다 사용자는 이 쿼리와 관련된 학습합니다.
다음은 Android 앱의 쿼리 예입니다. iOS 앱의 경우 번들 ID를 사용합니다.
및 IOS
(패키지 이름 및 ANDROID
대신)
SELECT
DISTINCT issue_id,
COUNT(DISTINCT event_id) AS number_of_crashes,
COUNT(DISTINCT installation_uuid) AS number_of_impacted_user,
blame_frame.file,
blame_frame.line
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`
WHERE
event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(),INTERVAL 168 HOUR)
AND event_timestamp < CURRENT_TIMESTAMP()
GROUP BY
issue_id,
blame_frame.file,
blame_frame.line
ORDER BY
number_of_crashes DESC
LIMIT 10;
예시 3: 비정상 종료가 가장 많이 발생한 상위 10개 기기
가을은 신규 스마트폰이 출시되는 시기입니다. 귀사는 이것이 새로운 제품이라는 의미이기도 하다는 것을 알고 있습니다. 시즌별, 특히 Android의 경우 문제를 해결할 수 있습니다. 경쟁에서 앞서기 위해 향후 호환성 문제가 발생할 경우 개발자는 컨테이너 내의 애플리케이션을 식별하는 쿼리를 지난주 (168시간)에 비정상 종료가 가장 많이 발생한 기기 10개
다음은 Android 앱의 쿼리 예입니다. iOS 앱의 경우 번들 ID를 사용합니다.
및 IOS
(패키지 이름 및 ANDROID
대신)
SELECT
device.model,
COUNT(DISTINCT event_id) AS number_of_crashes
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`
WHERE
event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 168 HOUR)
AND event_timestamp < CURRENT_TIMESTAMP()
GROUP BY
device.model
ORDER BY
number_of_crashes DESC
LIMIT 10;
예시 4: 커스텀 키별 필터링
게임 환경이 어떤 레벨에 있는지 알고 싶어 하는 게임 개발자입니다. 제공합니다
해당 통계를 추적할 수 있도록
맞춤 Crashlytics 키
current_level
)을 호출하고 사용자가 새 레벨에 도달할 때마다 업데이트합니다.
Swift
Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");
Objective-C
CrashlyticsKit setIntValue:3 forKey:@"current_level";
자바
Crashlytics.setInt("current_level", 3);
BigQuery로 내보내기에 이 키를 사용하면
각 비정상 종료와 관련된 current_level
값의 분포를 보고합니다.
이벤트를 처리합니다.
다음은 Android 앱의 쿼리 예입니다. iOS 앱의 경우 번들 ID를 사용합니다.
및 IOS
(패키지 이름 및 ANDROID
대신)
SELECT
COUNT(DISTINCT event_id) AS num_of_crashes,
value
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`
UNNEST(custom_keys)
WHERE
key = "current_level"
GROUP BY
key,
value
ORDER BY
num_of_crashes DESC
예시 5: 사용자 ID 추출
Android 앱을 사전 체험판으로 이용할 수 있습니다. 대부분의 사용자는 Google Workspace를 선호하지만 비정상 종료가 비정상적으로 많이 발생한 경우 먼저 해당 사용자의 모든 비정상 종료 이벤트를 가져오는 쿼리를 작성하고 사용자 ID를 사용하여 광고를 게재할 수 있습니다.
다음은 Android 앱의 쿼리 예입니다. iOS 앱의 경우 번들 ID를 사용합니다.
및 IOS
(패키지 이름 및 ANDROID
대신)
SELECT *
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`
WHERE
user.id IN ("USER_ID_1", "USER_ID_2", "USER_ID_3")
ORDER BY
user.id
예시 6: 특정 비정상 종료 문제를 경험한 모든 사용자 파악
팀에서 실수로 베타 테스터 그룹에 심각한 버그를 배포했습니다. 팀에서는 '가장 심각한 비정상 종료 찾기' 예시 특정 비정상 종료 문제 ID를 확인하세요. 이제 팀은 쿼리를 사용하여 이 비정상 종료의 영향을 받은 앱 사용자 목록을 추출합니다.
다음은 Android 앱의 쿼리 예입니다. iOS 앱의 경우 번들 ID를 사용합니다.
및 IOS
(패키지 이름 및 ANDROID
대신)
SELECT user.id as user_id
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`
WHERE
issue_id = "ISSUE_ID"
AND application.display_version = "APP_VERSION"
AND user.id != ""
ORDER BY
user.id;
예시 7: 비정상 종료 문제의 영향을 받은 사용자 수(국가별 분류)
새 버전을 출시하는 중에 팀에서 심각한 버그를 발견했습니다. 나 지난 30일 동안의 '가장 심각한 비정상 종료 찾기' 예시 특정 비정상 종료 문제 ID를 확인하세요. 이제 팀에서 다음을 확인하고자 합니다. 전 세계 여러 국가의 사용자에게 확산되는 경우
이 쿼리를 작성하려면 팀에서 다음을 수행해야 합니다.
BigQuery(으)로 Google Analytics 데이터 내보내기를 사용 설정합니다. BigQuery로 프로젝트 데이터 내보내기를 참조하세요.
사용자 ID가 두 Google Analytics SDK에 모두 전달되도록 앱을 업데이트합니다. 및 Crashlytics SDK
Swift
Crashlytics.sharedInstance().setUserIdentifier("123456789"); Analytics.setUserID("123456789");
Objective-C
CrashlyticsKit setUserIdentifier:@"123456789"; FIRAnalytics setUserID:@"12345678 9";
자바
Crashlytics.setUserIdentifier("123456789"); mFirebaseAnalytics.setUserId("123456789");
사용자 ID 필드를 사용하여 Crashlytics 데이터 세트에 비정상 종료가 발생한 Google Analytics 데이터 세트
다음은 Android 앱의 쿼리 예입니다. iOS 앱의 경우 (패키지 이름과
ANDROID
대신) 번들 ID 및IOS
SELECT DISTINCT c.issue_id, a.geo.country, COUNT(DISTINCT c.user.id) as num_users_impacted FROM `PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID` c INNER JOIN `PROJECT_ID.analytics_TABLE_NAME.events_*` a on c.user.id = a.user_id WHERE c.issue_id = "ISSUE_ID" AND a._TABLE_SUFFIX BETWEEN '20190101' AND '20200101' GROUP BY c.issue_id, a.geo.country, c.user.id
예시 8: 상위 5개 문제(오늘 기준)
다음은 Android 앱의 쿼리 예입니다. iOS 앱의 경우 번들 ID를 사용합니다.
및 IOS
(패키지 이름 및 ANDROID
대신)
SELECT
issue_id,
COUNT(DISTINCT event_id) AS events
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID_REALTIME`
WHERE
DATE(event_timestamp) = CURRENT_DATE()
GROUP BY
issue_id
ORDER BY
events DESC
LIMIT
5;
예시 9: 상위 5개 문제(DATE~오늘)
일괄 및 실시간 테이블을 병합 쿼리와 결합하여
신뢰할 수 있는 일괄 데이터에
실시간 정보를 제공할 수 있습니다 event_id
이(가) 기본이기 때문에
키가 있는 경우 DISTINCT event_id
를 사용하여 두 인스턴스에서 공통된 이벤트를 중복 삭제할 수 있습니다.
할 수 있습니다.
다음은 Android 앱의 쿼리 예입니다. iOS 앱의 경우 번들 ID를 사용합니다.
및 IOS
(패키지 이름 및 ANDROID
대신)
SELECT issue_id, COUNT(DISTINCT event_id) AS events FROM ( SELECT issue_id, event_id, event_timestamp FROM `PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID_REALTIME` UNION ALL SELECT issue_id, event_id, event_timestamp FROM `PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`) WHERE event_timestamp >= "YYYY_MM_DD" GROUP BY issue_id ORDER BY events DESC LIMIT 5;
BigQuery의 Crashlytics 스키마 이해하기
BigQuery로 Crashlytics 데이터 내보내기를 설정하면 Firebase에서 이벤트를 포함한 최근 이벤트 (비정상 종료, 심각하지 않은 오류, ANR) 내보내기 이 날짜로부터 최대 2일 이내에 갱신할 수 있으며 백필 최대 30일
이 시점부터 내보내기를 비활성화할 때까지 Firebase는 Crashlytics 이벤트. 데이터가 생성되는 데 몇 분 정도 걸릴 수 있습니다. 각 내보내기 후 BigQuery에서 사용할 수 있습니다.
데이터 세트
Crashlytics가 BigQuery에 Crashlytics의 새 데이터 세트를 만듭니다. 데이터입니다. 이 데이터 세트는 프로젝트에 여러 개의 앱이 있더라도 프로젝트 전체를 포함합니다.
테이블
Crashlytics는 프로젝트에 있는 각 앱의 데이터 세트에 테이블을 만듭니다. (해당 앱의 데이터 내보내기를 선택 해제하지 않는 한 제외) Firebase는 마침표를 밑줄로 변환하여 앱의 식별자에 기반한 테이블 끝에 추가되는 플랫폼 이름입니다.
예를 들어 패키지 이름이 com.google.test
인 Android 앱의 데이터입니다.
테이블 com_google_test_ANDROID
에 위치하며 실시간 데이터는
(사용 설정된 경우)는 com_google_test_ANDROID_REALTIME
이라는 테이블에 포함됩니다.
테이블에는 Crashlytics 데이터 세트와 맞춤 Crashlytics 키 정의할 수 있습니다
행
테이블의 각 행은 앱에 발생한 오류를 나타냅니다.
열
비정상 종료, 심각하지 않은 오류, ANR의 테이블 열은 동일합니다. 만약 BigQuery(으)로 Crashlytics 스트리밍 내보내기가 사용 설정된 후 실시간 테이블은 배치 테이블과 동일한 열을 갖게 됩니다. 참고: 스택 트레이스가 없는 이벤트를 나타내는 열이 행에 있습니다.
내보내기에 포함된 열은 다음 표에 나와 있습니다.
필드 이름 | 데이터 유형 | 설명 |
---|---|---|
platform |
STRING | Firebase 프로젝트에 등록된 앱의 플랫폼입니다.
(유효한 값: IOS 또는 ANDROID )
|
bundle_identifier |
STRING | Firebase 프로젝트에 등록된 앱의 고유 식별자입니다.
(예: com.google.gmail Apple 플랫폼 앱의 경우 앱의 번들 ID입니다. Android 앱의 경우 앱의 패키지 이름입니다. |
event_id |
STRING | 이벤트의 고유 ID |
is_fatal |
부울 | 앱의 비정상 종료 여부 |
error_type |
STRING | 이벤트의 오류 유형 (예: FATAL ,
NON_FATAL , ANR 등) |
issue_id |
STRING | 이벤트와 관련된 문제 |
variant_id |
STRING | 이 이벤트와 관련된 문제 변형 모든 이벤트에 관련된 문제 변형이 있는 것은 아닙니다. |
event_timestamp |
타임스탬프 | 이벤트가 발생한 시점 |
device |
RECORD | 이벤트가 발생한 기기 |
device.manufacturer |
STRING | 기기 제조업체 |
device.model |
STRING | 기기 모델 |
device.architecture |
STRING | 예를 들면 X86_32 , X86_64 , ARMV7 입니다.
ARM64 , ARMV7S 또는 ARMV7K |
memory |
RECORD | 기기의 메모리 상태 |
memory.used |
INT64 | 메모리 사용량(바이트) |
memory.free |
INT64 | 남은 메모리(바이트) |
storage |
RECORD | 기기의 영구 스토리지 |
storage.used |
INT64 | 스토리지 사용량(바이트) |
storage.free |
INT64 | 남은 스토리지(바이트) |
operating_system |
RECORD | 기기의 OS 세부정보 |
operating_system.display_version |
STRING | 기기의 OS 버전 |
operating_system.name |
STRING | 기기의 OS 이름 |
operating_system.modification_state |
STRING | 기기 수정 여부
예를 들어 탈옥된 앱은 MODIFIED 이고 루팅된 앱은
UNMODIFIED ) |
operating_system.type |
STRING | (Apple 앱만 해당) 기기에서 실행 중인 OS 유형입니다 (예:
IOS , MACOS 등) |
operating_system.device_type |
STRING | 기기 유형 (예: MOBILE , TABLET ,
TV 등); '기기 카테고리'라고도 함 |
application |
RECORD | 이벤트를 생성한 앱 |
application.build_version |
STRING | 앱의 빌드 버전 |
application.display_version |
STRING | |
user |
RECORD | (선택사항) 앱 사용자에 대해 수집된 정보 |
user.name |
STRING | (선택사항) 사용자 이름 |
user.email |
STRING | (선택사항) 사용자의 이메일 주소 |
user.id |
STRING | (선택사항) 사용자와 연결된 앱별 ID |
custom_keys |
반복 레코드 | 개발자가 정의한 키-값 쌍 |
custom_keys.key |
STRING | 개발자가 정의한 키 |
custom_keys.value |
STRING | 개발자가 정의한 값 |
installation_uuid |
STRING | 고유한 앱 및 기기 설치를 식별하는 ID |
crashlytics_sdk_versions |
STRING | 이벤트를 생성한 Crashlytics SDK 버전 |
app_orientation |
STRING | 예를 들면 PORTRAIT , LANDSCAPE ,
FACE_UP , FACE_DOWN 등 |
device_orientation |
STRING | 예를 들면 PORTRAIT , LANDSCAPE ,
FACE_UP , FACE_DOWN 등 |
process_state |
STRING | BACKGROUND 또는 FOREGROUND |
logs |
반복 레코드 | Crashlytics 로거에서 생성한 타임스탬프가 적용된 로그 메시지 (사용 설정된 경우) |
logs.timestamp |
타임스탬프 | 로그가 작성된 시점 |
logs.message |
STRING | 로깅된 메시지 |
breadcrumbs |
반복 레코드 | 타임스탬프 Google Analytics 탐색경로, (사용 설정된 경우) |
breadcrumbs.timestamp |
타임스탬프 | 탐색경로와 연결된 타임스탬프 |
breadcrumbs.name |
STRING | 탐색경로와 연결된 이름 |
breadcrumbs.params |
반복 레코드 | 탐색경로와 연결된 매개변수 |
breadcrumbs.params.key |
STRING | 탐색경로와 연결된 매개변수 키 |
breadcrumbs.params.value |
STRING | 탐색경로와 연결된 매개변수 값 |
blame_frame |
RECORD | 비정상 종료나 오류의 근본 원인으로 확인된 프레임 |
blame_frame.line |
INT64 | 프레임 파일의 줄 번호 |
blame_frame.file |
STRING | 프레임 파일의 이름 |
blame_frame.symbol |
STRING | 수화 기호 또는 원시 기호(수화될 수 없는 경우) |
blame_frame.offset |
INT64 | 코드가 포함된 바이너리 이미지의 바이트 오프셋 Java 예외 설정 해제 |
blame_frame.address |
INT64 | 코드가 포함된 바이너리 이미지의 주소 Java 프레임에 설정되지 않음 |
blame_frame.library |
STRING | 프레임을 포함하는 라이브러리의 표시 이름 |
blame_frame.owner |
STRING | 예를 들면 DEVELOPER , VENDOR ,
RUNTIME , PLATFORM 또는 SYSTEM |
blame_frame.blamed |
부울 | Crashlytics에서 이 프레임이 비정상 종료의 원인이라고 판단했는지 여부 또는 오류 |
exceptions |
반복 레코드 | (Android만 해당) 이벤트 중에 발생한 예외입니다. 중첩됨 예외는 시간 역순으로 표시됩니다. 즉, 마지막 레코드가 발생한 첫 번째 예외임 |
exceptions.type |
STRING | 예외 유형
(예: java.lang.IllegalStateException) |
exceptions.exception_message |
STRING | 예외와 관련된 메시지 |
exceptions.nested |
부울 | 마지막으로 발생한 예외 (첫 번째 레코드 의미)를 제외한 모든 경우에 true |
exceptions.title |
STRING | 스레드의 제목 |
exceptions.subtitle |
STRING | 스레드의 부제목 |
exceptions.blamed |
부울 | Crashlytics에서 예외가 다음에 대한 책임이 있다고 판단하면 true입니다. 오류 또는 비정상 종료 |
exceptions.frames |
반복 레코드 | 예외와 관련된 프레임 |
exceptions.frames.line |
INT64 | 프레임 파일의 줄 번호 |
exceptions.frames.file |
STRING | 프레임 파일의 이름 |
exceptions.frames.symbol |
STRING | 수화 기호 또는 원시 기호(수화될 수 없는 경우) |
exceptions.frames.offset |
INT64 | 코드가 포함된 바이너리 이미지의 바이트 오프셋 Java 예외 설정 해제 |
exceptions.frames.address |
INT64 | 코드가 포함된 바이너리 이미지의 주소 Java 프레임에 설정되지 않음 |
exceptions.frames.library |
STRING | 프레임을 포함하는 라이브러리의 표시 이름 |
exceptions.frames.owner |
STRING | 예를 들면 DEVELOPER , VENDOR ,
RUNTIME , PLATFORM 또는 SYSTEM |
exceptions.frames.blamed |
부울 | Crashlytics에서 이 프레임이 비정상 종료의 원인이라고 판단했는지 여부 또는 오류 |
error |
반복 레코드 | (Apple 앱만 해당) 치명적이지 않은 오류 |
error.queue_name |
STRING | 스레드가 실행 중인 큐 |
error.code |
INT64 | 앱에서 커스텀 로깅된 NSError와 관련된 오류 코드 |
error.title |
STRING | 스레드의 제목 |
error.subtitle |
STRING | 스레드의 부제목 |
error.blamed |
부울 | Crashlytics가 이 프레임이 오류 |
error.frames |
반복 레코드 | 스택 추적의 프레임 |
error.frames.line |
INT64 | 프레임 파일의 줄 번호 |
error.frames.file |
STRING | 프레임 파일의 이름 |
error.frames.symbol |
STRING | 수화 기호 또는 원시 기호(수화될 수 없는 경우) |
error.frames.offset |
INT64 | 코드가 포함된 바이너리 이미지로의 바이트 오프셋 |
error.frames.address |
INT64 | 코드가 포함된 바이너리 이미지의 주소 |
error.frames.library |
STRING | 프레임을 포함하는 라이브러리의 표시 이름 |
error.frames.owner |
STRING | 예를 들면 DEVELOPER , VENDOR ,
RUNTIME , PLATFORM 또는 SYSTEM |
error.frames.blamed |
부울 | Crashlytics가 이 프레임이 오류 |
threads |
반복 레코드 | 이벤트 발생 시점에 표시된 스레드 |
threads.crashed |
부울 | 스레드의 비정상 종료 여부 |
threads.thread_name |
STRING | 스레드의 이름 |
threads.queue_name |
STRING | (Apple 앱만 해당) 스레드가 실행 중인 큐 |
threads.signal_name |
STRING | 앱의 비정상 종료를 유발한 신호의 이름(비정상 종료된 네이티브 스레드에만 있음) |
threads.signal_code |
STRING | 앱의 비정상 종료를 유발한 신호의 코드(비정상 종료된 네이티브 스레드에만 있음) |
threads.crash_address |
INT64 | 앱의 비정상 종료를 유발한 신호의 주소(비정상 종료된 네이티브 스레드에만 있음) |
threads.code |
INT64 | (Apple 앱만 해당) 애플리케이션에서 커스텀 로깅된 오류 코드 NS오류 |
threads.title |
STRING | 스레드의 제목 |
threads.subtitle |
STRING | 스레드의 부제목 |
threads.blamed |
부울 | Crashlytics에서 이 프레임이 비정상 종료의 원인이라고 판단했는지 여부 또는 오류 |
threads.frames |
반복 레코드 | 스레드의 프레임 |
threads.frames.line |
INT64 | 프레임 파일의 줄 번호 |
threads.frames.file |
STRING | 프레임 파일의 이름 |
threads.frames.symbol |
STRING | 수화 기호 또는 원시 기호(수화될 수 없는 경우) |
threads.frames.offset |
INT64 | 코드가 포함된 바이너리 이미지로의 바이트 오프셋 |
threads.frames.address |
INT64 | 코드가 포함된 바이너리 이미지의 주소 |
threads.frames.library |
STRING | 프레임을 포함하는 라이브러리의 표시 이름 |
threads.frames.owner |
STRING | 예를 들면 DEVELOPER , VENDOR ,
RUNTIME , PLATFORM 또는 SYSTEM |
threads.frames.blamed |
부울 | Crashlytics가 이 프레임이 오류 |
unity_metadata.unity_version |
STRING | 이 기기에서 실행 중인 Unity 버전 |
unity_metadata.debug_build |
부울 | 디버그 빌드인 경우 |
unity_metadata.processor_type |
STRING | 프로세서 유형 |
unity_metadata.processor_count |
INT64 | 프로세서 수(코어) |
unity_metadata.processor_frequency_mhz |
INT64 | 프로세서의 주파수(MHz) |
unity_metadata.system_memory_size_mb |
INT64 | 시스템의 메모리 크기(MB) |
unity_metadata.graphics_memory_size_mb |
INT64 | 그래픽 메모리(MB) |
unity_metadata.graphics_device_id |
INT64 | 그래픽 기기의 식별자 |
unity_metadata.graphics_device_vendor_id |
INT64 | 그래픽 프로세서 공급업체의 식별자 |
unity_metadata.graphics_device_name |
STRING | 그래픽 기기의 이름 |
unity_metadata.graphics_device_vendor |
STRING | 그래픽 기기의 공급업체 |
unity_metadata.graphics_device_version |
STRING | 그래픽 기기의 버전 |
unity_metadata.graphics_device_type |
STRING | 그래픽 기기의 유형 |
unity_metadata.graphics_shader_level |
INT64 | 그래픽의 셰이더 수준 |
unity_metadata.graphics_render_target_count |
INT64 | 그래픽 렌더링 대상 수 |
unity_metadata.graphics_copy_texture_support |
STRING | 다음에 정의된 대로 그래픽 텍스처 복사를 지원합니다. Unity API |
unity_metadata.graphics_max_texture_size |
INT64 | 렌더링 텍스처 전용 최대 크기 |
unity_metadata.screen_size_px |
STRING | 너비x높이 형식의 화면 크기(픽셀) |
unity_metadata.screen_resolution_dpi |
STRING | 화면의 DPI(부동 소수점 수) |
unity_metadata.screen_refresh_rate_hz |
INT64 | 화면 재생 빈도(Hz) |
내보낸 Crashlytics 데이터를 데이터 스튜디오로 시각화
Google 데이터 스튜디오는 BigQuery에 있는 Crashlytics개 데이터 세트를 더 쉽게 보고서로 변환할 수 있습니다 읽기 쉽고 공유가 쉬우며 완전히 맞춤설정할 수 있습니다
데이터 스튜디오의 사용에 관한 자세한 내용은 데이터 스튜디오 빠른 시작 가이드, Data Studio에 오신 것을 환영합니다를 참조하세요.
Crashlytics 보고서 템플릿 사용
데이터 스튜디오에는 Crashlytics 내보낸 Crashlytics의 포괄적인 측정기준 및 측정항목 세트 BigQuery 스키마 Crashlytics 스트리밍 내보내기를 사용 설정한 경우 BigQuery로 변경하면 실시간 동향에서 해당 데이터를 볼 수 있습니다. 페이지로 이동합니다.이 샘플을 템플릿으로 사용하면 앱의 원시 비정상 종료 데이터를 기반으로 새 보고서 및 시각화 생성:
Google 검색 앱 홈 화면의 오른쪽 상단에 있는 Crashlytics 데이터 스튜디오 대시보드 템플릿
오른쪽 상단의 템플릿 사용을 클릭합니다.
새 데이터 소스 드롭다운에서 새 데이터 소스 만들기를 선택합니다.
BigQuery 카드에서 선택을 클릭합니다.
다음을 선택하여 내보낸 Crashlytics 데이터가 포함된 테이블을 선택하세요. 내 프로젝트 > PROJECT_ID > firebase_crashlytics > TABLE_NAME).
배치 테이블은 언제든지 선택할 수 있습니다. 만약 BigQuery(으)로 Crashlytics 스트리밍 내보내기가 사용 설정된 경우 대신 실시간 테이블을 선택할 수 있습니다.
구성에서 Crashlytics 템플릿 수준을 다음과 같이 설정합니다. 기본
연결을 클릭하여 새 데이터 소스를 만듭니다.
Crashlytics 템플릿으로 돌아가려면 보고서에 추가를 클릭합니다.
마지막으로 보고서 작성을 클릭하여 Crashlytics의 사본을 만듭니다. 데이터 스튜디오 대시보드 템플릿