يمكنك تصدير بيانات Crashlytics إلى BigQuery للمزيد من التحليل. تسمح لك BigQuery بتحليل البيانات باستخدام BigQuery SQL وتصديرها إلى مقدّم خدمات سحابة إلكترونية آخر، واستخدامه لعرض مرئيات ولوحات البيانات المخصصة باستخدام "مركز البيانات من Google"
تفعيل BigQuery Export
- الانتقال إلى قسم عمليات الدمج في وحدة تحكُّم Firebase.
- في بطاقة BigQuery، انقر على ربط.
- اتبع التعليمات التي تظهر على الشاشة لتفعيل BigQuery.
عند ربط مشروعك بأداة BigQuery:
- يُعِد Firebase عمليات مزامنة يومية لبياناتك من مشروع Firebase إلى BigQuery.
- بشكل تلقائي، يتم ربط جميع التطبيقات في مشروعك بأداة BigQuery وأي تطبيقات. التي تضيفها لاحقًا إلى المشروع يتم ربطها تلقائيًا بأداة BigQuery. إِنْتَ إدارة عمليات اختيار التطبيقات التي ترسل البيانات إلى BigQuery.
- يصدِّر Firebase نسخة من بياناتك الحالية. إلى BigQuery. وبالنسبة إلى كل تطبيق مرتبط، يتضمّن هذا الجدول جدولاً مجمّعًا يحتوي على البيانات من المزامنة اليومية.
- في حال تفعيل تصدير Crashlytics للبث من خلال BigQuery، سيتم عرض جميع التطبيقات المرتبطة أيضًا جدول الوقت الفعلي يحتوي على بتحديث البيانات باستمرار.
لإيقاف BigQuery Export، إلغاء ربط مشروعك في وحدة تحكّم 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.
تفعيل تصدير بث BigQuery لتطبيق "Crashlytics"
يمكنك بث بيانات "Crashlytics" في الوقت الفعلي باستخدام BigQueryStreaming. يمكنك استخدامه لأي غرض يتطلب بيانات مباشرة، مثل تقديم المعلومات في أو مشاهدة عملية طرح مباشرة أو مراقبة مشكلات التطبيق تؤدي إلى ظهور التنبيهات ومهام سير العمل المخصصة.
Crashlytics لا يتوفر بث BigQuery Export لوضع الحماية في BigQuery.
عند تفعيل تصدير بث Crashlytics من BigQuery، بالإضافة إلى ميزة جدول الدفعات، فسيكون لديك جدول في الوقت الفعلي. إليك الاختلافات التي يجب أن تكون على دراية بها بين الجداول:
جدول البيانات المجمّعة | جدول الوقت الفعلي |
---|---|
|
|
يُعد جدول الدُفعات مثاليًا للتحليل طويل المدى وتحديد الاتجاهات بمرور الوقت لأننا نخزّن الأحداث بشكل دائم قبل كتابتها، ويمكن إعادة ملؤها لمدة تصل إلى 30 يومًا. عندما نكتب البيانات إلى جدول الوقت الفعلي، وكتابتها على الفور إلى BigQuery، لذا فهي مثالية للوحات المعلومات المباشرة التنبيهات المخصصة. يمكن دمج هذين الجدولين مع استعلام دمج للحصول على فوائد كليهما. راجِع طلب البحث المثال 9 أدناه.
وفقًا للإعدادات التلقائية، يكون وقت انتهاء صلاحية القسم في جدول الوقت الفعلي 30 يومًا. إلى لمعرفة كيفية تعديله، راجع تعديل تاريخ انتهاء صلاحية القسم
تفعيل بث Crashlytics في BigQuery
لتفعيل ميزة "الوصول المباشر"، انتقِل إلى القسم Crashlytics في BigQuery. عمليات الدمج وحدد مربّع الاختيار تضمين البث.
نموذج "مركز البيانات"
لتفعيل البيانات في الوقت الفعلي في نموذج "مركز البيانات"، اتّبِع الخطوات التالية: تعليمات في عرض بيانات Crashlytics التي تم تصديرها باستخدام "مركز البيانات".
المشاهدات
يمكنك تحويل نماذج طلبات البحث أدناه إلى طرق عرض باستخدام واجهة مستخدم BigQuery. عرض إنشاء الملفات الشخصية للحصول على تعليمات تفصيلية.
ما أهمية البيانات التي يتم تصديرها؟
تحتوي عمليات تصدير BigQuery على بيانات الأعطال الأولية، بما في ذلك نوع الجهاز ونظام التشغيل الاستثناءات (تطبيقات Android) أو الأخطاء (تطبيقات Apple) وسجلات Crashlytics أيضًا مثل البيانات الأخرى.
استخدام بيانات "Firebase Crashlytics" في BigQuery
توضح الأمثلة التالية الاستعلامات التي يمكنك تشغيلها على بيانات Crashlytics. تُنشئ طلبات البحث هذه تقارير غير متاحة في Crashlytics. لوحة المعلومات.
أمثلة على طلبات بحث Crashlytics
توضّح الأمثلة التالية كيفية إنشاء تقارير تجمع الأعطال. بيانات الأحداث إلى ملخصات يسهل فهمها.
المثال 1: الأعطال حسب اليوم
بعد العمل على إصلاح أكبر عدد ممكن من الأخطاء، تعتقد إحدى المطوِّرين الرئيسية أن فريقها جاهز لإطلاق تطبيق مشاركة الصور الجديد. قبل أن يفعلوا ذلك، يريدون التحقق من عدد الأعطال في اليوم على مدار الشهر الماضي، للتأكد بينما جعل Bug-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 أجهزة تتعطّل
موسم الخريف هو موسم جديد للهواتف ويعلم مطوِّر البرامج أن هذا يعني أيضًا أنه جهاز جديد، وموسم مشكلات محددة. للتغلب على مخاوف التوافق التي تلوح في الأفق، تجميع استعلام يحدد الأجهزة العشرة التي شهدت أكبر قدر من الأعطال في الأسبوع الماضي:
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";
Swift
Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");
جافا
Crashlytics.setInt("current_level", 3);
باستخدام هذا المفتاح في BigQuery Export، يكتب بعد ذلك استعلامًا للإبلاغ عن
توزيع قيم 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.
يجب تحديث التطبيق لتمرير رقم تعريف المستخدم في كل من حزمة تطوير البرامج (SDK) "Google Analytics" وحزمة تطوير البرامج (SDK) Crashlytics.
Objective-C
CrashlyticsKit setUserIdentifier:@"123456789"; FIRAnalytics setUserID:@"12345678 9";
Swift
Crashlytics.sharedInstance().setUserIdentifier("123456789"); Analytics.setUserID("123456789");
جافا
Crashlytics.setUserIdentifier("123456789"); mFirebaseAnalytics.setUserId("123456789");
اكتب استعلامًا يستخدم حقل رقم تعريف المستخدم لدمج الأحداث في تحتوي مجموعة بيانات BigQuery واحدة (Google Analytics) على أعطال في 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)، بما في ذلك الأحداث التي تقع لمدة تصل إلى يومين قبل الرابط، مع خيار إعادة التعبئة لمدة تصل إلى 30 يومًا.
من ذلك الوقت إلى أن يتم إيقاف الرابط، يُصدِّر 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، ثم جدول الوقت الفعلي. على نفس الأعمدة الموجودة في جدول الدفعة. الأعمدة الموجودة داخل التصدير هي الواردة أدناه.
بدون قوائم تتبُّع تسلسل استدعاء الدوال البرمجية
الأعمدة المتوفّرة في الصفوف التي تمثّل الأحداث بدون عمليات تتبُّع تسلسل استدعاء الدوال البرمجية
اسم الحقل | نوع البيانات | الوصف |
---|---|---|
platform | سلسلة | تطبيقات Apple أو Android |
معرّف_الحزمة | سلسلة | رقم تعريف الحِزمة، على سبيل المثال com.google.gmail |
event_id (معرّف_الحدث) | سلسلة | معرّف فريد للحدث |
يكون_قاتلاً | قيمة منطقية | ما إذا كان التطبيق قد تعطّل |
نوع_الخطأ | سلسلة | نوع الخطأ المتعلّق بالحدث (FATAL أو NON_FATAL أو ANR) |
معرّف_المشكلة | سلسلة | المشكلة المرتبطة بالحدث |
معرّف_الصيغة | سلسلة | صيغة المشكلة المرتبطة بهذا الحدث يُرجى العلم أنّه لا تتوفّر لبعض الأحداث صيغة مشكلة مرتبطة بها. |
event_timestamp | الطابع الزمني | وقت وقوع الحدث |
الجهاز | سجلّ | الجهاز الذي وقع عليه الحدث |
device.packager | سلسلة | الشركة المصنِّعة للجهاز |
جهاز.model | سلسلة | طراز الجهاز |
هندسة الجهاز | سلسلة | X86_32 أو X86_64 أو ARMV7 أو ARM64 أو ARMV7S أو ARMV7K |
ذاكرة | سجلّ | حالة ذاكرة الجهاز |
تم استخدام الذاكرة | INT64 | وحدات البايت المستخدمة من الذاكرة |
مساحة خالية من الذاكرة | INT64 | وحدات البايت المتبقية من الذاكرة |
التخزين | سجلّ | مساحة التخزين الدائمة للجهاز |
مساحة التخزين مُستخدَمة | INT64 | وحدات البايت المستخدمة من مساحة التخزين |
مساحة تخزين مجانية | INT64 | وحدات البايت المتبقية من مساحة التخزين |
نظام_التشغيل | سجلّ | تفاصيل نظام التشغيل على الجهاز |
work_system.display_version | سلسلة | إصدار نظام التشغيل المثبَّت على الجهاز |
operating_system.name | سلسلة | اسم نظام التشغيل على الجهاز |
work_system.modification_state | سلسلة | ما إذا تم تعديل الجهاز، على سبيل المثال تمت إزالة جميع القيود عنه أو تزويده بإذن الوصول إلى الجذر (معدَّلة أو غير معدّلة) |
work_system.type. | سلسلة | نوع نظام التشغيل الذي يعمل على الجهاز (على سبيل المثال، IOS وMACOS) فقط متوفّرة لتطبيقات أنظمة Apple الأساسية |
work_system.device_type. | سلسلة | نوع الجهاز (على سبيل المثال، جهاز جوّال أو جهاز لوحي أو تلفزيون أو غير ذلك) والمعروفة أيضًا باسم "فئة الجهاز" |
التطبيق | سجلّ | التطبيق الذي أنشأ الحدث |
application.build_version | سلسلة | نسخة إصدار التطبيق |
application.display_version | سلسلة | |
المستخدم | سجلّ | اختياري: المعلومات التي يتم جمعها عن مستخدم التطبيق |
user.name | سلسلة | اختياري: اسم المستخدم |
user.email | سلسلة | اختياري: عنوان البريد الإلكتروني للمستخدم |
user.id | سلسلة | اختياري: رقم تعريف خاص بالتطبيق مرتبط بالمستخدم |
مفاتيح_مخصّصة | سجلّ متكرّر | أزواج المفتاح/القيمة التي يحددها المطوّر |
custom_keys.key | سلسلة | مفتاح يحدده المطوّر |
قيمة_المفاتيح_المخصصة | سلسلة | قيمة يحدِّدها المطوِّر |
معرّف_التثبيت | سلسلة | رقم تعريف يحدد تطبيقًا فريدًا تركيب الجهاز |
Crashlytics_sdk_versions | سلسلة | إصدار حزمة تطوير البرامج (SDK) في Crashlytics الذي أنشأ الحدث |
اتجاه_التطبيق | سلسلة | PORTRAIT أو LANDSCAPE أو FACE_UP أو FACE_DOWN |
اتجاه_الجهاز | سلسلة | PORTRAIT أو LANDSCAPE أو FACE_UP أو FACE_DOWN |
حالة_المعالجة | سلسلة | الخلفية أو المقدمة |
قطع خشب | سجلّ متكرّر | رسائل السجلّ ذات الطابع الزمني التي ينشئها مسجّل Crashlytics، إذا تم تفعيلها |
Log.timestamp | الطابع الزمني | وقت إنشاء السجلّ |
السجلّات.message | سلسلة | الرسالة المسجَّلة |
أشرطة التنقّل | سجلّ متكرّر | مسارات التنقّل في "إحصاءات Google" ذات الطابع الزمني، في حال تفعيلها |
crafts.timestamp | الطابع الزمني | الطابع الزمني المرتبط بشريط التنقّل |
breadcrumbs.name | سلسلة | الاسم المرتبط بشريط التنقل |
crafts.params | سجلّ متكرّر | المعلّمات المرتبطة بشريط التنقّل |
crafts.params.key | سلسلة | مفتاح مَعلمة مرتبط بشريط التنقّل |
crafts.params.value | سلسلة | قيمة مَعلمة مرتبطة بمسار التنقّل |
إطار_اللوم | سجلّ | الإطار الذي تم تحديده على أنه السبب الأساسي للعُطل أو الخطأ |
blame_frame.line | INT64 | رقم سطر ملف الإطار |
ملف blame_frame. | سلسلة | اسم ملف الإطار |
blame_frame.symbol | سلسلة | رمز الماء أو الرمز الأولي إذا كان غير قابل للشرب |
blame_frame.offset | INT64 | إزاحة البايت إلى الصورة الثنائية التي تحتوي على التعليمات البرمجية، ولم يتم تعيينها استثناءات Java |
blame_frame.address | INT64 | العنوان في الصورة الثنائية التي تحتوي على الرمز، تم إلغاء تعيينه لـ Java الإطارات |
مكتبة اللوم | سلسلة | الاسم المعروض للمكتبة التي تحتوي على الإطار |
blame_frame.owner | سلسلة | المطوِّر أو VENDOR أو RUNTIME أو المنصة أو النظام |
blame_frame.blamed | قيمة منطقية | ما إذا توصّل تحليل "Crashlytics" إلى أنّ هذا الإطار هو السبب عن العطل أو الخطأ |
الاستثناءات | سجلّ متكرّر | أجهزة Android فقط: الاستثناءات التي حدثت أثناء هذا الحدث الاستثناءات المتداخلة يتم تقديمها بترتيب زمني عكسي (قراءة: السجل الأخير هو الأول تم طرح استثناء) |
نوع الاستثناءات | سلسلة | نوع الاستثناء، على سبيل المثال: java.lang.UnknownStateException |
رسالة استثناء | سلسلة | هناك رسالة مرتبطة بالاستثناء |
الاستثناءات.nested | قيمة منطقية | صحيح للجميع ما عدا استثناء آخر تم طرحه (أي السجل الأول) |
استثناءات.title | سلسلة | عنوان سلسلة المحادثات |
الاستثناءات.العنوان الفرعي | سلسلة | العنوان الفرعي لسلسلة المحادثات |
استثناءات.blamed | قيمة منطقية | صواب إذا حددت Crashlytics أن الاستثناء مسؤول عن خطأ أو عطل |
الاستثناءات.إطارات | سجلّ متكرّر | الإطارات المرتبطة بالاستثناء |
استثناءات.frames.line | INT64 | رقم سطر ملف الإطار |
ملف الاستثناءات.frames.file | سلسلة | اسم ملف الإطار |
استثناءات.frames.symbol | سلسلة | رمز الماء أو الرمز الأولي إذا كان غير قابل للشرب |
الاستثناءات.frames.offset | INT64 | إزاحة البايت إلى الصورة الثنائية التي تحتوي على التعليمات البرمجية، ولم يتم تعيينها استثناءات Java |
عنوان الاستثناءات.frames.address | INT64 | العنوان في الصورة الثنائية التي تحتوي على الرمز، تم إلغاء تعيينه لـ Java الإطارات |
استثناءات.frames.library | سلسلة | الاسم المعروض للمكتبة التي تحتوي على الإطار |
استثناءات.frames.owner | سلسلة | المطوِّر أو VENDOR أو RUNTIME أو المنصة أو النظام |
استثناءات.frames.blamed | قيمة منطقية | ما إذا توصّل تحليل "Crashlytics" إلى أنّ هذا الإطار هو السبب عن العطل أو الخطأ |
خطأ | سجلّ متكرّر | تطبيقات Apple فقط: الأخطاء غير الفادحة |
error.queue_name | سلسلة | قائمة الانتظار التي كانت سلسلة المحادثات عليها |
رمز الخطأ | 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 | سلسلة | المطوِّر أو VENDOR أو RUNTIME أو المنصة أو النظام |
error.frames.blamed | قيمة منطقية | ما إذا توصّل تحليل "Crashlytics" إلى أنّ هذا الإطار هو السبب من الخطأ |
سلاسل المحادثات | سجلّ متكرّر | توفُّر سلاسل محادثات في وقت الحدث |
accounts.crashed | قيمة منطقية | ما إذا تعطّلت سلسلة المحادثات أم لا |
accounts.thread_name | سلسلة | اسم سلسلة المحادثات |
اسم سلسلة المحادثات | سلسلة | تطبيقات Apple فقط: قائمة الانتظار التي كانت سلسلة المحادثات عليها |
accounts.signal_name | سلسلة | اسم الإشارة التي تسبّبت في تعطُّل التطبيق، ولا تظهر إلا في حال تعطُّل التطبيق سلاسل محادثات مدمجة مع المحتوى |
accounts.signal_code | سلسلة | رمز الإشارة التي تسبّبت في تعطُّل التطبيق موجودة فقط في حالة التعطُّل سلاسل محادثات مدمجة مع المحتوى |
accounts.crash_address | INT64 | عنوان الإشارة التي تسبّبت في تعطُّل التطبيق موجود فقط على سلاسل المحادثات الأصلية التي حصلت على أعطال |
رمز الرسائل | INT64 | تطبيقات Apple فقط: رمز الخطأ الخاص بالخطأ NSError المخصّص الذي تم تسجيله في التطبيق |
accounts.title | سلسلة | عنوان سلسلة المحادثات |
accounts.subtitle | سلسلة | العنوان الفرعي لسلسلة المحادثات |
الموضوع:blamed | قيمة منطقية | ما إذا توصّل تحليل "Crashlytics" إلى أنّ هذا الإطار هو السبب عن العطل أو الخطأ |
accounts.frames | سجلّ متكرّر | إطارات سلسلة المحادثات |
accounts.frames.line | INT64 | رقم سطر ملف الإطار |
accounts.frames.file | سلسلة | اسم ملف الإطار |
accounts.frames.symbol | سلسلة | رمز شرب السوائل، أو الرمز الأولي إذا كانت غير صالحة للشرب |
accounts.frames.offset | INT64 | إزاحة البايت إلى الصورة الثنائية التي تحتوي على الرمز |
accounts.frames.address | INT64 | العنوان في الصورة الثنائية الذي يحتوي على الرمز |
accounts.frames.library. | سلسلة | الاسم المعروض للمكتبة التي تحتوي على الإطار |
accounts.frames.owner | سلسلة | المطوِّر أو VENDOR أو RUNTIME أو المنصة أو النظام |
accounts.frames.blamed | قيمة منطقية | ما إذا توصّل تحليل "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 | تردّد المعالج(المعالجات) بالميغاهرتز |
unity_metadata.system_memory_size_mb | INT64 | حجم ذاكرة النظام بالميغا بايت |
unity_metadata.graphics_memory_size_mb | INT64 | ذاكرة الرسومات بالميغابايت |
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 | سلسلة | حجم الشاشة بالبكسل، بتنسيق العرض × الارتفاع |
unity_metadata.screen_ دقيق_dpi | سلسلة | عدد النقاط لكل بوصة (DPI) للشاشة كرقم نقطة عائمة |
unity_metadata.screen_refresh_rate_hz | INT64 | معدّل تحديث الشاشة بالهرتز |
عرض بيانات "Crashlytics" التي تم تصديرها باستخدام "مركز البيانات"
يحوّل مركز البيانات من Google Crashlytics مجموعات بيانات في BigQuery على شكل تقارير سهلة القراءة لمشاركتها، ويمكن تخصيصها بالكامل
لمعرفة المزيد من المعلومات عن استخدام "مركز البيانات"، جرِّب دليل البدء السريع في "مركز البيانات" مرحبًا بك في "مركز البيانات"
استخدام نموذج تقرير Crashlytics
يحتوي "مركز البيانات" على نموذج تقرير عن Crashlytics يتضمن تقريرًا شاملاً مجموعة من السمات والمقاييس من مخطّط BigQuery الذي تم تصديره من قِبل "Crashlytics". في حال حذف لقد فعّلت تصدير Crashlytics لبث BigQuery، يمكنك الاطّلاع على ذلك صفحة المؤشرات في الوقت الفعلي بنموذج "مركز البيانات". يمكنك استخدام كعينة كقالب لإنشاء تقارير وتصورات جديدة بسرعة استنادًا إلى بيانات الأعطال الأولية لتطبيقك:
- افتح Crashlytics نموذج لوحة بيانات "مركز البيانات".
- انقر على استخدام النموذج في أعلى يسار الصفحة.
- في القائمة المنسدلة مصدر بيانات جديد، اختَر إنشاء مصدر بيانات جديد.
- انقر على اختيار في بطاقة BigQuery.
- يمكنك اختيار جدول يحتوي على بيانات "Crashlytics" التي تم تصديرها. مشاريعي > [your-project-name] > firebase_crashlytics > [اسم-الجدول]. جدول الدُفعات الخاص بك متاح دائمًا للاختيار؛ إذا تم تفعيل تصدير Crashlytics للبث من خلال BigQuery، ويمكنك اختيار جدول الوقت الفعلي بدلاً من ذلك.
- ضمن الإعدادات، اضبط مستوى نموذج Crashlytics على تلقائي.
- انقر على ربط لإنشاء مصدر البيانات الجديد.
- انقر على إضافة إلى التقرير للعودة إلى نموذج Crashlytics.
- أخيرًا، انقر على إنشاء تقرير لإنشاء نسختك من Crashlytics. نموذج لوحة بيانات "مركز البيانات".