Firebase Crashlytics का डेटा BigQuery में एक्सपोर्ट करें

Crashlytics से मिले डेटा को यहां एक्सपोर्ट किया जा सकता है BigQuery आगे की परफ़ॉर्मेंस विश्लेषण करें. BigQuery की मदद से, BigQuery SQL का इस्तेमाल करके डेटा का विश्लेषण किया जा सकता है और उसे एक्सपोर्ट किया जा सकता है साथ ही, विज़ुअलाइज़ेशन और कस्टम डैशबोर्ड के लिए इसका इस्तेमाल करें के साथ कैसे काम करता है.

BigQuery Export चालू करें

  1. YouTube Studio के इंटिग्रेशन पेज पर जाएं.
  2. BigQuery कार्ड में, लिंक करें पर क्लिक करें.
  3. BigQuery को चालू करने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.

अपने प्रोजेक्ट को BigQuery से लिंक करने पर:

  • Firebase आपके Firebase प्रोजेक्ट से आपके डेटा को रोज़ सिंक करने की सुविधा सेट अप करता है, ताकि BigQuery.
  • डिफ़ॉल्ट रूप से, आपके प्रोजेक्ट के सभी ऐप्लिकेशन, BigQuery और किसी भी ऐप्लिकेशन से लिंक होते हैं जिन्हें बाद में प्रोजेक्ट में जोड़ा जाता है, वे अपने-आप BigQuery से लिंक हो जाती हैं. आपने लोगों तक पहुंचाया मुफ़्त में यह मैनेज कर सकता है कि कौनसे ऐप्लिकेशन डेटा भेजेंगे.
  • Firebase आपके मौजूदा डेटा की कॉपी एक्सपोर्ट करता है को BigQuery में जोड़ना है. लिंक किए गए हर ऐप्लिकेशन के लिए, इसमें एक बैच टेबल शामिल होती है, जिसमें रोज़ के सिंक का डेटा.
  • अगर Crashlytics से BigQuery स्ट्रीमिंग एक्सपोर्ट चालू किया जाता है, तो लिंक किए गए सभी ऐप्लिकेशन इसमें एक रीयल टाइम टेबल भी होगी, जिसमें लगातार डेटा अपडेट कर रहा है.

BigQuery Export बंद करने के लिए, अपना प्रोजेक्ट अनलिंक करना देखें.

BigQuery में कौनसा डेटा एक्सपोर्ट किया जाता है?

Firebase Crashlytics से मिले डेटा को firebase_crashlytics. डिफ़ॉल्ट रूप से, इसके अंदर अलग-अलग टेबल बनाई जाएंगी आपके प्रोजेक्ट में मौजूद हर ऐप्लिकेशन के लिए Crashlytics का डेटा सेट होना चाहिए. Firebase ऐप्लिकेशन के बंडल आइडेंटिफ़ायर के आधार पर टेबल, जिनमें पीरियड को अंडरस्कोर और प्लैटफ़ॉर्म का नाम होना चाहिए.

उदाहरण के लिए, com.google.test आईडी वाले ऐप्लिकेशन का डेटा एक टेबल में होगा com_google_test_ANDROID नाम दिया गया है. यह बैच टेबल हर दिन एक बार अपडेट होती है. अगर आपने अगर आप Crashlytics BigQuery स्ट्रीमिंग एक्सपोर्ट, Firebase Crashlytics का इस्तेमाल करने की अनुमति देते हैं, तो डेटा को रीयलटाइम में com_google_test_ANDROID_REALTIME पर स्ट्रीम भी किया जाएगा.

टेबल की हर पंक्ति, ऐप्लिकेशन में होने वाले किसी इवेंट को दिखाती है. इसमें ये भी शामिल हैं क्रैश, साधारण गड़बड़ियां, और एएनआर.

Crashlytics BigQuery की स्ट्रीमिंग एक्सपोर्ट करने की सुविधा चालू करें

Crashlytics से मिले डेटा को रीयलटाइम में स्ट्रीम किया जा सकता है. BigQueryStreaming. इसका इस्तेमाल किया जा सकता है लाइव डेटा की ज़रूरत होती है, जैसे कि लाइव डैशबोर्ड पर आना, लॉन्च को लाइव देखना या ऐप्लिकेशन से जुड़ी समस्याओं को मॉनिटर करना सूचना और कस्टम वर्कफ़्लो ट्रिगर करें.

Crashlytics BigQuery स्ट्रीमिंग एक्सपोर्ट, BigQuery सैंडबॉक्स के लिए उपलब्ध नहीं है.

अगर आपने Crashlytics BigQuery की मदद से स्ट्रीमिंग एक्सपोर्ट करने की सुविधा चालू की है, तो बैच टेबल के लिए आपके पास एक रीयल टाइम टेबल होगी. यहां कुछ अंतर दिए गए हैं, जो आपको यहां अलग-अलग टेबल की जानकारी दी गई है:

बैच टेबल रीयल टाइम टेबल
  • डेटा एक दिन में एक बार एक्सपोर्ट किया गया
  • BigQuery में बैच लिखने से पहले ही इवेंट सेव किए जाते हैं
  • इसे बैकफ़िल किया जा सकता है ज़्यादा से ज़्यादा 30 दिन पहले
  • रीयल टाइम में डेटा एक्सपोर्ट किया गया
  • डेटा बैकफ़िल उपलब्ध नहीं है

बैच टेबल, लंबे समय तक विश्लेषण करने और समय के साथ रुझानों की पहचान करने के लिए सबसे सही होती है क्योंकि हम इवेंट को लिखने से पहले उन्हें लंबे समय तक सेव करके रखते हैं और उन्हें बैकफ़िल किया जा सकता है टेबल में 30 दिनों तक रखा जा सकता है. जब हम आपकी रीयल टाइम टेबल में डेटा लिखते हैं, उसे तुरंत BigQuery में लिख लें. ऐसा इसलिए, ताकि वह लाइव डैशबोर्ड और कस्टम अलर्ट. इन दोनों टेबल को एक स्टिचिंग क्वेरी के साथ जोड़ा जा सकता है. दोनों के फ़ायदे. यहां क्वेरी का उदाहरण 9 देखें.

डिफ़ॉल्ट रूप से, रीयल टाइम टेबल में सेगमेंट के खत्म होने की समयसीमा 30 दिनों की होती है. यहां की यात्रा पर हूं इसे संशोधित करने का तरीका जानें, देखें सेगमेंट के खत्म होने की तारीख को अपडेट करना.

Crashlytics BigQuery की स्ट्रीमिंग चालू करने का तरीका

स्ट्रीमिंग की सुविधा चालू करने के लिए, BigQuery के Crashlytics सेक्शन पर जाएं इंटिग्रेशन पेज पर जाएं और स्ट्रीमिंग शामिल करें चेकबॉक्स को चुनें.

Data Studio टेंप्लेट

अपने Data Studio टेंप्लेट में रीयलटाइम डेटा चालू करने के लिए, एक्सपोर्ट किए गए Crashlytics डेटा को Data Studio की मदद से विज़ुअलाइज़ करने के बारे में निर्देश दिए गए हैं.

व्यू

BigQuery यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, उदाहरण के तौर पर दी गई क्वेरी को व्यू में बदला जा सकता है. यहां जाएं: व्यू पाने में मदद करना देखें.

एक्सपोर्ट किए गए डेटा का इस्तेमाल करके क्या किया जा सकता है?

BigQuery Export में रॉ क्रैश डेटा होता है. इसमें डिवाइस टाइप, ऑपरेटिंग सिस्टम, अपवाद (Android ऐप्लिकेशन) या गड़बड़ियां (Apple ऐप्लिकेशन), Crashlytics के लॉग भी वगैरह अन्य डेटा की तरह होता है.

BigQuery में Firebase Crashlytics डेटा के साथ काम करना

नीचे दिए गए उदाहरणों में, Crashlytics से मिले डेटा पर की जा सकने वाली क्वेरी के बारे में बताया गया है. ये क्वेरी ऐसी रिपोर्ट जनरेट करती हैं जो Crashlytics में उपलब्ध नहीं हैं डैशबोर्ड पर जाएं.

Crashlytics से जुड़ी क्वेरी के उदाहरण

नीचे दिए गए उदाहरणों में, क्रैश को एग्रीगेट करने वाली रिपोर्ट जनरेट करने का तरीका बताया गया है इवेंट डेटा को आसानी से समझ में आने लायक जवाब में बदल दिया जाता है.

पहला उदाहरण: दिन के हिसाब से क्रैश होना

ज़्यादा से ज़्यादा गड़बड़ियां ठीक करने के बाद, एक लीड डेवलपर को लगता है कि उनकी टीम आखिरकार, अपना नया फ़ोटो-शेयरिंग ऐप्लिकेशन लॉन्च करने के लिए तैयार है. ऐसा करने से पहले, क्रैश की संख्या की जांच करना है, ताकि पक्का हो सके कि पिछले महीने बग-बैश ने समय के साथ ऐप्लिकेशन को ज़्यादा स्थिर बना दिया है:

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;

दूसरा उदाहरण: ऐप्लिकेशन के सबसे ज़्यादा क्रैश होने की समस्या का पता लगाना

प्रोडक्शन प्लान की सही तरीके से प्राथमिकता तय करने के लिए, प्रोजेक्ट मैनेजर सोचता है कि हम अपने प्रॉडक्ट के 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";

Swift

Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");

Java

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
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

पांचवां उदाहरण: यूज़र आईडी निकालना

डेवलपर के पास, रिलीज़ होने से पहले ऐप्लिकेशन इस्तेमाल करने की सुविधा है. उनके ज़्यादातर उपयोगकर्ता इसे पसंद करते हैं, लेकिन तीन को असामान्य संख्या में क्रैश होने का सामना करना पड़ा है. समस्या की पूरी जानकारी पाने के लिए तो वे एक ऐसी क्वेरी लिखते हैं जो उन उपयोगकर्ताओं के लिए सभी क्रैश इवेंट की जानकारी हासिल करती है, इनके यूज़र आईडी का इस्तेमाल करेगा:

SELECT *
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  user.id IN ("userid1", "userid2", "userid3")
ORDER BY
  user.id
 

उदाहरण 6: उन सभी उपयोगकर्ताओं को ढूंढना जिन्हें क्रैश की खास समस्या का सामना करना पड़ रहा है

एक डेवलपर ने बीटा टेस्टर के एक ग्रुप के लिए एक गंभीर गड़बड़ी रिलीज़ की है. टीम क्रैश की समस्या की पहचान करने के लिए, ऊपर दिए गए दूसरे उदाहरण में दी गई क्वेरी का इस्तेमाल किया समस्या आईडी. अब उसे ऐप्लिकेशन इस्तेमाल करने वाले लोगों की सूची एक्सट्रैक्ट करने के लिए, एक क्वेरी चलाने की ज़रूरत है इन क्रैश का असर किन लोगों पर पड़ा है:

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 में दी गई क्वेरी का इस्तेमाल करके, क्रैश से जुड़ी समस्या का आईडी. टीम अब यह देखना चाहती है कि क्या यह क्रैश दुनिया भर के अलग-अलग देशों के उपयोगकर्ता हैं.

यह क्वेरी लिखने के लिए, टीम को ये काम करने होंगे:

  1. Google Analytics के लिए BigQuery Export चालू करें. प्रोजेक्ट डेटा को BigQuery में एक्सपोर्ट करना लेख पढ़ें.

  2. Google Analytics SDK दोनों में यूज़र आईडी पास करने के लिए अपना ऐप्लिकेशन अपडेट करना और Crashlytics SDK टूल भी हैं.

    Objective-C
    CrashlyticsKit setUserIdentifier:@"123456789";
    FIRAnalytics setUserID:@"12345678 9";
    
    Swift
    Crashlytics.sharedInstance().setUserIdentifier("123456789");
    Analytics.setUserID("123456789");
    
    Java
    Crashlytics.setUserIdentifier("123456789");
    mFirebaseAnalytics.setUserId("123456789");
    
  3. ऐसी क्वेरी लिखें जो User-ID फ़ील्ड का इस्तेमाल करके, इवेंट में शामिल हो Crashlytics में क्रैश के साथ Google Analytics BigQuery डेटा सेट 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: आज तक की पांच सबसे बड़ी समस्याएं

Crshlytics 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: आज को मिलाकर, DATE से अब तक की पांच मुख्य समस्याएं

Crshlytics 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;

BigQuery में Firebase Crashlytics स्कीमा को समझना

Crashlytics को BigQuery से लिंक करने पर, Firebase हाल ही के इवेंट एक्सपोर्ट करता है (क्रैश, साधारण गड़बड़ियां, और एएनआर), जिनमें दो दिन तक के इवेंट शामिल हैं के विकल्प के साथ बैकफ़िल 30 दिनों तक.

लिंक करने की सुविधा बंद किए जाने तक Firebase, Crashlytics को एक्सपोर्ट करता है को इवेंट में शामिल होने का मौका मिलता है. डेटा उपलब्ध होने में कुछ मिनट लग सकते हैं BigQuery में, हर एक्सपोर्ट के बाद.

डेटासेट

Firebase Crashlytics का इस्तेमाल, Crashlytics के लिए BigQuery में एक नया डेटासेट बनाने के लिए किया जाता है. डेटा शामिल है. डेटासेट में आपके पूरे प्रोजेक्ट की जानकारी होती है, भले ही उसमें कई ऐप्लिकेशन हों.

टेबल

Firebase Crashlytics का इस्तेमाल करके, अपने ऐप्लिकेशन में मौजूद हर ऐप्लिकेशन के डेटासेट में एक टेबल बनाई जाती है प्रोजेक्ट में तब तक शामिल नहीं किया जाएगा, जब तक आपने उस ऐप्लिकेशन के लिए डेटा एक्सपोर्ट करने की सुविधा से ऑप्ट आउट न किया हो. Firebase के नाम ऐप्लिकेशन के बंडल आइडेंटिफ़ायर के आधार पर टेबल, जिसमें पीरियड को अंडरस्कोर और प्लैटफ़ॉर्म का नाम होना चाहिए.

उदाहरण के लिए, com.google.test आईडी वाले Android ऐप्लिकेशन का डेटा com_google_test_ANDROID नाम वाली टेबल और रीयल टाइम डेटा (चालू होने पर) के लिए com_google_test_ANDROID_REALTIME नाम की टेबल में

टेबल में, Crashlytics से मिले डेटा का स्टैंडर्ड सेट और कस्टम टेंप्लेट डेवलपर की ओर से तय की गई Crashlytics कुंजियां हैं.

लाइन

टेबल की हर पंक्ति, ऐप्लिकेशन को मिली एक गड़बड़ी के बारे में बताती है.

कॉलम

टेबल में मौजूद कॉलम, क्रैश, सामान्य गड़बड़ियों, और ANRs के लिए एक जैसे होते हैं. अगर आपने Crashlytics BigQuery स्ट्रीमिंग एक्सपोर्ट चालू है. इसके बाद, रीयलटाइम टेबल दिख रही है इसमें बैच टेबल वाले कॉलम होंगे. एक्सपोर्ट में शामिल कॉलम नीचे दी गई सूची उपलब्ध है.

स्टैक ट्रेस के बिना

लाइनों में मौजूद कॉलम, जिनमें बिना स्टैक ट्रेस वाले इवेंट दिखाए गए हैं.

फ़ील्ड का नाम डेटा टाइप ब्यौरा
प्लैटफ़ॉर्म स्ट्रिंग Apple या Android ऐप्लिकेशन
बंडल_आइडेंटिफ़ायर स्ट्रिंग बंडल आईडी, जैसे com.google.gmail
event_id स्ट्रिंग इवेंट के लिए यूनीक आईडी
is_fatal बूलियन ऐप्लिकेशन क्रैश हुआ है या नहीं
error_type स्ट्रिंग इवेंट का गड़बड़ी टाइप (FATAL, NON_FATAL, ANR)
समस्या का आईडी स्ट्रिंग इवेंट से जुड़ी समस्या
वैरिएंट_आईडी स्ट्रिंग इस इवेंट से जुड़ी समस्या का वैरिएंट
ध्यान दें कि हर इवेंट में, समस्या का वैरिएंट नहीं होता.
event_timestamp टाइमस्टैंप इवेंट कब हुआ
डिवाइस रिकॉर्ड वह डिवाइस जिस पर इवेंट हुआ
device.manufacturer स्ट्रिंग डिवाइस बनाने वाली कंपनी
डिवाइस मॉडल स्ट्रिंग डिवाइस का मॉडल
डिवाइस संरचना स्ट्रिंग X86_32, X86_64, ARMV7, ARM64, ARMV7S या ARMV7K
मेमोरी रिकॉर्ड डिवाइस की मेमोरी की स्थिति
मेमोरी.इस्तेमाल की गई INT64 इस्तेमाल की गई मेमोरी के बाइट
मेमोरी.फ़्री INT64 बची हुई मेमोरी के बाइट
मेमोरी रिकॉर्ड डिवाइस का स्थायी स्टोरेज
इस्तेमाल किया गया स्टोरेज INT64 इस्तेमाल की गई स्टोरेज के बाइट
Storage.free INT64 बचे हुए स्टोरेज के बाइट
ऑपरेटिंग_सिस्टम रिकॉर्ड डिवाइस पर मौजूद ओएस की जानकारी
ऑपरेटिंग_system.display_version स्ट्रिंग डिवाइस पर मौजूद ओएस का वर्शन
operating_system.name स्ट्रिंग डिवाइस पर ओएस का नाम
ऑपरेटिंग_system.modification_state स्ट्रिंग डिवाइस में बदलाव किया गया है या नहीं, उदाहरण के लिए, सिस्टम से जुड़े प्रतिबंध हटाए गए/रूट किए गए (बदले गए या बदलाव नहीं किए गए)
ऑपरेटिंग_system.type स्ट्रिंग डिवाइस पर चल रहे ओएस का टाइप (उदाहरण के लिए, IOS, MACOS); सिर्फ़ Apple प्लैटफ़ॉर्म ऐप्लिकेशन के लिए उपलब्ध
ऑपरेटिंग_system.device_type स्ट्रिंग डिवाइस किस तरह का है (उदाहरण के लिए, मोबाइल, टैबलेट, टीवी वगैरह); इस नाम से भी जाना जाता है "डिवाइस की कैटगरी"
ऐप्लिकेशन रिकॉर्ड इवेंट जनरेट करने वाला ऐप्लिकेशन
app.build_version स्ट्रिंग ऐप्लिकेशन का बिल्ड वर्शन
ऐप्लिकेशन.display_version स्ट्रिंग
user रिकॉर्ड ज़रूरी नहीं: ऐप्लिकेशन के उपयोगकर्ता के बारे में इकट्ठा की गई जानकारी
user.name स्ट्रिंग ज़रूरी नहीं: उपयोगकर्ता का नाम
user.email स्ट्रिंग ज़रूरी नहीं: उपयोगकर्ता का ईमेल पता
user.id स्ट्रिंग ज़रूरी नहीं: उपयोगकर्ता से जुड़ा कोई खास ऐप्लिकेशन आईडी
कस्टम कुंजी दोहराया गया रिकॉर्ड डेवलपर के तय किए गए की-वैल्यू पेयर
custom_keys.key स्ट्रिंग डेवलपर की ओर से तय की गई कुंजी
custom_keys.value स्ट्रिंग डेवलपर की ओर से तय की गई वैल्यू
इंस्टॉलेशन_uuid स्ट्रिंग ऐसा आईडी जो किसी यूनीक ऐप्लिकेशन और डिवाइस इंस्टॉल करने की सुविधा
Crowdlytics_sdk_versions स्ट्रिंग Crashlytics SDK टूल का वह वर्शन जिससे इवेंट जनरेट हुआ
app_orientation स्ट्रिंग PORTRAIT, LANDSCAPE, FACE_UP या FACE_DOWN
device_orientation स्ट्रिंग PORTRAIT, LANDSCAPE, FACE_UP या FACE_DOWN
प्रोसेस_स्टेट स्ट्रिंग बैकग्राउंड या आगे का हिस्सा
लॉग दोहराया गया रिकॉर्ड अगर यह नीति चालू है, तो Crashlytics लॉगर से, टाइमस्टैंप वाले लॉग मैसेज जनरेट हो जाते हैं
Logs.timestamp टाइमस्टैंप लॉग कब बनाया गया था
Logs.message स्ट्रिंग लॉग किया गया मैसेज
ब्रेडक्रंब दोहराया गया रिकॉर्ड Google Analytics के टाइमस्टैंप वाले ब्रेडक्रंब, अगर चालू हैं
ब्रेडक्रंब.timestamp टाइमस्टैंप ब्रेडक्रंब से जुड़ा टाइमस्टैंप
breadcrumbs.name स्ट्रिंग ब्रेडक्रंब से जुड़ा नाम
ब्रेडक्रंब.params दोहराया गया रिकॉर्ड ब्रेडक्रंब से जुड़े पैरामीटर
ब्रेडक्रंब.params.key स्ट्रिंग ब्रेडक्रंब से जुड़ी पैरामीटर कुंजी
ब्रेडक्रंब.params.value स्ट्रिंग ब्रेडक्रंब से जुड़ी पैरामीटर वैल्यू
ब्लेम_फ़्रेम रिकॉर्ड क्रैश या गड़बड़ी की असल वजह के तौर पर पहचाने गए फ़्रेम
Blame_frame.line INT64 फ़्रेम की फ़ाइल की लाइन नंबर
Blame_frame.file स्ट्रिंग फ़्रेम फ़ाइल का नाम
Blame_frame.सिम्बॉल स्ट्रिंग हाइड्रेटेड सिंबल या रॉ सिंबल
Blame_frame.offset INT64 उस बाइनरी इमेज में बाइट ऑफ़सेट जो कोड है, इसके लिए सेट नहीं है Java के अपवाद
Blame_frame.address INT64 बाइनरी इमेज में दिया गया पता, जिसमें कोड है. Java के लिए, यह पता सेट नहीं किया गया फ़्रेम
Blame_frame.library स्ट्रिंग उस लाइब्रेरी का डिसप्ले नेम जिसमें फ़्रेम शामिल है
Blame_frame.owner स्ट्रिंग डेवलपर, वेंडर, RUNTIME, प्लैटफ़ॉर्म या सिस्टम
ब्लेम_फ़्रेम.ब्लेड बूलियन क्या Crashlytics के विश्लेषण से यह पता चला कि यह फ़्रेम क्रैश या गड़बड़ी की जानकारी
अपवाद दोहराया गया रिकॉर्ड सिर्फ़ Android के लिए: इस इवेंट के दौरान हुए अपवाद. नेस्ट किए गए अपवाद उन्हें समय के हिसाब से उलटा क्रम में दिखाया गया है (पढ़ें: आखिरी रिकॉर्ड पहला है अपवाद के तौर पर मार्क किया गया है)
अपवाद.टाइप स्ट्रिंग अपवाद का टाइप, जैसे कि java.lang.legalStateexcept
अपवाद.अपवाद मैसेज स्ट्रिंग इस अपवाद से जुड़ा मैसेज
अपवाद.नेस्ट किया गया बूलियन आखिरी बार डाले गए अपवाद (यानी पहला रिकॉर्ड) को छोड़कर बाकी सभी के लिए सही है
अपवाद.टाइटल स्ट्रिंग थ्रेड का टाइटल
अपवाद.सबटाइटल स्ट्रिंग थ्रेड का सबटाइटल
अपवाद.उन्हें दोषी ठहराया गया है बूलियन अगर Crashlytics, यह तय करता है कि अपवाद किस तरह गड़बड़ी या क्रैश
अपवाद.फ़्रेम दोहराया गया रिकॉर्ड अपवाद से जुड़े फ़्रेम
अपवाद.फ़्रेम.लाइन INT64 फ़्रेम की फ़ाइल की लाइन नंबर
अपवाद.फ़्रेम फ़ाइल स्ट्रिंग फ़्रेम फ़ाइल का नाम
अपवाद.फ़्रेम.सिमबॉल स्ट्रिंग हाइड्रेटेड सिंबल या रॉ सिंबल
अपवाद.फ़्रेम्स.ऑफ़सेट INT64 उस बाइनरी इमेज में बाइट ऑफ़सेट जो कोड है, इसके लिए सेट नहीं है Java के अपवाद
अपवाद.फ़्रेम.पता INT64 बाइनरी इमेज में दिया गया पता, जिसमें कोड है. Java के लिए, यह पता सेट नहीं किया गया फ़्रेम
अपवाद.फ़्रेम्स.लाइब्रेरी स्ट्रिंग उस लाइब्रेरी का डिसप्ले नेम जिसमें फ़्रेम शामिल है
अपवाद.फ़्रेम्स.मालिक स्ट्रिंग डेवलपर, वेंडर, RUNTIME, प्लैटफ़ॉर्म या सिस्टम
अपवाद.फ़्रेम्स.ब्लेड बूलियन क्या Crashlytics के विश्लेषण से यह पता चला कि यह फ़्रेम क्रैश या गड़बड़ी की जानकारी
गड़बड़ी दोहराया गया रिकॉर्ड सिर्फ़ Apple के ऐप्लिकेशन: साधारण गड़बड़ियां
error.queue_name स्ट्रिंग वह सूची जिस पर थ्रेड चल रहा था
error.code INT64 ऐप्लिकेशन के कस्टम लॉग किए गए NSError से जुड़ा गड़बड़ी का कोड
error.title स्ट्रिंग थ्रेड का टाइटल
गड़बड़ी वाला सबटाइटल स्ट्रिंग थ्रेड का सबटाइटल
error.blable बूलियन क्या Crashlytics के विश्लेषण से यह पता चला कि यह फ़्रेम गड़बड़ी का
गड़बड़ी.फ़्रेम दोहराया गया रिकॉर्ड स्टैकट्रेस के फ़्रेम
error.frames.line INT64 फ़्रेम की फ़ाइल की लाइन नंबर
error.frames.file स्ट्रिंग फ़्रेम फ़ाइल का नाम
error.frames.simbol स्ट्रिंग हाइड्रेटेड सिंबल या रॉ सिंबल
error.frames.offset INT64 उस बाइनरी इमेज में बाइट ऑफ़सेट जो कोड है
error.frames.address INT64 बाइनरी इमेज में पता, जिसमें कोड शामिल है
error.frames.library स्ट्रिंग उस लाइब्रेरी का डिसप्ले नेम जिसमें फ़्रेम शामिल है
error.frames.owner स्ट्रिंग डेवलपर, वेंडर, RUNTIME, प्लैटफ़ॉर्म या सिस्टम
error.frames.bla वाक्यांश बूलियन क्या Crashlytics के विश्लेषण से यह पता चला कि यह फ़्रेम गड़बड़ी का
थ्रेड दोहराया गया रिकॉर्ड इवेंट के दौरान मौजूद थ्रेड
थ्रेड.क्रैश बूलियन थ्रेड क्रैश हुआ है या नहीं
Threads.Thread का नाम स्ट्रिंग थ्रेड का नाम
Thread.queue_name स्ट्रिंग सिर्फ़ Apple के ऐप्लिकेशन: वह सूची जिस पर थ्रेड चल रहा था
Thread.signal_name स्ट्रिंग उस सिग्नल का नाम जिसकी वजह से ऐप्लिकेशन क्रैश हुआ. यह नाम, सिर्फ़ क्रैश होने पर मौजूद होता है नेटिव थ्रेड
थ्रेड.signal_code स्ट्रिंग ऐप्लिकेशन के क्रैश होने की वजह बताने वाले सिग्नल का कोड; केवल क्रैश होने पर मौजूद नेटिव थ्रेड
थ्रेड.crash_address INT64 उस सिग्नल का पता जिसकी वजह से ऐप्लिकेशन क्रैश हुआ; सिर्फ़ मौजूद क्रैश हो चुके नेटिव थ्रेड पर
थ्रेड.कोड INT64 सिर्फ़ Apple के ऐप्लिकेशन के लिए: ऐप्लिकेशन के कस्टम लॉग किए गए NSError का गड़बड़ी कोड
थ्रेड.टाइटल स्ट्रिंग थ्रेड का टाइटल
थ्रेड.सबटाइटल स्ट्रिंग थ्रेड का सबटाइटल
थ्रेड पर गलत दावा किया गया बूलियन क्या Crashlytics के विश्लेषण से यह पता चला कि यह फ़्रेम क्रैश या गड़बड़ी की जानकारी
थ्रेड.फ़्रेम दोहराया गया रिकॉर्ड थ्रेड के फ़्रेम
थ्रेड.फ़्रेम्स.लाइन INT64 फ़्रेम की फ़ाइल की लाइन नंबर
थ्रेड.फ़्रेम्स.फ़ाइल स्ट्रिंग फ़्रेम फ़ाइल का नाम
थ्रेड.फ़्रेम्स.सिमबॉल स्ट्रिंग हाइड्रेटेड सिंबल या रॉ सिंबल
थ्रेड.फ़्रेम्स.ऑफ़सेट INT64 उस बाइनरी इमेज में बाइट ऑफ़सेट जो कोड है
थ्रेड.फ़्रेम्स.पता INT64 बाइनरी इमेज में पता, जिसमें कोड शामिल है
थ्रेड.फ़्रेम्स.लाइब्रेरी स्ट्रिंग उस लाइब्रेरी का डिसप्ले नेम जिसमें फ़्रेम शामिल है
थ्रेड.फ़्रेम्स.मालिक स्ट्रिंग डेवलपर, वेंडर, 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 मेगाहर्ट्ज़ में प्रोसेसर की फ़्रीक्वेंसी
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 स्ट्रिंग पिक्सल में स्क्रीन का साइज़, चौड़ाई x ऊंचाई के फ़ॉर्मैट में
unity_metadata.screen_ भोजन_dpi स्ट्रिंग फ़्लोटिंग पॉइंट नंबर के तौर पर स्क्रीन का डीपीआई
unity_metadata.screen_refresh_rate_hz INT64 स्क्रीन की रीफ़्रेश दर हर्ट्ज़ में

Data Studio की मदद से, एक्सपोर्ट किए गए Crashlytics डेटा को विज़ुअलाइज़ करना

Google Data Studio आपकी BigQuery में मौजूद Crashlytics के डेटासेट को आसानी से पढ़ी जा सकने वाली और आसान रिपोर्ट में बदला जाता है. और पूरी तरह से कस्टमाइज़ करने योग्य होता है.

Data Studio का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Data Studio की क्विकस्टार्ट गाइड पढ़ें, Data Studio में आपका स्वागत है.

Crashlytics रिपोर्ट टेंप्लेट का इस्तेमाल करने का तरीका

Data Studio में Crashlytics के लिए एक सैंपल रिपोर्ट मौजूद है. इस रिपोर्ट में, पूरी जानकारी के साथ यह एक्सपोर्ट किए गए Crashlytics BigQuery स्कीमा से डाइमेंशन और मेट्रिक का सेट होता है. अगर आपने आपने Crashlytics BigQuery स्ट्रीमिंग एक्सपोर्ट चालू किया है, तो डेटा स्टूडियो टेंप्लेट के रीयल टाइम रुझान पेज पर मौजूद डेटा.इनका इस्तेमाल किया जा सकता है के आधार पर तेज़ी से नई रिपोर्ट और विज़ुअलाइज़ेशन बनाने के लिए, टेंप्लेट के तौर पर सैंपल ऐप्लिकेशन के क्रैश होने से जुड़ा रॉ डेटा:

  1. Crashlytics Data Studio का डैशबोर्ड टेंप्लेट खोलें.
  2. सबसे ऊपर दाएं कोने में, टेंप्लेट का इस्तेमाल करें पर क्लिक करें.
  3. नया डेटा सोर्स ड्रॉपडाउन में, नया डेटा सोर्स बनाएं चुनें.
  4. BigQuery कार्ड पर चुनें पर क्लिक करें.
  5. एक्सपोर्ट किए गए Crashlytics डेटा वाली टेबल को चुनने के लिए मेरे प्रोजेक्ट > [your-project-name] > firebase_crashlytics > [your-table-name]. आपकी बैच टेबल हमेशा उपलब्ध रहती है; अगर Crashlytics BigQuery स्ट्रीमिंग एक्सपोर्ट चालू है. अपने के बजाय रीयल टाइम टेबल का इस्तेमाल करें.
  6. कॉन्फ़िगरेशन में जाकर, Crashlytics टेंप्लेट लेवल को डिफ़ॉल्ट पर सेट करें.
  7. नया डेटा सोर्स बनाने के लिए, कनेक्ट करें पर क्लिक करें.
  8. Crashlytics टेंप्लेट पर वापस जाने के लिए, रिपोर्ट में जोड़ें पर क्लिक करें.
  9. आखिर में, Crashlytics की कॉपी बनाने के लिए रिपोर्ट बनाएं पर क्लिक करें Data Studio डैशबोर्ड टेंप्लेट.