Daha ayrıntılı analiz için Firebase Crashlytics verilerinizi BigQuery'e aktarabilirsiniz. BigQuery, verileri BigQuery SQL kullanarak analiz etmenize, başka bir bulut sağlayıcıya aktarmanıza ve Google Data Studio ile görselleştirme ve özel kontrol panelleri için kullanmanıza olanak tanır.
BigQuery hedefine aktarmayı etkinleştir
- Firebase konsolunda Entegrasyonlar sayfasına gidin.
- BigQuery kartında Bağlantı'yı tıklayın.
- BigQuery'e dışa aktarma özelliğini etkinleştirmek için ekrandaki talimatları uygulayın.
BigQuery alanına dışa aktarma özelliğini etkinleştirdiğinizde şunlar olur:
Varsayılan olarak, projenizdeki tüm uygulamalar BigQuery'ye bağlanır ve daha sonra projeye eklediğiniz tüm uygulamalar otomatik olarak BigQuery'ye bağlanır. Hangi uygulamaların veri göndereceğini yönetebilirsiniz.
Firebase, Firebase projenizden ve Firebase'den veri senkronizasyonunu BigQuery
Firebase, BigQuery'ye mevcut verilerinizin bir kopyasını dışa aktarır. Bu, her bağlantılı uygulama için bir toplu tablo içerir günlük senkronizasyondaki verileri içerir.
Şu durumda: BigQuery hizmetine Crashlytics akışı aktarmayı etkinleştir, Tüm bağlantılı uygulamalarda, sürekli güncellenen bir gerçek zamanlı tablo da bulunur. dışı verilerdir.
BigQuery'e dışa aktarma özelliğini devre dışı bırakmak için Firebase konsolunda projenizin bağlantısını kaldırın.
BigQuery hizmetine hangi veriler aktarılır?
Firebase Crashlytics verileri, adlı BigQuery veri kümesine aktarılır
firebase_crashlytics
. Varsayılan olarak, bağımsız tablolar
projenizdeki her uygulama için Crashlytics veri kümesini kullanır. Firebase, Google Etiket Yöneticisi'nde
uygulama tanımlayıcısına dayalı tablolar (noktalar alt çizgiye dönüştürülür) ve
platform adının sonuna eklenir.
Örneğin, paket adı com.google.test
olan bir Android uygulamasının verileri.
araması com_google_test_ANDROID
adlı bir tabloda bulunur. Bu toplu tablo güncellendi
günde bir kez. Crashlytics akışı aktarmayı etkinleştirirseniz
BigQuery, ardından Crashlytics verileri de gerçek zamanlı olarak aktarılır
com_google_test_ANDROID_REALTIME
adlı bir tabloya eklenir.
Tablodaki her satır, kilitlenmeler, kritik olmayan hatalar ve ANR'ler dahil olmak üzere uygulamada gerçekleşen bir etkinliği temsil eder.
BigQuery için Crashlytics akışı dışa aktarma
BigQuery Akış ile Crashlytics verilerinizi anlık olarak yayınlayabilirsiniz. Canlı veriler gerektiren her amaç için (ör. canlı bir kontrol panelinde bilgi sunma, kullanıma sunma işlemini canlı izleme veya uyarıları ve özel iş akışlarını tetikleyen uygulama sorunlarını izleme) kullanabilirsiniz.
BigQuery için Crashlytics akışı dışa aktarmayı etkinleştirdiğinizde toplu tabloya ek olarak gerçek zamanlı bir tablonuz da olur. Tablolar arasındaki farklar aşağıda belirtilmiştir:
Toplu tablo | Anlık tablo |
---|---|
|
|
Toplu tablo, uzun vadeli analiz ve zaman içindeki eğilimleri tanımlamak için idealdir çünkü etkinlikleri yazmadan önce kalıcı olarak saklarız ve bunlar tekrar doldurulabilir 30 güne kadar masaya yatırılır. Gerçek zamanlı tablonuza veri yazdığımızda, bunu hemen BigQuery adresine yazabileceğinden canlı yayın için ideal kontrol panelleri ve özel uyarılardır. Bu iki tablo, her ikisinin avantajlarından yararlanmak için birleştirme sorgusuyla birleştirilebilir.
Varsayılan olarak, gerçek zamanlı tablonun bölüm geçerlilik süresi 30 gündür. Alıcı: nasıl değiştireceğinizi öğrenmek için bkz. Bölüm geçerlilik süresini ayarlama daha fazla bilgi edinip başvurabilirsiniz.BigQuery
Crashlytics akışlarını BigQuery'a dışa aktarmayı etkinleştirme
- Firebase konsolunda şuna gidin: Entegrasyonlar sayfası.
- BigQuery kartında Yönet'i tıklayın.
- Akışları dahil et onay kutusunu işaretleyin.
Bu işlem, bağlı uygulamalarınızın tamamında akış özelliğini etkinleştirir.
Dışa aktarılan verilerle ne yapabilirsiniz?
BigQuery'e yapılan dışa aktarma işlemleri, cihaz türü, işletim sistemi, istisnalar (Android uygulamaları) veya hatalar (Apple uygulamaları) ve Crashlytics günlükleri gibi ham kilitlenme verilerinin yanı sıra diğer verileri içerir.
Bu sayfanın ilerleyen bölümlerinde, hangi Crashlytics verilerinin dışa aktarıldığını ve tablo şema bilgilerini inceleyin.
Data Studio şablonu kullanma
Data Studio şablonunuzda gerçek zamanlı verileri etkinleştirmek için Dışa aktarılan Crashlytics verilerini Data Studio ile görselleştirme başlıklı makaledeki talimatları uygulayın.
Görünüm oluşturma
BigQuery kullanıcı arayüzünü kullanarak sorguları görünümlere dönüştürebilirsiniz. Ayrıntılı talimatlar için BigQuery dokümanlarında Görünüm oluşturma bölümüne bakın.
Sorguları çalıştırma
Aşağıdaki örnekler, Kilitlenme etkinliği verilerini aşağıdakilerle birleştiren raporlar oluşturmak için Crashlytics verileri anlaşılır özetler sağlar. Bu tür raporlar kullanılamadığı için Firebase konsolunun Crashlytics kontrol panelinde ve anlamakta kullanabileceğiniz araçlardır.
1. Örnek: Günlük kilitlenme sayısı
Mümkün olduğunca fazla hatayı düzeltmek için çalıştıktan sonra ekibinizin yeni fotoğraf paylaşım uygulamanızı kullanıma sunmaya hazır olduğunu düşünüyorsunuz. Bunu yapmadan önce, hata giderme çalışmanızın uygulamayı zaman içinde daha kararlı hale getirdiğinden emin olmak için son bir aydaki günlük kilitlenme sayısını kontrol etmek istiyorsunuz.
Android uygulaması için örnek bir sorguyu burada bulabilirsiniz. iOS uygulaması için paket kimliğini kullanın
ve IOS
(paket adı ve ANDROID
yerine).
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. örnek: En yaygın kilitlenme noktalarını bulma
Üretim planlarına uygun şekilde öncelik vermek için uygulamanızda en yaygın 10 kilitlenmeyi bulmak istersiniz. Alakalı veri noktalarını sağlayan bir sorgu oluşturursunuz.
Android uygulaması için örnek bir sorguyu burada bulabilirsiniz. iOS uygulaması için paket kimliğini kullanın
ve IOS
(paket adı ve ANDROID
yerine).
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. örnek: Kilitlenen ilk 10 cihaz
Sonbahar, yeni telefon sezonudur. Şirketiniz bunun yeni bir özellik olduğunun da farkında. (özellikle Android'de) sorunlu sezonlarda Bir sonraki aşamaya geçmek için uyumlulukla ilgili endişeler olursa, bu sorunu çözmek için Son bir hafta içinde (168 saat) en fazla kilitlenme yaşayan 10 cihaz.
Android uygulaması için örnek bir sorguyu burada bulabilirsiniz. iOS uygulaması için paket kimliğini kullanın
ve IOS
(paket adı ve ANDROID
yerine).
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. Örnek: Özel anahtara göre filtreleme
Oyun deneyiminizin hangi seviyelerde olduğunu öğrenmek isteyen bir oyun geliştirici olduğunuzu en fazla kilitlenme oldu.
Bu istatistiği takip edebilmek için
özel Crashlytics anahtarı
current_level
olarak adlandırılır ve kullanıcı yeni bir seviyeye her ulaştığında güncelleyin.
Swift
Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");
Objective-C
CrashlyticsKit setIntValue:3 forKey:@"current_level";
Java
Crashlytics.setInt("current_level", 3);
BigQuery ürününe aktardığınız bu anahtarla,
her kilitlenmeyle ilişkili current_level
değerlerinin dağılımını raporla
unutmayın.
Android uygulaması için örnek bir sorguyu burada bulabilirsiniz. iOS uygulaması için paket kimliğini kullanın
ve IOS
(paket adı ve ANDROID
yerine).
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. Örnek: User-ID ayıklama
Erken erişim kapsamında bir Android uygulamanız var. Kullanıcılarınızın çoğu uygulamayı seviyor ancak üç kullanıcı alışılmadık sayıda kilitlenmeyle karşılaşmış. Sorunun temel nedenini bulmak için kullanıcı kimliklerini kullanarak bu kullanıcıların tüm kilitlenme etkinliklerini çeken bir sorgu yazarsınız.
Android uygulaması için örnek bir sorguyu burada bulabilirsiniz. iOS uygulaması için paket kimliğini kullanın
ve IOS
(paket adı ve ANDROID
yerine).
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. Örnek: Belirli bir kilitlenme sorunuyla karşılaşan tüm kullanıcıları bulma
Ekibiniz, kritik bir hatayı yanlışlıkla bir beta test kullanıcısı grubuna yayınladı. Ekibiniz, Arkadaş Bitkiler projesinin "En yaygın kilitlenmeleri bul" örnek yukarıdaki bilgileri kullanabilirsiniz. Ekibiniz şimdi bu kilitlenmeden etkilenen uygulama kullanıcılarının listesini çıkarmak için bir sorgu çalıştırmak istiyor.
Android uygulaması için örnek bir sorgu aşağıda verilmiştir. iOS uygulaması için paket kimliğini ve IOS
'ü (paket adı ve ANDROID
yerine) kullanın.
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. örnek: Kilitlenme sorunundan etkilenen kullanıcıların sayısı (ülkeye göre ayrılmış)
Ekibiniz, yeni bir sürümün kullanıma sunulması sırasında kritik bir hata tespit etti. Siz , "En yaygın kilitlenmeleri bul" örnek yukarıdaki bilgileri kullanabilirsiniz. Ekibimiz şimdi bu kilitlenmenin dünyanın farklı ülkelerindeki kullanıcılara yayılıp yayılmadığını öğrenmek istiyor.
Bu sorguyu yazmak için ekibinizin aşağıdakileri yapması gerekir:
Google Analytics verilerinin BigQuery hedefine aktarılmasını etkinleştir. Proje verilerini BigQuery'ye aktarma başlıklı makaleyi inceleyin.
Uygulamanızı hem Google Analytics SDK'sına hem de kullanıcı kimliği iletecek şekilde güncelleyin ve Crashlytics SDK'sı.
Swift
Crashlytics.sharedInstance().setUserIdentifier("123456789"); Analytics.setUserID("123456789");
Objective-C
CrashlyticsKit setUserIdentifier:@"123456789"; FIRAnalytics setUserID:@"12345678 9";
Java
Crashlytics.setUserIdentifier("123456789"); mFirebaseAnalytics.setUserId("123456789");
Google Analytics veri kümesindeki etkinlikleri Crashlytics veri kümesindeki kilitlenmelerle birleştirmek için kullanıcı kimliği alanını kullanan bir sorgu yazın.
Android uygulaması için örnek bir sorguyu burada bulabilirsiniz. Bir iOS uygulaması için paket kimliği ve
IOS
(paket adı veANDROID
yerine).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. Örnek: Bugüne kadarki en önemli 5 sorun
Android uygulaması için örnek bir sorguyu burada bulabilirsiniz. iOS uygulaması için paket kimliğini kullanın
ve IOS
(paket adı ve ANDROID
yerine).
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. Örnek: Bugün de dahil olmak üzere DATE tarihinden beri en sık karşılaşılan 5 sorun
Ayrıca, güvenilir toplu verilere anlık bilgiler eklemek için toplu ve anlık tabloları bir birleştirme sorgusuyla birleştirebilirsiniz. event_id
birincil anahtar olduğundan, iki tablodaki ortak etkinlikleri tekilleştirmek için DISTINCT event_id
'ı kullanabilirsiniz.
Android uygulaması için örnek bir sorguyu burada bulabilirsiniz. iOS uygulaması için paket kimliğini kullanın
ve IOS
(paket adı ve ANDROID
yerine).
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 öğesindeki Crashlytics şemasını anlama
Crashlytics verilerini BigQuery'a aktarmayı ayarlarken Firebase, bağlantıdan iki gün öncesine kadarki etkinlikler de dahil olmak üzere son etkinlikleri (kilitlenmeler, kritik olmayan hatalar ve ANR'ler) dışa aktarır. Ayrıca, 30 güne kadar doldurma seçeneği de sunulur.
Bu aşamadan sonra siz dışa aktarma işlemini devre dışı bırakıncaya kadar Firebase, Günlük Crashlytics etkinlik var. Verilerin alınması birkaç dakika sürebilir Her dışa aktarma işleminden sonra BigQuery içinde kullanılabilir olacak.
Veri kümeleri
Crashlytics, Crashlytics için BigQuery konumunda yeni bir veri kümesi oluşturur dışı verilerdir. Bu veri kümesi, birden fazla uygulaması olsa bile projenizin tamamını kapsar.
Tablolar
Crashlytics, projenizdeki her uygulama için veri kümesinde bir tablo oluşturur. (bu uygulama için verileri dışa aktarmayı devre dışı bırakmadıysanız). Firebase, Google Etiket Yöneticisi'nde uygulama tanımlayıcısına dayalı tablolar (noktalar alt çizgiye dönüştürülür) ve platform adının sonuna eklenir.
Örneğin, paket adı com.google.test
olan bir Android uygulamasının verileri.
com_google_test_ANDROID
adlı bir tabloda ve gerçek zamanlı verilerde olur
(etkinse) değeri, com_google_test_ANDROID_REALTIME
adlı bir tabloda olur.
Tablolar, uygulamanızda tanımladığınız özel Crashlytics anahtarlarının yanı sıra standart bir Crashlytics veri grubu içerir.
Satırlar
Tablodaki her satır, uygulamanın karşılaştığı bir hatayı temsil eder.
Sütunlar
Tablodaki sütunlar kilitlenmeler, onarılabilir hatalar ve ANR'ler için aynıdır. Eğer BigQuery için Crashlytics akışı dışa aktarma etkinleştirilir, ardından gerçek zamanlı tablosu toplu tabloyla aynı sütunlara sahip olur. Lütfen satırlarda, yığın izleme içermeyen etkinlikleri temsil eden sütunlar bulunur.
Dışa aktarımdaki sütunlar bu tabloda listelenmektedir:
Alan adı | Veri türü | Açıklama |
---|---|---|
platform |
DİZE | Firebase projesine kayıtlı uygulama platformu (geçerli değerler: IOS veya ANDROID )
|
bundle_identifier |
DİZE | Uygulamanın Firebase projesinde kayıtlı olan benzersiz tanımlayıcısı
(örneğin, com.google.gmail Apple platform uygulamaları için uygulamanın paket kimliğidir. Bu, Android uygulamaları için uygulamanın paket adıdır. |
event_id |
DİZE | Etkinliğin benzersiz kimliği |
is_fatal |
BOOLE | Uygulamanın kilitlenip kilitlenmediği |
error_type |
DİZE | Etkinliğin hata türü (ör. FATAL , NON_FATAL , ANR vb.) |
issue_id |
DİZE | Etkinlikle ilişkili sorun |
variant_id |
DİZE | Bu etkinlikle ilişkili sorun varyantı Tüm etkinliklerin ilişkili bir sorun varyantına sahip olmadığını unutmayın. |
event_timestamp |
ZAMAN DAMGASI | Etkinliğin gerçekleştiği zaman |
device |
KAYIT | Etkinliğin gerçekleştiği cihaz |
device.manufacturer |
DİZE | Cihaz üreticisi |
device.model |
DİZE | Cihaz modeli |
device.architecture |
DİZE | Örneğin X86_32 , X86_64 , ARMV7 ,
ARM64 , ARMV7S veya ARMV7K |
memory |
KAYIT | Cihazın bellek durumu |
memory.used |
İT64 | Kullanılan bellek baytı |
memory.free |
İT64 | Kalan bellek miktarı (bayt) |
storage |
KAYIT | Cihazın kalıcı depolama alanı |
storage.used |
INT64 | Kullanılan depolama alanı baytı |
storage.free |
INT64 | Kalan depolama alanı (bayt) |
operating_system |
KAYIT | Cihazdaki işletim sisteminin ayrıntıları |
operating_system.display_version |
DİZE | Cihazdaki işletim sistemi sürümü |
operating_system.name |
DİZE | Cihazdaki işletim sisteminin adı |
operating_system.modification_state |
DİZE | Cihazın değiştirilip değiştirilmediği
(örneğin, jailbreak'li bir uygulama MODIFIED , rootlanmış bir uygulama ise
UNMODIFIED ) |
operating_system.type |
DİZE | (Yalnızca Apple uygulamaları) Cihazdaki işletim sisteminin türü (ör. IOS , MACOS vb.) |
operating_system.device_type |
DİZE | Cihazın türü (örneğin, MOBILE , TABLET ,
TV vb.); "cihaz kategorisi" olarak da bilinir. |
application |
KAYIT | Etkinliği oluşturan uygulama |
application.build_version |
DİZE | Uygulamanın derleme sürümü |
application.display_version |
DİZE | |
user |
KAYIT | (İsteğe bağlı) Uygulamanın kullanıcısı hakkında toplanan bilgiler |
user.name |
DİZE | (İsteğe bağlı) Kullanıcının adı |
user.email |
DİZE | (İsteğe bağlı) Kullanıcının e-posta adresi |
user.id |
DİZE | (İsteğe bağlı) Kullanıcıyla ilişkilendirilmiş uygulamaya özel kimlik |
custom_keys |
TEKRARLANAN KAYIT | Geliştirici tarafından tanımlanmış anahtar/değer çiftleri |
custom_keys.key |
DİZE | Geliştirici tarafından tanımlanmış anahtar |
custom_keys.value |
DİZE | Geliştirici tarafından tanımlanan değer |
installation_uuid |
DİZE | Benzersiz bir uygulama ve cihaz yüklemesini tanımlayan kimlik |
crashlytics_sdk_versions |
DİZE | Etkinliği oluşturan Crashlytics SDK sürümü |
app_orientation |
DİZE | Örneğin PORTRAIT , LANDSCAPE ,
FACE_UP , FACE_DOWN vb. |
device_orientation |
DİZE | Örneğin PORTRAIT , LANDSCAPE ,
FACE_UP , FACE_DOWN vb. |
process_state |
DİZE | BACKGROUND veya FOREGROUND |
logs |
TEKRAR KAYIT | Etkinleştirildiyse Crashlytics günlükleyici tarafından oluşturulan zaman damgalı günlük mesajları |
logs.timestamp |
ZAMAN DAMGASI | Günlüğün oluşturulduğu tarih |
logs.message |
DİZE | Günlüğe kaydedilen mesaj |
breadcrumbs |
TEKRAR KAYIT | Etkinleştirildiyse zaman damgalı Google Analytics içerik haritaları |
breadcrumbs.timestamp |
ZAMAN DAMGASI | Gezinme menüsüyle ilişkili zaman damgası |
breadcrumbs.name |
DİZE | İçerik haritasıyla ilişkilendirilen ad |
breadcrumbs.params |
TEKRAR KAYIT | Sayfa yolu ile ilişkili parametreler |
breadcrumbs.params.key |
DİZE | Gezinme menüsüyle ilişkili bir parametre anahtarı |
breadcrumbs.params.value |
DİZE | Gezinme menüsüyle ilişkili bir parametre değeri |
blame_frame |
KAYIT | Kilitlenmenin veya hatanın temel nedeni olarak belirlenen çerçeve |
blame_frame.line |
İT64 | Çerçevenin dosyasının satır numarası |
blame_frame.file |
DİZE | Çerçeve dosyasının adı |
blame_frame.symbol |
DİZE | Sulandırılmış simgesi veya sulandırılamayansa ham simgesi |
blame_frame.offset |
INT64 | Kodu içeren ikili resimdeki bayt ofseti Java istisnaları için ayarlanmamış |
blame_frame.address |
INT64 | İkili resimdeki, kodu içeren adres Java çerçeveleri için ayarı kaldır |
blame_frame.library |
DİZE | Çerçeveyi içeren kitaplığın görünen adı |
blame_frame.owner |
DİZE | Örneğin, DEVELOPER , VENDOR ,
RUNTIME , PLATFORM veya SYSTEM |
blame_frame.blamed |
BOOLE | Crashlytics'ün, kilitlenmenin veya hatanın nedeninin bu çerçeve olduğunu belirlemesi |
exceptions |
TEKRARLANAN KAYIT | (Yalnızca Android) Bu etkinlik sırasında gerçekleşen istisnalar. İç içe yerleştirilmiş ters kronolojik sıraya göre sunulduğundan da son kayıt, atılan ilk istisnadır |
exceptions.type |
DİZE | İstisna türü
(örneğin, java.lang.IllegalStateException) |
exceptions.exception_message |
DİZE | İstisnayla ilişkili bir mesaj |
exceptions.nested |
BOOLE | Son atılan istisna (ilk kayıt) hariç tümü için doğru |
exceptions.title |
DİZE | İleti dizisinin başlığı |
exceptions.subtitle |
DİZE | İleti dizisinin alt başlığı |
exceptions.blamed |
BOOLE | Crashlytics, istisnanın hata veya çökme |
exceptions.frames |
TEKRARLANAN KAYIT | İstisnayla ilişkili kareler |
exceptions.frames.line |
INT64 | Çerçevenin dosyasının satır numarası |
exceptions.frames.file |
DİZE | Çerçeve dosyasının adı |
exceptions.frames.symbol |
DİZE | Sulandırılmış simgesi veya sulandırılamayansa ham simgesi |
exceptions.frames.offset |
INT64 | Kodu içeren ikili resimdeki bayt ofseti Java istisnaları için ayarlanmamış |
exceptions.frames.address |
INT64 | İkili resimdeki, kodu içeren adres Java çerçeveleri için ayarı kaldır |
exceptions.frames.library |
DİZE | Çerçeveyi içeren kitaplığın görünen adı |
exceptions.frames.owner |
DİZE | Örneğin, DEVELOPER , VENDOR ,
RUNTIME , PLATFORM veya SYSTEM |
exceptions.frames.blamed |
BOOLE | Crashlytics'ün, kilitlenmenin veya hatanın nedeninin bu çerçeve olduğunu belirlemesi |
error |
TEKRAR KAYIT | (Yalnızca Apple uygulamaları) önemli olmayan hatalar |
error.queue_name |
DİZE | Mesaj dizisinin çalıştığı sıra |
error.code |
İT64 | Uygulamanın günlüğe kaydedilen NSError ile ilişkili hata kodu |
error.title |
DİZE | İleti dizisinin başlığı |
error.subtitle |
DİZE | İleti dizisinin alt başlığı |
error.blamed |
BOOLE | Crashlytics adlı kullanıcının hatası |
error.frames |
TEKRAR KAYIT | Yığın izlemenin çerçeveleri |
error.frames.line |
İT64 | Çerçevenin dosyasının satır numarası |
error.frames.file |
DİZE | Çerçeve dosyasının adı |
error.frames.symbol |
DİZE | Sulandırılmış simgesi veya sulandırılamayansa ham simgesi |
error.frames.offset |
INT64 | Kodu içeren ikili resimdeki bayt ofseti |
error.frames.address |
INT64 | İkili resimde kodu içeren adres |
error.frames.library |
DİZE | Çerçeveyi içeren kitaplığın görünen adı |
error.frames.owner |
DİZE | Örneğin, DEVELOPER , VENDOR ,
RUNTIME , PLATFORM veya SYSTEM |
error.frames.blamed |
BOOLE | Crashlytics adlı kullanıcının hatası |
threads |
TEKRAR KAYIT | Etkinlik sırasında mevcut olan ileti dizileri |
threads.crashed |
BOOLE | Mesaj dizisinin kilitlenip kilitlenmediği |
threads.thread_name |
DİZE | İleti dizisinin adı |
threads.queue_name |
DİZE | (Yalnızca Apple uygulamaları) İleti dizisinin çalıştırıldığı sıra |
threads.signal_name |
DİZE | Uygulamanın kilitlenmesine neden olan sinyalin adı. Yalnızca kilitlenen yerel mesaj dizilerinde bulunur. |
threads.signal_code |
DİZE | Uygulamanın kilitlenmesine neden olan sinyalin kodu. yalnızca kilitlenen cihazlarda mevcut yerel ileti dizileri |
threads.crash_address |
İT64 | Uygulamanın kilitlenmesine neden olan sinyalin adresi. Yalnızca kilitlenen yerel mesaj dizilerinde bulunur. |
threads.code |
İT64 | (Yalnızca Apple uygulamaları) Uygulamanın özel olarak günlüğe kaydedildiği hata kodu NS Hatası |
threads.title |
DİZE | İleti dizisinin başlığı |
threads.subtitle |
DİZE | İleti dizisinin alt başlığı |
threads.blamed |
BOOLE | Crashlytics'ün, kilitlenmenin veya hatanın nedeninin bu çerçeve olduğunu belirlemesi |
threads.frames |
TEKRAR KAYIT | İleti dizisinin çerçeveleri |
threads.frames.line |
İT64 | Çerçevenin dosyasının satır numarası |
threads.frames.file |
DİZE | Çerçeve dosyasının adı |
threads.frames.symbol |
DİZE | Sulandırılmış simgesi veya sulandırılamayansa ham simgesi |
threads.frames.offset |
INT64 | Kodu içeren ikili resimdeki bayt ofseti |
threads.frames.address |
INT64 | İkili resimde kodu içeren adres |
threads.frames.library |
DİZE | Çerçeveyi içeren kitaplığın görünen adı |
threads.frames.owner |
DİZE | Örneğin, DEVELOPER , VENDOR ,
RUNTIME , PLATFORM veya SYSTEM |
threads.frames.blamed |
BOOLE | Crashlytics adlı kullanıcının hatası |
unity_metadata.unity_version |
DİZE | Bu cihazda çalışan Unity sürümü |
unity_metadata.debug_build |
BOOLE | Bu bir hata ayıklama derlemesiyse |
unity_metadata.processor_type |
DİZE | İşlemcinin türü |
unity_metadata.processor_count |
İT64 | İşlemci (çekirdek) sayısı |
unity_metadata.processor_frequency_mhz |
INT64 | İşlemcilerin MHz cinsinden frekansı |
unity_metadata.system_memory_size_mb |
INT64 | Sistem belleğinin Mb cinsinden boyutu |
unity_metadata.graphics_memory_size_mb |
INT64 | MB cinsinden ekran kartı belleği |
unity_metadata.graphics_device_id |
İT64 | Grafik cihazının tanımlayıcısı |
unity_metadata.graphics_device_vendor_id |
INT64 | Grafik işlemcinin tedarikçisinin tanımlayıcısıdır. |
unity_metadata.graphics_device_name |
DİZE | Grafik cihazının adı |
unity_metadata.graphics_device_vendor |
DİZE | Grafik cihazının tedarikçisi |
unity_metadata.graphics_device_version |
DİZE | Grafik cihazının sürümü |
unity_metadata.graphics_device_type |
DİZE | Grafik cihazının türü |
unity_metadata.graphics_shader_level |
İT64 | Grafiklerin gölgelendirici seviyesi |
unity_metadata.graphics_render_target_count |
INT64 | Grafik oluşturma hedeflerinin sayısı |
unity_metadata.graphics_copy_texture_support |
DİZE | Grafik dokusunu Unity API |
unity_metadata.graphics_max_texture_size |
İT64 | Doku oluşturmaya ayrılmış maksimum boyut |
unity_metadata.screen_size_px |
DİZE | Ekranın piksel cinsinden boyutu (genişlik x yükseklik olarak biçimlendirilir) |
unity_metadata.screen_resolution_dpi |
DİZE | Ekranın kayan nokta sayısı olarak DPI değeri |
unity_metadata.screen_refresh_rate_hz |
INT64 | Ekranın yenileme hızı (Hz) |
Dışa aktarılan Crashlytics verilerini Data Studio ile görselleştirme
Google Data Studio, BigQuery'daki Crashlytics veri kümelerinizi okunması ve paylaşılması daha kolay, tamamen özelleştirilebilen raporlara dönüştürür.
Data Studio'yu kullanma hakkında daha fazla bilgi için Data Studio hızlı başlangıç kılavuzunu deneyin: Data Studio'ya hoş geldiniz.
Crashlytics rapor şablonu kullanın
Data Studio, Crashlytics için aşağıdakileri içeren bir örnek rapor sunar: dışa aktarılan Crashlytics verilerinden kapsamlı boyut ve metrik grubu BigQuery şeması. Crashlytics'ten BigQuery'e akış dışa aktarma özelliğini etkinleştirdiyseniz bu verileri Data Studio şablonunun Anlık trendler sayfasında görüntüleyebilirsiniz. Kendi uygulamanızın ham kilitlenme verilerine göre hızlıca yeni raporlar ve görselleştirmeler oluşturmak için örneği şablon olarak kullanabilirsiniz:
Sağ üst köşedeki Şablonu Kullan'ı tıklayın.
Yeni Veri Kaynağı açılır menüsünde Yeni Veri Kaynağı Oluştur'u seçin.
BigQuery kartında Seç'i tıklayın.
Projelerim > PROJECT_ID > firebase_crashlytics > TABLE_NAME'ı seçerek dışa aktarılan Crashlytics verilerini içeren bir tablo seçin.
Toplu tablonuz her zaman seçilebilir durumdadır. CrashlyticsBigQuery'a akış dışa aktarma etkinse bunun yerine gerçek zamanlı tablonuzu seçebilirsiniz.
Yapılandırma bölümünde Crashlytics Template level (Şablon düzeyi) değerini şu şekilde ayarlayın: Varsayılan.
Yeni veri kaynağı oluşturmak için Bağla'yı tıklayın.
Crashlytics şablonuna dönmek için Add to Report'u (Rapora Ekle) tıklayın.
Son olarak, Crashlytics kopyanızı oluşturmak için Rapor Oluştur'u tıklayın Data Studio Kontrol Paneli şablonu.