אתה יכול לייצא את נתוני Crashlytics שלך ל- BigQuery לניתוח נוסף. BigQuery מאפשרת לך לנתח את הנתונים באמצעות BigQuery SQL, לייצא אותם לספק ענן אחר ולהשתמש בהם להדמיה ולמרכזי מחוונים מותאמים אישית עם Google Data Studio.
אפשר ייצוא BigQuery
- עבור לדף השילובים במסוף Firebase.
- בכרטיס BigQuery , לחץ על קישור .
- עקוב אחר ההוראות שעל המסך כדי להפעיל את BigQuery.
כאשר אתה מקשר את הפרויקט שלך ל-BigQuery:
- Firebase מגדיר סנכרון יומי של הנתונים שלך מפרויקט Firebase שלך ל-BigQuery.
- כברירת מחדל, כל האפליקציות בפרויקט שלך מקושרות ל-BigQuery וכל אפליקציות שתוסיף מאוחר יותר לפרויקט מקושרות אוטומטית ל-BigQuery. אתה יכול לנהל אילו אפליקציות שולחות נתונים .
- Firebase מייצא עותק של הנתונים הקיימים שלך ל-BigQuery. עבור כל אפליקציה מקושרת, זה כולל טבלת אצווה המכילה את הנתונים מהסנכרון היומי.
- אם תפעיל ייצוא סטרימינג של Crashlytics BigQuery, לכל האפליקציות המקושרות תהיה גם טבלה בזמן אמת המכילה נתונים המתעדכנים כל הזמן.
כדי להשבית את יצוא BigQuery, בטל את הקישור של הפרויקט שלך במסוף Firebase.
אילו נתונים מיוצאים ל-BigQuery?
נתוני Firebase Crashlytics מיוצאים למערך נתונים של BigQuery בשם firebase_crashlytics
. כברירת מחדל, טבלאות בודדות ייווצרו בתוך ערכת הנתונים של Crashlytics עבור כל אפליקציה בפרויקט שלך. Firebase נותן שמות לטבלאות על סמך מזהה החבילה של האפליקציה, עם נקודות מומרות לקווים תחתונים, ושם פלטפורמה מצורף בסוף.
לדוגמה, נתונים עבור אפליקציה עם המזהה com.google.test
יהיו בטבלה בשם com_google_test_ANDROID
. טבלת אצווה זו מתעדכנת פעם אחת בכל יום. אם תפעיל ייצוא סטרימינג של Crashlytics BigQuery, נתוני Firebase Crashlytics יוזרמו גם הם בזמן אמת אל com_google_test_ANDROID_REALTIME
.
כל שורה בטבלה מייצגת אירוע שהתרחש באפליקציה, כולל קריסות, שגיאות לא קטלניות ומקרי ANR.
הפעל ייצוא סטרימינג של Crashlytics BigQuery
אתה יכול להזרים את נתוני Crashlytics שלך בזמן אמת עם BigQueryStreaming . אתה יכול להשתמש בו לכל מטרה הדורשת נתונים חיים, כגון הצגת מידע בלוח מחוונים חי, צפייה בהשקה בשידור חי, או ניטור בעיות באפליקציות המפעילות התראות וזרימות עבודה מותאמות אישית.
ייצוא סטרימינג של Crashlytics BigQuery אינו זמין עבור BigQuery Sandbox.
כאשר תפעיל יצוא סטרימינג של Crashlytics BigQuery, בנוסף לטבלת האצווה תהיה לך טבלה בזמן אמת. להלן ההבדלים שעליך להיות מודעים אליהם בין הטבלאות:
טבלת אצווה | טבלה בזמן אמת |
---|---|
|
|
טבלת האצווה היא אידיאלית לניתוח ארוך טווח וזיהוי מגמות לאורך זמן מכיוון שאנו מאחסנים אירועים לאורך זמן לפני כתיבתם, וניתן למלא אותם לטבלה עד 90 יום. כאשר אנו כותבים נתונים לטבלת זמן אמת שלך, אנו כותבים אותם מיד ל-BigQuery, ולכן הוא אידיאלי עבור לוחות מחוונים חיים והתראות מותאמות אישית. ניתן לשלב את שתי הטבלאות הללו עם שאילתת תפירה כדי לקבל את היתרונות של שתיהן. ראה דוגמה לשאילתה 9 להלן.
כברירת מחדל, לטבלה בזמן אמת יש זמן תפוגה של מחיצה של 30 יום. כדי ללמוד כיצד לשנות זאת, ראה עדכון תפוגת המחיצה .
אפשר סטרימינג של Crashlytics BigQuery
כדי להפעיל סטרימינג, נווט לקטע Crashlytics בדף האינטגרציות של BigQuery ובחר בתיבת הסימון כלול סטרימינג .
תבנית Data Studio
כדי להפעיל נתונים בזמן אמת בתבנית Data Studio שלך, עקוב אחר ההוראות בהצגת נתוני Crashlytics מיוצאים עם Data Studio .
צפיות
אתה יכול להפוך את השאילתות לדוגמה למטה לתצוגות באמצעות ממשק המשתמש של BigQuery. ראה יצירת תצוגות להנחיות מפורטות.
מה אתה יכול לעשות עם הנתונים המיוצאים?
ייצוא BigQuery מכיל נתוני קריסה גולמיים, כולל סוג מכשיר, מערכת הפעלה, חריגים (אפליקציות אנדרואיד) או שגיאות (אפליקציות של אפל), ויומני Crashlytics, כמו גם נתונים אחרים.
עבודה עם נתוני Firebase Crashlytics ב-BigQuery
הדוגמאות הבאות מדגימות שאילתות שאתה יכול להפעיל על נתוני Crashlytics שלך. שאילתות אלו מייצרות דוחות שאינם זמינים במרכז השליטה של Crashlytics.
דוגמאות לשאילתות Crashlytics
הדוגמאות הבאות מדגימות כיצד להפיק דוחות המצטברים נתוני אירועי קריסה לסיכומים קל יותר להבנה.
דוגמה 1: קריסות ביום
לאחר שעבדה כדי לתקן כמה שיותר באגים, מפתחת מובילה חושבת שהצוות שלה מוכן סוף סוף להשיק את אפליקציית שיתוף התמונות החדשה שלהם. לפני שהם עושים זאת, הם רוצים לבדוק את מספר קריסות ביום בחודש האחרון, כדי להיות בטוחים שה-Bag-bash שלהם הפך את האפליקציה ליציבה יותר לאורך זמן:
SELECT COUNT(DISTINCT event_id) AS number_of_crashes, FORMAT_TIMESTAMP("%F", event_timestamp) AS date_of_crashes FROM `projectId.firebase_crashlytics.package_name_ANDROID` GROUP BY date_of_crashes ORDER BY date_of_crashes DESC LIMIT 30;
דוגמה 2: מצא את הנפילות הנפוצות ביותר
כדי לתעדף נכון את תוכניות הייצור, מנהל פרויקט שוקל כיצד להצביע על 10 הנפילות הנפוצות ביותר במוצר שלהם. הם מייצרים שאילתה המספקת את נקודות הנתונים הרלוונטיות:
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 `projectId.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 המכשירים המתרסקים המובילים
הסתיו הוא עונת הטלפונים החדשה! מפתח יודע שזה גם אומר שזו העונה החדשה לבעיות ספציפיות למכשירים. כדי להקדים את חששות התאימות המתעוררים, הם הרכיבו שאילתה המזהה את 10 המכשירים שחוו הכי הרבה קריסות בשבוע האחרון:
SELECT device.model, COUNT(DISTINCT event_id) AS number_of_crashes FROM `projectId.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
, ומעדכנים אותו בכל פעם שהמשתמש מגיע לרמה חדשה.
Objective-C
CrashlyticsKit setIntValue:3 forKey:@"current_level";
מָהִיר
Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");
Java
Crashlytics.setInt("current_level", 3);
עם המפתח הזה בייצוא BigQuery שלהם, הם כותבים שאילתה כדי לדווח על התפלגות ערכי current_level
המשויכים לכל אירוע קריסה:
SELECT COUNT(DISTINCT event_id) AS num_of_crashes, value FROM `projectId.firebase_crashlytics.package_name_ANDROID` UNNEST(custom_keys) WHERE key = "current_level" GROUP BY key, value ORDER BY num_of_crashes DESC
דוגמה 5: חילוץ מזהה משתמש
למפתח יש אפליקציה בגישה מוקדמת. רוב המשתמשים שלהם אוהבים את זה, אבל שלושה חוו מספר חריג של קריסות. כדי לרדת לעומק הבעיה, הם כותבים שאילתה שמושכת את כל אירועי הקריסה עבור אותם משתמשים, באמצעות מזהי המשתמש שלהם:
SELECT * FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE user.id IN ("userid1", "userid2", "userid3") ORDER BY user.id
דוגמה 6: מצא את כל המשתמשים המתמודדים עם בעיית קריסה מסוימת
מפתח פרסם באג קריטי לקבוצה של בודקי בטא. הצוות הצליח להשתמש בשאילתה מדוגמה 2 לעיל כדי לזהות את מזהה בעיית הקריסה הספציפית. כעת הם רוצים להריץ שאילתה כדי לחלץ את רשימת משתמשי האפליקציה שהושפעו מהתריסה הזו:
SELECT user.id as user_id FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE issue_id = "YOUR_ISSUE_ID" AND application.display_version = "" AND user.id != "" ORDER BY user.id;
דוגמה 7: מספר המשתמשים שהושפעו מבעיית קריסה, בחלוקה לפי מדינה
כעת הצוות זיהה באג קריטי במהלך השקת מהדורה חדשה. הם הצליחו להשתמש בשאילתה מדוגמה 2 לעיל כדי לזהות את מזהה בעיית הקריסה הספציפית. הצוות רוצה כעת לראות אם ההתרסקות הזו התפשטה למשתמשים במדינות שונות ברחבי העולם.
כדי לכתוב שאילתה זו, הצוות יצטרך:
אפשר יצוא BigQuery עבור Google Analytics. ראה ייצוא נתוני פרויקט ל-BigQuery .
עדכן את האפליקציה שלו כדי להעביר מזהה משתמש הן ל-Google Analytics SDK והן ל-Crashlytics SDK.
Objective-C
CrashlyticsKit setUserIdentifier:@"123456789"; FIRAnalytics setUserID:@"12345678 9";
מָהִיר
Crashlytics.sharedInstance().setUserIdentifier("123456789"); Analytics.setUserID("123456789");
Java
Crashlytics.setUserIdentifier("123456789"); mFirebaseAnalytics.setUserId("123456789");
כתוב שאילתה המשתמשת בשדה User ID כדי להצטרף לאירועים במערך הנתונים של Google Analytics BigQuery עם קריסות במערך הנתונים של Crashlytics BigQuery:
SELECT DISTINCT c.issue_id, a.geo.country, COUNT(DISTINCT c.user.id) as num_users_impacted FROM `projectId.firebase_crashlytics.package_name_ANDROID` c INNER JOIN `projectId.analytics_YOUR_TABLE.events_*` a on c.user.id = a.user_id WHERE c.issue_id = "YOUR_ISSUE_ID" AND a._TABLE_SUFFIX BETWEEN '20190101' AND '20200101' GROUP BY c.issue_id, a.geo.country, c.user.id
דוגמה 8: 5 הבעיות המובילות עד כה היום
מחייב הפעלת ייצוא סטרימינג של Crashlytics BigQuery
SELECT issue_id, COUNT(DISTINCT event_id) AS events FROM `your_project.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, כולל היום
מחייב הפעלת ייצוא סטרימינג של Crashlytics BigQuery.
בדוגמה זו, אנו משלבים טבלאות אצווה וטבלאות בזמן אמת כדי להוסיף מידע בזמן אמת לנתוני האצווה המהימנים. מכיוון ש- event_id
הוא מפתח ראשי, אנו יכולים להשתמש DISTINCT event_id
כדי לנקות את כל האירועים הנפוצים משתי הטבלאות.
SELECT issue_id, COUNT(DISTINCT event_id) AS events FROM ( SELECT issue_id, event_id, event_timestamp FROM `your_project.firebase_crashlytics.package_name_ANDROID_REALTIME` UNION ALL SELECT issue_id, event_id, event_timestamp FROM `your_project.firebase_crashlytics.package_name_ANDROID`) WHERE event_timestamp >= "2020-01-13" GROUP BY issue_id ORDER BY events DESC LIMIT 5;
הבנת סכימת Firebase Crashlytics ב-BigQuery
כשאתה מקשר את Crashlytics ל-BigQuery, Firebase מייצא אירועים אחרונים (קריסות, שגיאות לא קטלניות ומקרי ANR), כולל אירועים של עד יומיים לפני הקישור, עם אפשרות למילוי חוזר עד תשעים יום.
מנקודה זו ועד שתשבית את הקישור, Firebase מייצאת אירועים של Crashlytics על בסיס יומי. יכול לקחת כמה דקות עד שהנתונים יהיו זמינים ב-BigQuery לאחר כל ייצוא.
מערכי נתונים
Firebase Crashlytics יוצר מערך נתונים חדש ב-BigQuery עבור נתוני Crashlytics. מערך הנתונים מכסה את כל הפרויקט שלך, גם אם יש לו מספר אפליקציות.
טבלאות
Firebase Crashlytics יוצר טבלה במערך הנתונים עבור כל אפליקציה בפרויקט שלך, אלא אם ביטלת את הסכמתך לייצוא נתונים עבור אותה אפליקציה. Firebase נותן שמות לטבלאות על סמך מזהה החבילה של האפליקציה, עם נקודות מומרות לקווים תחתונים, ושם פלטפורמה מצורף בסוף.
לדוגמה, נתונים עבור אפליקציית Android עם המזהה com.google.test
יהיו בטבלה בשם com_google_test_ANDROID
ונתוני זמן אמת (אם מופעל) יהיו בטבלה בשם com_google_test_ANDROID_REALTIME
טבלאות מכילות סט סטנדרטי של נתוני Crashlytics בנוסף לכל מפתחות Crashlytics מותאמים אישית שהוגדרו על ידי המפתחים.
שורות
כל שורה בטבלה מייצגת שגיאה שבה האפליקציה נתקלה.
עמודות
העמודות בטבלה זהות עבור קריסות, שגיאות לא קטלניות ומקרי ANR. אם ייצוא סטרימינג של Crashlytics BigQuery מופעל, לטבלה בזמן אמת יהיו אותן עמודות כמו טבלת האצווה. העמודות בתוך הייצוא מפורטות להלן.
ללא עקבות מחסנית
עמודות מוצגות בשורות המייצגות אירועים ללא עקבות מחסנית.
שם שדה | סוג מידע | תיאור |
---|---|---|
פּלַטפוֹרמָה | חוּט | אפליקציות אפל או אנדרואיד |
מזהה_חבילה | חוּט | מזהה החבילה, למשל com.google.gmail |
מזהה_אירוע | חוּט | תעודה מזהה ייחודית לאירוע |
הוא_פטאלי | בולאני | האם האפליקציה קרסה |
error_type | חוּט | סוג השגיאה של האירוע (FATAL, NON_FATAL, ANR) |
issue_id | חוּט | הבעיה הקשורה לאירוע |
variant_id | חוּט | גרסת הבעיה המשויכת לאירוע זה שים לב שלא לכל האירועים יש וריאנט בעיה משויכת. |
event_timestamp | חותמת זמן | מתי התרחש האירוע |
התקן | תקליט | המכשיר בו התרחש האירוע |
מכשיר.יצרן | חוּט | יצרן המכשיר |
דגם.מכשיר | חוּט | דגם המכשיר |
device.architecture | חוּט | X86_32, X86_64, ARMV7, ARM64, ARMV7S או ARMV7K |
זיכרון | תקליט | מצב הזיכרון של המכשיר |
זיכרון.בשימוש | INT64 | השתמשו בתים של זיכרון |
זיכרון.חופשי | INT65 | נותרו בייטים של זיכרון |
אִחסוּן | תקליט | האחסון המתמשך של המכשיר |
אחסון.בשימוש | INT64 | נעשה שימוש בתים של אחסון |
אחסון.ללא תשלום | INT64 | נותרו בייטים של אחסון |
מערכת הפעלה | תקליט | הפרטים של מערכת ההפעלה במכשיר |
operating_system.display_version | חוּט | הגרסה של מערכת ההפעלה במכשיר |
הפעלה_מערכת.שם | חוּט | שם מערכת ההפעלה במכשיר |
Operating_system.modification_state | חוּט | האם המכשיר עבר שינוי, למשל שבור/הושרש בכלא (שונה או לא שונה) |
הפעלה_מערכת.סוג | חוּט | סוג מערכת ההפעלה הפועלת במכשיר (לדוגמה, IOS, MACOS); זמין רק עבור אפליקציות פלטפורמות אפל |
operating_system.device_type | חוּט | סוג המכשיר (לדוגמה, נייד, טאבלט, טלוויזיה וכו'); ידוע גם בשם "קטגוריית מכשיר" |
יישום | תקליט | האפליקציה שיצרה את האירוע |
application.build_version | חוּט | גרסת הבנייה של האפליקציה |
application.display_version | חוּט | |
מִשׁתַמֵשׁ | תקליט | אופציונלי: מידע שנאסף על משתמש האפליקציה |
שם משתמש | חוּט | אופציונלי: שם המשתמש |
user.email | חוּט | אופציונלי: כתובת האימייל של המשתמש |
זהות המשתמש | חוּט | אופציונלי: מזהה ספציפי לאפליקציה המשויך למשתמש |
מפתחות_מותאם אישית | שיא חוזר | צמדי מפתח-ערך המוגדרים על ידי מפתח |
custom_keys.key | חוּט | מפתח המוגדר על ידי מפתח |
custom_keys.value | חוּט | ערך מוגדר לפי מפתח |
installation_uuid | חוּט | מזהה שמזהה התקנת אפליקציה ומכשיר ייחודיים |
crashlytics_sdk_versions | חוּט | גרסת ה-SDK של Crashlytics שיצרה את האירוע |
app_orientation | חוּט | PORTRAIT, LANDSCAPE, FACE_UP או FACE_DOWN |
כיוון_מכשיר | חוּט | PORTRAIT, LANDSCAPE, FACE_UP או FACE_DOWN |
תהליך_מצב | חוּט | רקע או קדמה |
יומנים | שיא חוזר | הודעות יומן עם חותמת זמן שנוצרו על ידי יומן Crashlytics, אם מופעל |
logs.timestamp | חותמת זמן | כשהיומן נעשה |
logs.message | חוּט | ההודעה שנרשמה |
פרורי לחם | שיא חוזר | פירורי לחם של Google Analytics עם חותמת זמן, אם מופעל |
חותמת זמן | חותמת זמן | חותמת הזמן המשויכת לפירורי הלחם |
breadcrumbs.name | חוּט | השם המשויך לפירור הלחם |
פירורי לחם.פרמס | שיא חוזר | פרמטרים המשויכים לפירור הלחם |
מפתח פירורי לחם.params | חוּט | מפתח פרמטר המשויך לפירורי הלחם |
breadcrumbs.params.value | חוּט | ערך פרמטר המשויך לפירורי הלחם |
מסגרת_האשמה | תקליט | המסגרת שזוהתה כגורם השורש לקריסה או לשגיאה |
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 | חוּט | מפתח, ספק, RUNTIME, פלטפורמה או מערכת |
blame_frame.blamed | בולאני | האם הניתוח של Crashlytics קבע שהמסגרת הזו היא הסיבה לקריסה או לשגיאה |
חריגים | שיא חוזר | אנדרואיד בלבד: חריגים שהתרחשו במהלך אירוע זה. חריגים מקוננים מוצגים בסדר כרונולוגי הפוך (קרא: הרשומה האחרונה היא החריג הראשון שנזרק) |
exceptions.type | חוּט | סוג החריג, למשל java.lang.IllegalStateException |
exceptions.exception_message | חוּט | הודעה המשויכת לחריגה |
חריגים.מקוננים | בולאני | נכון לכולם מלבד החריג שנזרק אחרון (כלומר הרשומה הראשונה) |
exceptions.title | חוּט | הכותרת של השרשור |
exceptions.subtitle | חוּט | כותרת המשנה של השרשור |
חריגים.מאשימים | בולאני | נכון אם Crashlytics קובע שהחריג אחראי לשגיאה או לקריסה |
exceptions.frames | שיא חוזר | המסגרות המשויכות לחריגה |
exceptions.frames.line | INT64 | מספר השורה של הקובץ של המסגרת |
exceptions.frames.file | חוּט | שם קובץ המסגרת |
חריגים.מסגרות.סמל | חוּט | סמל הלחות, או סמל גולמי אם הוא בלתי ניתן ללחלח |
חריגות.מסגרות.היסט | INT64 | היסט בתים לתמונה הבינארית המכילה את הקוד, לא מוגדר עבור חריגים ב-Java |
חריגים.מסגרות.כתובת | INT64 | הכתובת בתמונה הבינארית המכילה את הקוד, לא מוגדרת עבור מסגרות Java |
exceptions.frames.library | חוּט | שם התצוגה של הספרייה הכוללת את המסגרת |
בעלים.exceptions.frames | חוּט | מפתח, ספק, RUNTIME, פלטפורמה או מערכת |
חריגים.מסגרות.האשמות | בולאני | האם הניתוח של Crashlytics קבע שהמסגרת הזו היא הסיבה לקריסה או לשגיאה |
שְׁגִיאָה | שיא חוזר | אפליקציות אפל בלבד: שגיאות לא קטלניות |
error.queue_name | חוּט | התור שהשרשור רץ עליו |
קוד שגיאה | INT64 | קוד שגיאה המשויך ל-NSERror שנרשם בהתאמה אישית של האפליקציה |
error.title | חוּט | הכותרת של השרשור |
error.subtitle | חוּט | כותרת המשנה של השרשור |
error.blamed | בולאני | האם הניתוח של Crashlytics קבע שהמסגרת הזו היא הסיבה לשגיאה |
error.frames | שיא חוזר | המסגרות של ה-stacktrace |
error.frames.line | INT64 | מספר השורה של הקובץ של המסגרת |
error.frames.file | חוּט | שם קובץ המסגרת |
סמל שגיאה.מסגרות | חוּט | סמל הלחות, או סמל גולמי אם הוא בלתי ניתן ללחלח |
שגיאה.מסגרות.היסט | INT64 | היסט בתים לתמונה הבינארית המכילה את הקוד |
כתובת שגיאה.מסגרות | INT64 | הכתובת בתמונה הבינארית המכילה את הקוד |
שגיאה.מסגרות.ספריית | חוּט | שם התצוגה של הספרייה הכוללת את המסגרת |
בעל שגיאה.מסגרות | חוּט | מפתח, ספק, RUNTIME, פלטפורמה או מערכת |
שגיאה.מסגרות.האשמות | בולאני | האם הניתוח של Crashlytics קבע שהמסגרת הזו היא הסיבה לשגיאה |
חוטים | שיא חוזר | שרשורים נוכחים בזמן האירוע |
שרשורים.קרסו | בולאני | האם השרשור קרס |
threads.thread_name | חוּט | שם השרשור |
threads.queue_name | חוּט | אפליקציות של אפל בלבד: התור שהשרשור רץ בו |
threads.signal_name | חוּט | שם האות שגרם לקריסה של האפליקציה, קיים רק באשכולות מקוריים שקרסו |
threads.signal_code | חוּט | הקוד של האות שגרם לאפליקציה לקרוס; קיים רק באשכולות מקוריים שקרסו |
threads.crash_address | INT64 | הכתובת של האות שגרם לאפליקציה לקרוס; קיים רק באשכולות מקוריים שקרסו |
threads.code | INT64 | יישומי אפל בלבד: קוד שגיאה של NSEerror שנרשם בהתאמה אישית של האפליקציה |
threads.title | חוּט | הכותרת של השרשור |
threads.subtitle | חוּט | כותרת המשנה של השרשור |
שרשורים.מאשימים | בולאני | האם הניתוח של Crashlytics קבע שהמסגרת הזו היא הסיבה לקריסה או לשגיאה |
threads.frames | שיא חוזר | המסגרות של החוט |
threads.frames.line | INT64 | מספר השורה של הקובץ של המסגרת |
threads.frames.file | חוּט | שם קובץ המסגרת |
סמל של threads.frames | חוּט | סמל הלחות, או סמל גולמי אם הוא בלתי ניתן ללחלח |
פתיל.מסגרות.היסט | INT64 | היסט בתים לתמונה הבינארית המכילה את הקוד |
threads.frames.address | INT64 | הכתובת בתמונה הבינארית המכילה את הקוד |
ספריית threads.frames | חוּט | שם התצוגה של הספרייה הכוללת את המסגרת |
הבעלים של threads.frames | חוּט | מפתח, ספק, RUNTIME, פלטפורמה או מערכת |
אשכולות.מסגרות.האשמות | בולאני | האם הניתוח של Crashlytics קבע שהמסגרת הזו היא הסיבה לשגיאה |
unity_metadata.unity_version | חוּט | הגרסה של Unity פועלת במכשיר זה |
unity_metadata.debug_build | בולאני | אם זה בניית באגים |
unity_metadata.processor_type | חוּט | סוג המעבד |
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 | חוּט | שם ההתקן הגרפי |
unity_metadata.graphics_device_vendor | חוּט | הספק של המכשיר הגרפי |
unity_metadata.graphics_device_version | חוּט | הגרסה של המכשיר הגרפי |
unity_metadata.graphics_device_type | חוּט | סוג ההתקן הגרפי |
unity_metadata.graphics_shader_level | INT64 | רמת ההצללה של הגרפיקה |
unity_metadata.graphics_render_target_count | INT64 | מספר יעדי העיבוד הגרפי |
unity_metadata.graphics_copy_texture_support | חוּט | תמיכה בהעתקת מרקם גרפי כפי שהוגדר ב- Unity API |
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 | קצב הרענון של המסך בהרץ |
הצגת נתוני Crashlytics מיוצאים באמצעות Data Studio
Google Data Studio הופך את מערכי הנתונים של Crashlytics ב-BigQuery לדוחות שקל לקרוא, קל לשתף וניתנים להתאמה אישית מלאה.
למידע נוסף על השימוש ב-Data Studio, נסה את מדריך ההתחלה המהירה של Data Studio, ברוכים הבאים ל-Data Studio .
שימוש בתבנית דוח Crashlytics
ל-Data Studio יש דוח לדוגמה עבור Crashlytics הכולל קבוצה מקיפה של מאפיינים ומדדים מסכימת Crashlytics BigQuery המיוצאת. אם הפעלת את ייצוא הסטרימינג של Crashlytics BigQuery, תוכל להציג את הנתונים האלה בדף מגמות בזמן אמת של תבנית Data Studio. תוכל להשתמש בדוגמה כתבנית כדי ליצור במהירות דוחות והמחשות חדשות המבוססות על נתוני הקריסה הגולמיים של האפליקציה שלך:
- פתח את תבנית לוח המחוונים של Crashlytics Data Studio .
- לחץ על השתמש בתבנית בפינה השמאלית העליונה.
- בתפריט הנפתח מקור נתונים חדש , בחר צור מקור נתונים חדש .
- לחץ על בחר בכרטיס BigQuery .
- בחר טבלה המכילה נתוני Crashlytics מיוצאים על ידי בחירה בפרויקטים שלי > [שם הפרויקט שלך] > firebase_crashlytics > [שם הטבלה שלך] . טבלת האצווה שלך תמיד זמינה לבחירה; אם ייצוא סטרימינג של Crashlytics BigQuery מופעל, אתה יכול לבחור במקום זאת את טבלת זמן אמת שלך.
- תחת תצורה , הגדר את רמת תבנית Crashlytics לברירת מחדל .
- לחץ על התחבר כדי ליצור את מקור הנתונים החדש.
- לחץ על הוסף לדוח כדי לחזור לתבנית Crashlytics.
- לבסוף, לחץ על צור דוח כדי ליצור את העותק שלך של תבנית לוח המחוונים של Crashlytics Data Studio.