אפשר לייצא את הנתונים של Firebase Crashlytics אל BigQuery עבור ניתוח מעמיק יותר. האפליקציה BigQuery מאפשרת לנתח את הנתונים באמצעות BigQuery SQL, לייצא אותו לספק שירותי ענן אחר ולהשתמש בו עבור להמחשה חזותית ומרכזי בקרה בהתאמה אישית באמצעות Google Data Studio.
הפעלת הייצוא אל BigQuery
- נכנסים לדף Integrations במסוף Firebase.
- בכרטיס BigQuery, לוחצים על קישור.
- פועלים לפי ההוראות במסך כדי להפעיל את הייצוא אל BigQuery.
זה מה שקורה כשמפעילים ייצוא אל BigQuery:
כברירת מחדל, כל האפליקציות בפרויקט שלך מקושרות אל BigQuery האפליקציות שתוסיפו לפרויקט במועד מאוחר יותר יקושרו באופן אוטומטי BigQuery אפשר לקבוע אילו אפליקציות ישלחו נתונים.
מערכת Firebase מגדירה סנכרונים יומיים של הנתונים מפרויקט Firebase אל BigQuery
מערכת Firebase מייצאת עותק של הנתונים הקיימים אל BigQuery. המידע הזה כולל טבלה באצווה לכל אפליקציה מקושרת שמכיל את הנתונים מהסנכרון היומי.
אם הפעלת ייצוא בסטרימינג של Crashlytics אל BigQuery, גם לכל האפליקציות המקושרות תהיה טבלה בזמן אמת שכוללת שמתעדכן כל הזמן .
כדי להשבית את הייצוא אל BigQuery, ביטול הקישור של הפרויקט במסוף Firebase.
אילו נתונים מיוצאים אל BigQuery?
נתוני Firebase Crashlytics מיוצאים למערך נתונים מסוג BigQuery בשם
firebase_crashlytics
. כברירת מחדל, טבלאות נפרדות ייווצרו בתוך
מערך הנתונים Crashlytics של כל אפליקציה בפרויקט. השם של Firebase
בהתאם למזהה האפליקציה, והנקודות מומרות לקווים תחתונים,
שם פלטפורמה שמצורף לסוף.
לדוגמה, נתונים של אפליקציה ל-Android עם שם החבילה com.google.test
יופיעו בטבלה בשם com_google_test_ANDROID
. הטבלה המקובצת באצווה מעודכנת
פעם ביום. אם מפעילים ייצוא בסטרימינג של Crashlytics אל
BigQuery, לאחר מכן הנתונים של Crashlytics ישודרו גם בזמן אמת
לטבלה בשם com_google_test_ANDROID_REALTIME
.
כל שורה בטבלה מייצגת אירוע שהתרחש באפליקציה, כולל קריסות, שגיאות לא חמורות ומקרי ANR.
ייצוא בסטרימינג של Crashlytics אל BigQuery
אפשר לשדר את הנתונים של Crashlytics בזמן אמת באמצעות BigQuery סטרימינג. אפשר להשתמש בהם לכל מטרה שמחייבת נתונים בזמן אמת, כמו הצגת מידע במרכז בקרה בשידור חי, צפייה בהשקה בשידור חי או מעקב בעיות באפליקציות שמפעילות התראות ותהליכי עבודה בהתאמה אישית.
כשמפעילים ייצוא בסטרימינג של Crashlytics אל BigQuery, בנוסף לטבלה באצווה, תהיה לכם גם טבלה בזמן אמת. אלה סוגי המודלים הבדלים שעליכם להיות מודעים להם בין הטבלאות:
טבלת באצווה | טבלה 'זמן אמת' |
---|---|
|
|
טבלת האצווה היא אידיאלית לניתוח לטווח ארוך ולזיהוי מגמות לאורך זמן כי אנחנו מאחסנים אירועים באופן עמיד לפני שאנחנו כותבים אותם, ואפשר למלא אותם באופן אוטומטי לטבלה לתקופה של עד 30 ימים. כשאנחנו כותבים נתונים לטבלה בזמן אמת, אנחנו תכתוב אותה מיד ל-BigQuery, כך שזה אידיאלי לשידורים חיים מרכזי שליטה והתראות מותאמות אישית. שתי הטבלאות האלה יכולות להיות בשילוב עם שאילתת רצף תמונות כדי לקבל של שניהם.
כברירת מחדל, מועד התפוגה של המחיצות בטבלה 'זמן אמת' הוא 30 יום. שפת תרגום איך לשנות את זה, הגדרת תפוגת המחיצה במסמכי התיעוד בנושא BigQuery.
הפעלת ייצוא בסטרימינג של Crashlytics אל BigQuery
- במסוף Firebase, עוברים אל הדף 'שילובים'.
- בכרטיס BigQuery, לוחצים על ניהול.
- מסמנים את התיבה הכללת סטרימינג.
הפעולה הזו מאפשרת סטרימינג בכל האפליקציות המקושרות.
מה אפשר לעשות עם הנתונים שיוצאו?
הייצוא אל BigQuery מכיל נתוני קריסה גולמיים, כולל סוג המכשיר, מערכת ההפעלה, חריגות (אפליקציות ל-Android) או שגיאות (אפליקציות ל-Apple), יומני Crashlytics ונתונים אחרים.
בדיקה מדויקת של הנתונים המיוצאים מ-Crashlytics ושל הטבלה שלהם schema בהמשך הדף הזה.
שימוש בתבנית של Data Studio
כדי להפעיל נתונים בזמן אמת בתבנית Data Studio, צריך לפעול לפי השלבים הבאים: הוראות ב המחשה חזותית של נתוני Crashlytics שיוצאו באמצעות Data Studio.
יצירת תצוגות
אפשר להפוך שאילתות לתצוגות באמצעות ממשק המשתמש של BigQuery. הוראות מפורטות זמינות במאמר יצירת תצוגות מפורטות מסמכי תיעוד בנושא BigQuery.
הרצת שאילתות
הדוגמאות הבאות מדגימות שאילתות שאפשר להריץ נתונים מ-Crashlytics ליצירת דוחות שצוברים בהם נתונים של אירועי קריסה שיהיה קל יותר להבין סיכומים. דוחות מהסוג הזה לא זמינים בלוח הבקרה Crashlytics שבמסוף Firebase, הן יכולות להשלים הניתוח וההבנה של נתוני הקריסה.
דוגמה 1: קריסות לפי יום
אחרי שניסיתם לתקן כמה שיותר באגים, אתם חושבים שהצוות שלכם מוכן סוף סוף להשיק את אפליקציית שיתוף התמונות החדשה. לפני שתעשו זאת, אתם רוצים לבדוק את מספר הקריסות ביום בחודש האחרון, כדי לוודא שהבאג-באש עזר לאפליקציה להיות יציבה יותר לאורך זמן.
זו שאילתה לדוגמה של אפליקציה ל-Android. לאפליקציה ל-iOS, יש להשתמש במזהה החבילה שלה
ו-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, צריך להשתמש במזהה החבילה וב-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. כדי להתחיל העליונות של תאימות, אתם מרכיבים שאילתה שמזהה 10 מכשירים שבהם התרחשו הכי הרבה קריסות בשבוע האחרון (168 שעות).
זו שאילתה לדוגמה של אפליקציה ל-Android. לאפליקציה ל-iOS, יש להשתמש במזהה החבילה שלה
ו-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";
Java
Crashlytics.setInt("current_level", 3);
אחרי שתוסיפו את המפתח הזה לייצוא אל BigQuery, תוכלו לכתוב שאילתה כדי לדווח על התפלגות הערכים של current_level
שמשויכים לכל אירוע התרסקות.
זו שאילתה לדוגמה של אפליקציה ל-Android. לאפליקציה ל-iOS, יש להשתמש במזהה החבילה שלה
ו-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: חילוץ מזהה משתמש
יש לך אפליקציה ל-Android בגישה מוקדמת. רוב המשתמשים שלכם אוהבים את זה, אבל התרחשו מספר חריג של קריסות. כדי להגיע לחלק התחתון של הדף יש בעיה, אתם כותבים שאילתה שתאחזר את כל אירועי הקריסה עבור המשתמשים האלה, באמצעות מזהי המשתמשים שלהם.
זו שאילתה לדוגמה של אפליקציה ל-Android. לאפליקציה ל-iOS, יש להשתמש במזהה החבילה שלה
ו-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: איתור כל המשתמשים שנתקלו בבעיית קריסה מסוימת
הצוות שלך שחרר בטעות באג קריטי לקבוצה של בודקי גרסת בטא. הצוות שלך הצליח להשתמש בשאילתה של "איתור הקריסות הנפוצות ביותר" דוגמה למעלה כדי לזהות את המזהה של בעיית הקריסה הספציפית. עכשיו הצוות שלכם רוצה להריץ כדי לחלץ את רשימת המשתמשים באפליקציה שהושפעו מהקריסה הזו.
זוהי דוגמה לשאילתה לאפליקציה ל-Android. באפליקציה ל-iOS, צריך להשתמש במזהה החבילה וב-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: מספר המשתמשים שהושפעו מבעיית קריסה, בחלוקה לפי מדינה
הצוות שלך זיהה באג קריטי במהלך השקת הגרסה החדשה. שלך מותר להשתמש בשאילתה "איתור הקריסות הנפוצות ביותר" דוגמה למעלה כדי לזהות את המזהה של בעיית הקריסה הספציפית. הצוות שלך ירצה לראות אם הקריסה הזו התפשטה למשתמשים במדינות שונות ברחבי העולם.
כדי לכתוב את השאילתה הזו, הצוות שלכם צריך לבצע את הפעולות הבאות:
מפעילים את הייצוא של נתוני Google Analytics אל BigQuery. מידע נוסף זמין במאמר ייצוא נתוני פרויקט ל-BigQuery.
צריך לעדכן את האפליקציה כדי להעביר מזהה משתמש ל-SDK של Google Analytics ו-SDK Crashlytics.
Swift
Crashlytics.sharedInstance().setUserIdentifier("123456789"); Analytics.setUserID("123456789");
Objective-C
CrashlyticsKit setUserIdentifier:@"123456789"; FIRAnalytics setUserID:@"12345678 9";
Java
Crashlytics.setUserIdentifier("123456789"); mFirebaseAnalytics.setUserId("123456789");
כותבים שאילתה שמשתמשת בשדה User ID כדי להצטרף לאירועים מערך הנתונים Google Analytics עם קריסות במערך הנתונים Crashlytics.
זו שאילתה לדוגמה של אפליקציה ל-Android. באפליקציה ל-iOS, צריך להשתמש מזהה החבילה ו-
IOS
(במקום שם החבילה ו-ANDROID
).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, יש להשתמש במזהה החבילה שלה
ו-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, יש להשתמש במזהה החבילה שלה
ו-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;
הסבר על הסכימה Crashlytics ב-BigQuery
כשמגדירים ייצוא נתונים של Crashlytics אל BigQuery, ל-Firebase מייצא אירועים מהזמן האחרון (קריסות, שגיאות לא חמורות ומקרי ANR), כולל אירועים עד יומיים לפני הקישור, עם אפשרות מילוי חוזר לתקופה של עד 30 ימים.
מנקודה זו עד להשבתת הייצוא, הייצוא מ-Firebase Crashlytics אירועים על בסיס יומי. הנתונים עשויים להימשך כמה דקות יהיו זמינים בBigQuery אחרי כל ייצוא.
מערכי נתונים
Crashlytics יוצר מערך נתונים חדש ב-BigQuery עבור Crashlytics . מערך הנתונים כולל את כל הפרויקט, גם אם הוא כולל מספר אפליקציות.
טבלאות
Crashlytics יוצר טבלה במערך הנתונים לכל אפליקציה בפרויקט, אלא אם ביטלת את ההסכמה לייצוא הנתונים של האפליקציה הזו. השם של Firebase בהתאם למזהה האפליקציה, והנקודות מומרות לקווים תחתונים, שם פלטפורמה שמצורף לסוף.
לדוגמה, נתונים של אפליקציה ל-Android ששם החבילה שלה הוא com.google.test
יופיעו בטבלה בשם com_google_test_ANDROID
, ובנתונים בזמן אמת
(אם הוא מופעל) יופיע בטבלה בשם com_google_test_ANDROID_REALTIME
הטבלאות מכילות קבוצה סטנדרטית של נתוני Crashlytics בנוסף לנתונים מפתחות Crashlytics מותאמים אישית שהגדרתם באפליקציה.
שורות
כל שורה בטבלה מייצגת שגיאה שהאפליקציה נתקלה בה.
עמודות
העמודות בטבלה זהות עבור קריסות, שגיאות לא חמורות ומקרי ANR. אם הייצוא בסטרימינג של Crashlytics ל-BigQuery מופעל, לטבלה בזמן אמת יהיו אותן עמודות כמו לטבלת האצווה. לתשומת ליבך: כוללים עמודות בשורות שמייצגות אירועים שאין להם דוחות קריסות.
העמודות בתוך הייצוא מפורטות בטבלה הזו:
שם השדה | סוג הנתונים | תיאור |
---|---|---|
platform |
מחרוזת | הפלטפורמה של האפליקציה, כפי שהיא רשומה בפרויקט Firebase
(ערכים חוקיים: IOS או ANDROID )
|
bundle_identifier |
מחרוזת | המזהה הייחודי של האפליקציה כפי שהיא רשומה בפרויקט Firebase
(לדוגמה, com.google.gmail באפליקציות בפלטפורמת Apple, זהו מזהה החבילה של האפליקציה. באפליקציות ל-Android, זהו שם החבילה של האפליקציה. |
event_id |
מחרוזת | המזהה הייחודי של האירוע. |
is_fatal |
בוליאני | האם האפליקציה קרסה |
error_type |
מחרוזת | סוג השגיאה של האירוע (לדוגמה, FATAL ,
NON_FATAL , ANR וכו') |
issue_id |
מחרוזת | הבעיה שמשויכת לאירוע |
variant_id |
מחרוזת | הווריאנט של הבעיה שמשויך לאירוע הזה לתשומת ליבכם: לא לכל האירועים משויכת וריאציה של הבעיה. |
event_timestamp |
חותמת זמן | מתי האירוע התרחש |
device |
רשומה | המכשיר שבו התרחש האירוע |
device.manufacturer |
מחרוזת | יצרן המכשיר |
device.model |
מחרוזת | דגם המכשיר |
device.architecture |
מחרוזת | לדוגמה, X86_32 , X86_64 , ARMV7 ,
ARM64 , ARMV7S או ARMV7K |
memory |
רשומה | סטטוס הזיכרון של המכשיר |
memory.used |
INT64 | בייטים מהזיכרון בשימוש |
memory.free |
INT64 | בייטים שנותרו בזיכרון |
storage |
רשומה | האחסון הקבוע של המכשיר |
storage.used |
INT64 | בייטים מנפח האחסון בשימוש |
storage.free |
INT64 | נפח האחסון שנותר בבייט |
operating_system |
רשומה | הפרטים של מערכת ההפעלה במכשיר |
operating_system.display_version |
מחרוזת | גרסת מערכת ההפעלה במכשיר |
operating_system.name |
מחרוזת | השם של מערכת ההפעלה במכשיר |
operating_system.modification_state |
מחרוזת | אם המכשיר השתנה
(לדוגמה, אפליקציה פרוץ היא MODIFIED ואפליקציה עם הרשאות בסיס היא אפליקציה עם הרשאות בסיס
UNMODIFIED ) |
operating_system.type |
מחרוזת | (אפליקציות של Apple בלבד) סוג מערכת ההפעלה שפועלת במכשיר (לדוגמה,
IOS , MACOS וכו') |
operating_system.device_type |
מחרוזת | סוג המכשיר (לדוגמה: MOBILE , TABLET ,
TV , וכו'); נקרא גם 'קטגוריית מכשיר' |
application |
רשומה | האפליקציה שבה האירוע נוצר |
application.build_version |
מחרוזת | גרסת ה-build של האפליקציה |
application.display_version |
מחרוזת | |
user |
רשומה | (אופציונלי) מידע שנאסף לגבי משתמש האפליקציה |
user.name |
מחרוזת | (אופציונלי) שם המשתמש |
user.email |
מחרוזת | (אופציונלי) כתובת האימייל של המשתמש |
user.id |
מחרוזת | (אופציונלי) מזהה ספציפי לאפליקציה שמשויך למשתמש |
custom_keys |
רשומה חוזרת | צמדי מפתח/ערך שהמפתח הגדיר |
custom_keys.key |
מחרוזת | מפתח שהוגדר על ידי המפתח |
custom_keys.value |
מחרוזת | ערך שהוגדר על ידי המפתח |
installation_uuid |
מחרוזת | מזהה שמזהה התקנה ייחודית של אפליקציה ומכשיר |
crashlytics_sdk_versions |
מחרוזת | גרסת ה-SDK Crashlytics שבה האירוע נוצר |
app_orientation |
מחרוזת | לדוגמה, PORTRAIT , LANDSCAPE ,
FACE_UP , FACE_DOWN וכו' |
device_orientation |
מחרוזת | לדוגמה, PORTRAIT , LANDSCAPE ,
FACE_UP , FACE_DOWN וכו' |
process_state |
מחרוזת | BACKGROUND או FOREGROUND |
logs |
REPEATED RECORD | הודעות יומן עם חותמות זמן שנוצרו על ידי יומן Crashlytics, אם הוא מופעל |
logs.timestamp |
חותמת זמן | מתי נוצר היומן |
logs.message |
מחרוזת | ההודעה ביומן |
breadcrumbs |
REPEATED RECORD | חותמת זמן Google Analytics נתיבי ניווט, אם הוא מופעל |
breadcrumbs.timestamp |
חותמת זמן | חותמת הזמן המשויכת למסלול הניווט |
breadcrumbs.name |
מחרוזת | השם המשויך למסלול הניווט |
breadcrumbs.params |
REPEATED RECORD | פרמטרים המשויכים לנתיב הניווט |
breadcrumbs.params.key |
מחרוזת | מפתח פרמטר המשויך למסלול הניווט |
breadcrumbs.params.value |
מחרוזת | ערך פרמטר שמשויך לנתיב הניווט |
blame_frame |
רשומה | המסגרת שזוהתה כגורם הבסיסי לקריסה או לשגיאה |
blame_frame.line |
INT64 | מספר השורה בקובץ של הפריים |
blame_frame.file |
מחרוזת | שם קובץ המסגרת |
blame_frame.symbol |
מחרוזת | סמל 'שתיית מים' או הסמל הגולמי אם הם לא מתכלים |
blame_frame.offset |
INT64 | היסט הבייט בתוך התמונה הבינארית שמכילה את הקוד לא מוגדר בחריגות של Java |
blame_frame.address |
INT64 | הכתובת בתמונה הבינארית שמכילה את הקוד לא הוגדרה למסגרות Java |
blame_frame.library |
מחרוזת | השם המוצג של הספרייה שכוללת את המסגרת |
blame_frame.owner |
מחרוזת | לדוגמה, DEVELOPER , VENDOR ,
RUNTIME , PLATFORM או SYSTEM |
blame_frame.blamed |
בוליאני | האם Crashlytics קבע שהמסגרת הזו היא הגורם לקריסה או שגיאה |
exceptions |
רשומה חוזרת | (Android בלבד) חריגים שהתרחשו במהלך האירוע הזה. בתוך עץ החריגות מוצגות בסדר כרונולוגי הפוך, כלומר הרשומה האחרונה היא החריגה הראשונה שנדחתה |
exceptions.type |
מחרוזת | סוג החריגה (לדוגמה, java.lang.IllegalStateException) |
exceptions.exception_message |
מחרוזת | הודעה שמשויכת לחריגה |
exceptions.nested |
בוליאני | True לכולם חוץ מהחריגה האחרונה (כלומר, הרשומה הראשונה) |
exceptions.title |
מחרוזת | שם השרשור |
exceptions.subtitle |
מחרוזת | כותרת המשנה של השרשור |
exceptions.blamed |
בוליאני | הערך true אם Crashlytics קובע שהחריגה אחראית לשגיאה או לקריסה |
exceptions.frames |
רשומה חוזרת | הפריימים שמשויכים לחריג |
exceptions.frames.line |
INT64 | מספר השורה בקובץ של הפריים |
exceptions.frames.file |
מחרוזת | שם קובץ המסגרת |
exceptions.frames.symbol |
מחרוזת | סמל 'שתיית מים' או הסמל הגולמי אם הם לא מתכלים |
exceptions.frames.offset |
INT64 | היסט הבייט בתוך התמונה הבינארית שמכילה את הקוד לא מוגדר בחריגות של Java |
exceptions.frames.address |
INT64 | הכתובת בתמונה הבינארית שמכילה את הקוד לא הוגדרה למסגרות Java |
exceptions.frames.library |
מחרוזת | השם המוצג של הספרייה שכוללת את המסגרת |
exceptions.frames.owner |
מחרוזת | לדוגמה, DEVELOPER , VENDOR ,
RUNTIME , PLATFORM או SYSTEM |
exceptions.frames.blamed |
בוליאני | האם Crashlytics קבע שהמסגרת הזו היא הגורם לקריסה או שגיאה |
error |
רשומה חוזרת | (אפליקציות של Apple בלבד) שגיאות לא קטלניות |
error.queue_name |
מחרוזת | התור שבו השרשור הופעל |
error.code |
INT64 | קוד שגיאה המשויך ל-NSError בהתאמה אישית של האפליקציה ביומן |
error.title |
מחרוזת | שם השרשור |
error.subtitle |
מחרוזת | כותרת המשנה של השרשור |
error.blamed |
בוליאני | האם Crashlytics קבע שהמסגרת הזו היא הגורם שגיאה |
error.frames |
רשומה חוזרת | המסגרות של דוח הקריסות |
error.frames.line |
INT64 | מספר השורה בקובץ של הפריים |
error.frames.file |
מחרוזת | שם קובץ המסגרת |
error.frames.symbol |
מחרוזת | סמל 'שתיית מים' או הסמל הגולמי אם הם לא מתכלים |
error.frames.offset |
INT64 | הסטייה של הבייט לתוך התמונה הבינארית שמכילה את הקוד |
error.frames.address |
INT64 | הכתובת בתמונה הבינארית שמכילה את הקוד |
error.frames.library |
מחרוזת | השם המוצג של הספרייה שכוללת את המסגרת |
error.frames.owner |
מחרוזת | לדוגמה, DEVELOPER , VENDOR ,
RUNTIME , PLATFORM או SYSTEM |
error.frames.blamed |
בוליאני | האם Crashlytics קבע שהמסגרת הזו היא הגורם שגיאה |
threads |
רשומה חוזרת | שרשורים שהיו פעילים בזמן האירוע |
threads.crashed |
בוליאני | אם השרשור קרס |
threads.thread_name |
מחרוזת | שם השרשור |
threads.queue_name |
מחרוזת | (באפליקציות של Apple בלבד) התור שבו פעל השרשור |
threads.signal_name |
מחרוזת | שם האות שגרם לאפליקציה לקרוס. הוא מוצג רק במקרים של קריסת מחשב שרשורים מותאמים |
threads.signal_code |
מחרוזת | הקוד של האות שגרם לקריסת האפליקציה. קיים רק בקריסות שרשורים מותאמים |
threads.crash_address |
INT64 | הכתובת של האות שגרם לאפליקציה לקרוס. נוכחים בלבד על שרשורים מקוריים שקורסו |
threads.code |
INT64 | (אפליקציות של Apple בלבד) קוד שגיאה של רישום האפליקציה ביומן שגיאת NS |
threads.title |
מחרוזת | שם השרשור |
threads.subtitle |
מחרוזת | כותרת המשנה של השרשור |
threads.blamed |
בוליאני | האם Crashlytics קבע שהמסגרת הזו היא הגורם לקריסה או שגיאה |
threads.frames |
רשומה חוזרת | הפריימים של השרשור |
threads.frames.line |
INT64 | מספר השורה בקובץ של הפריים |
threads.frames.file |
מחרוזת | שם קובץ המסגרת |
threads.frames.symbol |
מחרוזת | סמל 'שתיית מים' או הסמל הגולמי אם הוא לא נוח לנוזל |
threads.frames.offset |
INT64 | הסטייה של הבייט לתוך התמונה הבינארית שמכילה את הקוד |
threads.frames.address |
INT64 | הכתובת בתמונה הבינארית שמכילה את הקוד |
threads.frames.library |
מחרוזת | השם המוצג של הספרייה שכוללת את המסגרת |
threads.frames.owner |
מחרוזת | לדוגמה, DEVELOPER , VENDOR ,
RUNTIME , PLATFORM או SYSTEM |
threads.frames.blamed |
בוליאני | אם Crashlytics קבע שהמסגרת הזו היא הגורם לשגיאה |
unity_metadata.unity_version |
מחרוזת | גרסת Unity שפועלת במכשיר הזה |
unity_metadata.debug_build |
בוליאני | אם מדובר ב-build לניפוי באגים |
unity_metadata.processor_type |
מחרוזת | סוג המעבד |
unity_metadata.processor_count |
INT64 | מספר המעבדים (ליבות) |
unity_metadata.processor_frequency_mhz |
INT64 | התדר של המעבדים במגה-הרץ |
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 |
מחרוזת | השם של המכשיר הגרפי |
unity_metadata.graphics_device_vendor |
מחרוזת | הספק של המכשיר הגרפי |
unity_metadata.graphics_device_version |
מחרוזת | הגרסה של המכשיר הגרפי |
unity_metadata.graphics_device_type |
מחרוזת | סוג המכשיר הגרפי |
unity_metadata.graphics_shader_level |
INT64 | רמת ההצללה (shader) של הגרפיקה |
unity_metadata.graphics_render_target_count |
INT64 | מספר יעדי הרינדור הגרפי |
unity_metadata.graphics_copy_texture_support |
מחרוזת | תמיכה בהעתקת הטקסטורה הגרפית כפי שמוגדר API ל-Unity |
unity_metadata.graphics_max_texture_size |
INT64 | הגודל המקסימלי הייעודי לעיבוד טקסטורה |
unity_metadata.screen_size_px |
מחרוזת | גודל המסך בפיקסלים, בפורמט של רוחב x גובה |
unity_metadata.screen_resolution_dpi |
מחרוזת | ה-DPI של המסך כמספר נקודה צפה |
unity_metadata.screen_refresh_rate_hz |
INT64 | קצב הרענון של המסך ב-Hz |
המחשה חזותית של נתוני Crashlytics שיוצאו באמצעות Data Studio
Google Data Studio הופך את מערכי הנתונים של Crashlytics ב-BigQuery לדוחות שקל יותר לקרוא אותם, לשתף אותם ולהתאים אותם אישית.
למידע נוסף על השימוש ב-Data Studio, כדאי לעיין במדריך למתחילים ב-Data Studio, ברוכים הבאים ל-Data Studio.
שימוש בתבנית דוח Crashlytics
ב-Data Studio יש דוח לדוגמה ל-Crashlytics שכולל קבוצה מקיפה של מאפיינים ומדדים מהסכימה CrashlyticsBigQuery שיוצאה. אם הפעלת ייצוא בסטרימינג של Crashlytics עד BigQuery, תוכלו להציג את הנתונים האלה במגמות בזמן אמת בדף של תבנית Data Studio.אפשר להשתמש בדוגמה כתבנית כדי ליצור דוחות חדשים והמחשות ויזואליות על סמך נתוני הקריסה הגולמיים של האפליקציה שלכם:
פותחים את Crashlytics תבנית מרכז השליטה של Data Studio.
לוחצים על Use Template (שימוש בתבנית) בפינה הימנית העליונה.
בתפריט הנפתח New Data Source (מקור נתונים חדש), בוחרים באפשרות Create New Data Source (יצירת מקור נתונים חדש).
לוחצים על בחירה בכרטיס BigQuery.
כדי לבחור טבלה שמכילה נתוני Crashlytics שיוצאו, יש לבחור הפרויקטים שלי > PROJECT_ID > firebase_crashlytics > TABLE_NAME
תמיד אפשר לבחור את הטבלה באצווה. אם הייצוא בסטרימינג של Crashlytics ל-BigQuery מופעל, תוכלו לבחור במקום זאת את הטבלה של זמן אמת.
בקטע הגדרה, מגדירים את Crashlytics רמת התבנית לערך ברירת מחדל.
לוחצים על התחברות כדי ליצור את מקור הנתונים החדש.
לוחצים על הוספה לדוח כדי לחזור לתבנית Crashlytics.
לסיום, לחצו על יצירת דוח כדי ליצור עותק של Crashlytics תבנית מרכז השליטה של Data Studio.