Daha fazla analiz için Crashlytics verilerinizi BigQuery'ye 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 dışa aktarmayı etkinleştir
- Firebase konsolunda Entegrasyonlar sayfasına gidin.
- BigQuery kartında Bağla'yı tıklayın.
- BigQuery'yi etkinleştirmek için ekrandaki talimatları uygulayın.
Projenizi BigQuery'ye bağladığınızda:
- Firebase, Firebase projenizden BigQuery'ye verilerinizin günlük olarak senkronize edilmesini sağlar.
- Varsayılan olarak, projenizdeki tüm uygulamalar BigQuery'ye, daha sonra projeye eklediğiniz tüm uygulamalar ise otomatik olarak BigQuery'ye bağlanır. Hangi uygulamaların veri göndereceğini yönetebilirsiniz.
- Firebase, mevcut verilerinizin bir kopyasını BigQuery'ye aktarır. Buna, her bağlantılı uygulama için günlük senkronizasyona ait verileri içeren bir toplu tablo dahildir.
- Crashlytics BigQuery akışını dışa aktarmayı etkinleştirirseniz tüm bağlı uygulamalarda, sürekli güncellenen verileri içeren gerçek zamanlı tablo bulunur.
BigQuery Export'u devre dışı bırakmak için Firebase konsolunda projenizin bağlantısını kaldırın.
BigQuery'ye hangi veriler aktarılır?
Firebase Crashlytics verileri, firebase_crashlytics
adlı bir BigQuery veri kümesine aktarılır. Varsayılan olarak, projenizdeki her uygulama için Crashlytics veri kümesinin içinde ayrı tablolar oluşturulur. Firebase, tablolar alt çizgiye dönüştürülen ve platform adının sonuna eklenmiş bir şekilde uygulamanın paket tanımlayıcısına göre adlandırır.
Örneğin, com.google.test
kimliğine sahip bir uygulamanın verileri, com_google_test_ANDROID
adlı bir tabloda yer alır. Bu toplu tablo günde bir kez güncellenir. Crashlytics BigQuery akışı dışa aktarmayı etkinleştirirseniz Firebase Crashlytics verileri gerçek zamanlı olarak com_google_test_ANDROID_REALTIME
üzerinde aktarılır.
Tablodaki her satır; kilitlenmeler, önemli olmayan hatalar ve ANR'ler dahil olmak üzere uygulamada gerçekleşen bir etkinliği temsil eder.
Crashlytics BigQuery akış dışa aktarmayı etkinleştir
BigQueryStreaming ile Crashlytics verilerinizi gerçek zamanlı olarak canlı oynatabilirsiniz. Bu özelliği canlı veri gerektiren tüm amaçlar için kullanabilirsiniz. Örneğin, canlı kontrol panelinde bilgi sunabilir, canlı sunumu canlı olarak izleyebilirsiniz. Ayrıca, uyarıları ve özel iş akışlarını tetikleyen uygulama sorunlarını da izleyebilirsiniz.
Crashlytics BigQuery akışını dışa aktarma özelliği, BigQuery korumalı alanında kullanılamaz.
Crashlytics BigQuery akışını dışa aktarmayı etkinleştirdiğinizde, toplu tabloya ek olarak gerçek zamanlı bir tablonuz da olur. Tablolar arasında dikkat etmeniz gereken farklılıklar şunlardır:
Toplu Tablo | Gerçek Zamanlı Tablo |
---|---|
|
|
Toplu tablo, etkinlikleri yazmadan önce kalıcı olarak depoladığımız ve 30 güne kadar tabloya doldurulabildiği için zaman içinde oluşan trendleri belirlemek ve uzun vadeli analiz yapmak için idealdir. Gerçek zamanlı tablonuza veri yazdığımızda bu verileri anında BigQuery'ye yazarız. Bu nedenle canlı kontrol panelleri ve özel uyarılar için idealdir. Bu iki tablo, her ikisinden de yararlanmak için birleştirme sorgusuyla birleştirilebilir. Aşağıda 9. Örnek sorguya bakın.
Varsayılan olarak, gerçek zamanlı tablolarda bölüm geçerlilik süresi 30 gündür. Bunu nasıl değiştireceğinizi öğrenmek için Bölüm geçerlilik süresini güncelleme bölümünü inceleyin.
Crashlytics BigQuery akışını etkinleştir
Akışı etkinleştirmek için BigQuery entegrasyonlar sayfasının Crashlytics bölümüne gidin ve Akışı dahil et onay kutusunu işaretleyin.
Data Studio Şablonu
Data Studio şablonunuzda gerçek zamanlı verileri etkinleştirmek için Dışa aktarılan Crashlytics verilerini Data Studio ile görselleştirme bölümündeki talimatları uygulayın.
Görüntüleme sayısı
BigQuery kullanıcı arayüzünü kullanarak aşağıdaki örnek sorguları görünümlere dönüştürebilirsiniz. Ayrıntılı talimatlar için Görünüm oluşturma bölümüne bakın.
Dışa aktarılan verilerle ne yapabilirsiniz?
BigQuery dışa aktarma işlemleri; cihaz türü, işletim sistemi, istisnalar (Android uygulamaları) veya hatalar (Apple uygulamaları) ve Crashlytics günlükleri dahil olmak üzere ham kilitlenme verilerinin yanı sıra başka veriler de içerir.
BigQuery'de Firebase Crashlytics verileriyle çalışma
Aşağıdaki örneklerde Crashlytics verileriniz üzerinde çalıştırabileceğiniz sorgular gösterilmektedir. Bu sorgular, Crashlytics kontrol panelinde bulunmayan raporlar oluşturur.
Crashlytics sorgusu örnekleri
Aşağıdaki örnekler, kilitlenme etkinliği verilerini daha kolay anlaşılır özetlerde toplayan raporların nasıl oluşturulacağını gösterir.
1. Örnek: Günlük kilitlenme sayısı
Baş geliştirici, mümkün olduğunca çok sayıda hatayı düzeltmek için çalıştıktan sonra ekibinin nihayet yeni fotoğraf paylaşımı uygulamasını kullanıma sunmaya hazır olduğunu düşünüyor. Bunu yapmadan önce hata ayıklamalarının uygulamayı zamanla daha kararlı hale getirdiğinden emin olmak için bir önceki aya ait günlük kilitlenme sayısını kontrol etmek istiyor:
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. Örnek: En yaygın kilitlenmeleri bulma
Üretim planlarını doğru şekilde önceliklendirmek için proje yöneticisi, ürünlerinde en yaygın 10 kilitlenmeyi nasıl tespit edeceğini düşünür. İlgili veri noktalarını sağlayan bir sorgu üretirler:
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. Örnek: Kilitlenen ilk 10 cihaz
Sonbahar yeni telefon sezonudur! Bir geliştirici bunun aynı zamanda cihaza özel yeni sorunlar sezonu anlamına geldiğini biliyor. Uyumlulukla ilgili endişelerin önüne geçmek için geçen hafta en çok kilitlenmenin görüldüğü 10 cihazı tanımlayan bir sorgu oluşturdular:
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. Örnek: Özel anahtara göre filtreleme
Bir oyun geliştirici, en çok kilitlenmenin yaşandığı seviyeyi öğrenmek istiyor. Ekip, bu istatistiği takip etmesine yardımcı olmak için özel bir Crashlytics anahtarı
current_level
ayarlıyor ve kullanıcı yeni bir seviyeye her ulaştığında bu anahtarı güncelliyor.
Objective-C
CrashlyticsKit setIntValue:3 forKey:@"current_level";
Swift
Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");
Java
Crashlytics.setInt("current_level", 3);
BigQuery Export'ta bu anahtarı kullanarak her kilitlenme etkinliğiyle ilişkili current_level
değerlerinin dağılımını bildirmek için bir sorgu yazarlar:
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. Örnek: User-ID ayıklama
Bir geliştiricinin uygulaması erken erişim sürümündedir. Kullanıcıların çoğu bu yeni uygulamaya bayılıyor ancak üçü alışılmadık sayıda kilitlenme yaşıyor. Sorunun temeline inmek için kullanıcı kimliklerini kullanarak bu kullanıcılar için tüm kilitlenme etkinliklerini toplayan bir sorgu yazarlar:
SELECT * FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE user.id IN ("userid1", "userid2", "userid3") ORDER BY user.id
6. Örnek: Belirli bir kilitlenme sorunuyla karşılaşan tüm kullanıcıları bulma
Bir geliştirici, beta test kullanıcıları grubuna kritik bir hata yayınladı. Ekip, belirli kilitlenme sorunu kimliğini belirlemek için yukarıdaki 2. Örnekteki sorguyu kullanabildi. Şimdi, bu kilitlenmeden etkilenen uygulama kullanıcılarının listesini çıkarmak için bir sorgu çalıştırmak istiyor:
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. Örnek: Ülkeye göre ayrılmış şekilde, kilitlenme sorunundan etkilenen kullanıcı sayısı
Ekip şimdi yeni bir sürümün kullanıma sunulması sırasında kritik bir hata tespit etti. Kilitlenme sorunu kimliğini tanımlamak için yukarıdaki 2. Örnekteki sorguyu kullanabildiler. Ekip şimdi bu kazanın dünyanın farklı ülkelerindeki kullanıcılara yayılıp yayılmadığını görmek istiyor.
Ekibin bu sorguyu yazabilmesi için şunları yapması gerekir:
Google Analytics için BigQuery dışa aktarma işlemlerini etkinleştirin. Proje verilerini BigQuery'ye aktarma başlıklı makaleyi inceleyin.
Uygulamasını hem Google Analytics SDK'sına hem de Crashlytics SDK'sına kullanıcı kimliği iletecek şekilde güncellemelidir.
Objective-C
CrashlyticsKit setUserIdentifier:@"123456789"; FIRAnalytics setUserID:@"12345678 9";
Swift
Crashlytics.sharedInstance().setUserIdentifier("123456789"); Analytics.setUserID("123456789");
Java
Crashlytics.setUserIdentifier("123456789"); mFirebaseAnalytics.setUserId("123456789");
Google Analytics BigQuery veri kümesindeki etkinlikleri Crashlytics BigQuery veri kümesindeki kilitlenmelerle birleştirmek için User-ID alanını kullanan bir sorgu yazın:
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. Örnek: Bugün şimdiye kadarki en önemli 5 sorun
Crashlytics BigQuery akış dışa aktarma özelliğinin etkinleştirilmesini gerektirir
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. Örnek: Bugün de dahil olmak üzere DATE tarihinden beri en sık karşılaşılan 5 sorun
Crashlytics BigQuery akış dışa aktarma özelliğinin etkinleştirilmesini gerektirir.
Bu örnekte, güvenilir toplu verilere gerçek zamanlı bilgiler eklemek için toplu ve gerçek zamanlı tabloları birleştiriyoruz. event_id
birincil anahtar olduğundan, ortak etkinlikleri iki tablodan tekilleştirmek için DISTINCT event_id
kullanabiliriz.
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'deki Firebase Crashlytics şemasını anlama
Crashlytics'i BigQuery'ye bağladığınızda Firebase, bağlantıdan iki gün öncesine kadar olan etkinlikler de dahil olmak üzere son etkinlikleri (kilitlenmeler, önemli olmayan hatalar ve ANR'ler) dışa aktarır ve 30 güne kadar dolgu seçeneğini kullanabilir.
Bu andan itibaren bağlantıyı devre dışı bırakana kadar Firebase, Crashlytics etkinliklerini günlük olarak dışa aktarır. Her dışa aktarma işleminden sonra verilerin BigQuery'de kullanılabilir hale gelmesi birkaç dakika sürebilir.
Veri kümeleri
Firebase Crashlytics, Crashlytics verileri için BigQuery'de yeni bir veri kümesi oluşturur. Bu veri kümesi, birden fazla uygulaması olsa bile projenizin tamamını kapsar.
Tablolar
Firebase Crashlytics, projenizdeki her uygulama için veri dışa aktarma özelliğini devre dışı bırakmadıysanız, bu uygulama için veri kümesinde bir tablo oluşturur. Firebase, tabloları uygulamanın paket tanımlayıcısına göre adlandırarak alt çizgiye dönüştürülen ve platform adının sonuna eklenen platform adını alır.
Örneğin, com.google.test
kimliğine sahip bir Android uygulamasının verileri com_google_test_ANDROID
adlı bir tabloda, gerçek zamanlı veriler (etkinse) ise com_google_test_ANDROID_REALTIME
adlı bir tabloda olur
Tablolar, geliştiriciler tarafından tanımlanan özel Crashlytics anahtarlarına ek olarak standart bir Crashlytics veri grubu içerir.
Satırlar
Tablodaki her satır, uygulamanın karşılaştığı bir hatayı temsil eder.
Sütunlar
Bir tablodaki sütunlar; kilitlenmeler, önemli olmayan hatalar ve ANR'ler için aynıdır. Crashlytics BigQuery akışı dışa aktarma özelliği etkinse gerçek zamanlı tablo, toplu tabloyla aynı sütunlara sahip olur. Dışa aktarma işlemindeki sütunlar aşağıda listelenmiştir.
Yığın izlemeler olmadan
Yığın izleme içermeyen etkinlikleri temsil eden satırlarda bulunan sütunlar.
Alan adı | Veri Türü | Açıklama |
---|---|---|
platform | DİZE | Apple veya Android uygulamaları |
paket_tanımlayıcı | DİZE | Paket kimliği (ör. com.google.gmail) |
event_id [etkinlik_kimliği] | DİZE | Etkinlik için benzersiz bir kimlik |
önemli | BOOLE | Uygulamanın kilitlenip kilitlenmediği |
error_type [hata_türü] | DİZE | Etkinliğin hata türü (FATAL, NON_FATAL, ANR) |
sorun_kimliği | DİZE | Etkinlikle ilişkili sorun |
varyant_kimliği | DİZE | Bu etkinlikle ilişkilendirilmiş sorun varyantı Tüm etkinliklerin ilişkilendirilmiş bir sorun varyantı olmadığını unutmayın. |
event_timestamp | ZAMAN DAMGASI | Etkinliğin ne zaman gerçekleştiği |
device | KAYIT | Etkinliğin gerçekleştiği cihaz |
cihaz.üretici | DİZE | Cihaz üreticisi |
cihaz.modeli | DİZE | Cihaz modeli |
cihaz.mimari | DİZE | X86_32, X86_64, ARMV7, ARM64, ARMV7S veya ARMV7K |
bellek | KAYIT | Cihazın bellek durumu |
kullanılan bellek | İT64 | Kullanılan bellek baytı |
belleksiz | İT64 | Kalan bellek baytı |
depolama | KAYIT | Cihazın kalıcı depolama alanı |
depolama alanı.kullanılan | İT64 | Kullanılan depolama alanı baytı |
depolama.ücretsiz | İT64 | Kalan depolama alanı (bayt) |
işletim_sistemi | KAYIT | Cihazdaki işletim sistemiyle ilgili ayrıntılar |
işletim_sistemi.display_sürümü | DİZE | Cihazdaki işletim sistemi sürümü |
operating_system.name | DİZE | Cihazdaki işletim sisteminin adı |
işletim_sistemi.modification_state | DİZE | Cihazın değiştirilip değiştirilmediği, örneğin jailbreak'li/rootlanmış (DEĞİŞTİRİLDİ veya DEĞİŞTİRİLMEDİ) |
işletim_sistemi.type | DİZE | Cihazda çalışan işletim sistemi türü (ör. iOS, MACOS); yalnızca Apple platform uygulamaları için kullanılabilir |
işletim_sistemi.cihaz_türü | DİZE | Cihazın türü (örneğin, MOBİL, TABLET, TV vb.); "Cihaz kategorisi" olarak da bilinir. |
uygulama | KAYIT | Etkinliği oluşturan uygulama |
uygulama.derleme_sürümü | DİZE | Uygulamanın derleme sürümü |
uygulama.görünen_sürümü | DİZE | |
kullanıcı | KAYIT | İsteğe bağlı: Uygulamanın kullanıcısından toplanan bilgiler |
user.name | DİZE | İsteğe bağlı: Kullanıcının adı |
kullanici.eposta | 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şkilendirilen uygulamaya özel kimlik |
özel_anahtarlar | TEKRARLANAN KAYIT | Geliştirici tarafından tanımlanmış anahtar/değer çiftleri |
özel_anahtarlar.anahtar | DİZE | Geliştirici tarafından tanımlanmış anahtar |
özel_anahtarlar.değer | DİZE | Geliştirici tarafından tanımlanan değer |
kurulum_uuid | DİZE | Benzersiz bir uygulama ve cihaz yüklemesini tanımlayan kimlik |
Crashlytics_sdk_sürümleri | DİZE | Etkinliği oluşturan Crashlytics SDK sürümü |
uygulama_yönü | DİZE | PORTRAIT, LANDSCAPE, FACE_UP veya FACE_DOWN |
cihaz_yönü | DİZE | PORTRAIT, LANDSCAPE, FACE_UP veya FACE_DOWN |
işlem_durumu | DİZE | ARKA PLAN veya ÖNCEKİ |
logs | TEKRARLANAN KAYIT | Etkinleştirilmişse Crashlytics günlük kaydedici tarafından oluşturulan zaman damgalı günlük iletileri |
günlükler.zaman_damgası | ZAMAN DAMGASI | Günlüğün oluşturulduğu tarih |
günlükler.mesaj | DİZE | Günlüğe kaydedilen mesaj |
içerik haritaları | TEKRARLANAN KAYIT | Etkinleştirilmişse zaman damgası bulunan Google Analytics içerik haritaları |
içerik haritaları.timestamp | ZAMAN DAMGASI | İçerik haritasıyla ilişkili zaman damgası |
breadcrumbs.name | DİZE | İçerik haritasıyla ilişkilendirilen ad |
içerik haritaları.params | TEKRARLANAN KAYIT | İçerik haritasıyla ilişkili parametreler |
içerik haritası.params.anahtar | DİZE | İçerik haritasıyla ilişkili parametre anahtarı |
içerik haritası.params.değer | DİZE | İçerik haritasıyla ilişkili parametre değeri |
suç_çerçevesi | KAYIT | Kilitlenmenin veya hatanın temel nedeni olarak belirlenen çerçeve |
suç_çerçevesi.line | İT64 | Çerçevedeki dosyanın satır numarası |
suç_çerçevesi.dosya | DİZE | Çerçeve dosyasının adı |
suç_çerçevesi.simge | DİZE | Hidratlı sembol veya hidrat içmeyi mümkün değilse ham simgesi |
suç_çerçevesi.uzaklaşma | İT64 | Kodu içeren ikili görüntüye bayt ofseti (Java istisnaları için ayarlanmaz) |
suç_çerçevesi.adres | İT64 | Java çerçeveleri için ayarlanmamış, ikili resimdeki kodu içeren adres |
suç_çerçevesi.kitaplık | DİZE | Çerçeveyi içeren kitaplığın görünen adı |
suç_çerçevesi.sahip | DİZE | GELİŞTİRİCİ, TEDARİKÇİ, ÇALIŞMA ZAMANI, PLATFORM veya SİSTEM |
suç_çerçevesi.suçlanan | BOOLE | Crashlytics'in analizinin, kilitlenmenin veya hatanın nedeninin bu çerçeve olup olmadığı |
istisnalar | TEKRARLANAN KAYIT | Yalnızca Android: Bu etkinlik sırasında oluşan istisnalar. İç içe yerleştirilmiş istisnalar ters kronolojik sırada sunulur (okuma: son kayıt, atılan ilk istisnadır) |
istisnaları.tür | DİZE | İstisna türü, ör. java.lang. InvalidStateException |
İstisnalar.istisna_mesajı | DİZE | İstisnayla ilişkili bir mesaj |
İstisnalar.iç içe yerleştirilmiş | BOOLE | Son atılan istisna (yani ilk kayıt) hariç tümü için doğru |
istisnaları.başlık | DİZE | İleti dizisinin başlığı |
özel_altyazılar | DİZE | İleti dizisinin alt başlığı |
istisnaları.suç | BOOLE | Crashlytics, hatadan veya kilitlenmeden istisnanın neden olduğunu belirlerse doğru değerini alır |
istisnalar.çerçeveler | TEKRARLANAN KAYIT | Özel durumla ilişkilendirilen çerçeveler |
istisnaları.frames.line | İT64 | Çerçevedeki dosyanın satır numarası |
istisnaları.çerçeveler.dosyası | DİZE | Çerçeve dosyasının adı |
istisnalar.çerçeveler.simgesi | DİZE | Hidratlı sembol veya hidrat içmeyi mümkün değilse ham simgesi |
istisnalar.çerçeveler.offset | İT64 | Kodu içeren ikili görüntüye bayt ofseti (Java istisnaları için ayarlanmaz) |
istisnalar.çerçeveler.adresi | İT64 | Java çerçeveleri için ayarlanmamış, ikili resimdeki kodu içeren adres |
istisnalar.çerçeveler.library | DİZE | Çerçeveyi içeren kitaplığın görünen adı |
istisnaları.frames.sahip | DİZE | GELİŞTİRİCİ, TEDARİKÇİ, ÇALIŞMA ZAMANI, PLATFORM veya SİSTEM |
istisnalar.çerçeveler.blamed | BOOLE | Crashlytics'in analizinin, kilitlenmenin veya hatanın nedeninin bu çerçeve olup olmadığı |
hata | TEKRARLANAN KAYIT | Yalnızca Apple uygulamaları: önemli olmayan hatalar |
error.kuyruk_adı | DİZE | İş parçacığının çalıştırıldığı sıra |
hata.kod | İT64 | Uygulamanın günlüğe kaydedilen NSError ile ilişkili hata kodu |
hata.başlık | DİZE | İleti dizisinin başlığı |
error.altyazı | DİZE | İleti dizisinin alt başlığı |
hatası.suçu | BOOLE | Crashlytics'in analizinin, hatanın nedeninin bu çerçeve olduğunu belirleyip belirlemediği |
hatası.çerçeveler | TEKRARLANAN KAYIT | Yığın izlemenin çerçeveleri |
error.frames.line | İT64 | Çerçevedeki dosyanın satır numarası |
error.frames.file | DİZE | Çerçeve dosyasının adı |
hata.çerçeveler.simgesi | DİZE | Hidratlı sembol veya hidrat içmeyi mümkün değilse ham simgesi |
error.frames.offset | İT64 | Kodu içeren ikili resme giden bayt farkı |
error.frames.address | İT64 | İkili resimdeki kodu içeren adres |
error.frames.library | DİZE | Çerçeveyi içeren kitaplığın görünen adı |
error.frames.owner | DİZE | GELİŞTİRİCİ, TEDARİKÇİ, ÇALIŞMA ZAMANI, PLATFORM veya SİSTEM |
error.frames.blamed | BOOLE | Crashlytics'in analizinin, hatanın nedeninin bu çerçeve olduğunu belirleyip belirlemediği |
ileti dizileri | TEKRARLANAN KAYIT | Etkinlik sırasında mevcut olan ileti dizileri |
ileti dizileri.çöktü | BOOLE | İş parçacığının çöküp çökmediği |
messages.thread_name | DİZE | İleti dizisinin adı |
messages.kuyruk_adı | DİZE | Yalnızca Apple uygulamaları: İş parçacığının çalıştırıldığı sıra |
messages.signal_name | DİZE | Uygulamanın kilitlenmesine neden olan sinyalin adı (yalnızca kilitlenen yerel iş parçacıklarında bulunur) |
messages.sinyal_code | DİZE | Uygulamanın kilitlenmesine neden olan sinyalin kodu (yalnızca kilitlenen yerel iş parçacıklarında bulunur) |
ileti dizileri.crash_address | İT64 | Uygulamanın kilitlenmesine neden olan sinyalin adresi; yalnızca çökmüş yerel iş parçacıklarında bulunur |
messages.code | İT64 | Yalnızca Apple uygulamaları: Uygulamanın özel günlüğe kaydedilen NSError hatasının kodu |
ileti dizileri.başlık | DİZE | İleti dizisinin başlığı |
topics.altyazı | DİZE | İleti dizisinin alt başlığı |
başlıklar.sorumlu | BOOLE | Crashlytics'in analizinin, kilitlenmenin veya hatanın nedeninin bu çerçeve olup olmadığı |
mesaj dizileri.çerçeveler | TEKRARLANAN KAYIT | İleti dizisinin çerçeveleri |
Thread.frames.line | İT64 | Çerçevedeki dosyanın satır numarası |
Thread.frames.file | DİZE | Çerçeve dosyasının adı |
ipler.çerçeveler.simgesi | DİZE | Hidrat sembolü veya hidyalatılmış değilse ham simgesi |
ipler.çerçeveler.uzaklaşması | İT64 | Kodu içeren ikili resme giden bayt farkı |
Thread.frames.address | İT64 | İkili resimdeki kodu içeren adres |
Thread.frames.library | DİZE | Çerçeveyi içeren kitaplığın görünen adı |
ileti dizileri.çerçeve.sahibi | DİZE | GELİŞTİRİCİ, TEDARİKÇİ, ÇALIŞMA ZAMANI, PLATFORM veya SİSTEM |
ileti dizileri.çerçeveler.bama | BOOLE | Crashlytics'in analizinin, hatanın nedeninin bu çerçeve olduğunu belirleyip belirlemediği |
unity_metadata.unity_sürümü | 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 | İşlemci türü |
unity_metadata.processor_count | İT64 | İşlemci (çekirdek) sayısı |
unity_metadata.processor_frequency_mhz | İT64 | İşlemcilerin MHz cinsinden frekansı |
oney_metadata.system_memory_size_mb | İT64 | Sistem belleğinin Mb cinsinden boyutu |
ünite_meta verileri.grafikler_bellek_boyutu_mb | İT64 | MB cinsinden grafik belleği |
oney_metadata.graphics_cihaz_kimliği | İT64 | Grafik cihazının tanımlayıcısı |
oney_metadata.graphics_device_sağlayıcı_kimliği | İT64 | Grafik işlemcisi tedarikçisinin tanımlayıcısı |
oney_metadata.graphics_cihaz_adı | DİZE | Grafik cihazının adı |
unity_metadata.graphics_device_tedarikçi | DİZE | Grafik cihazının satıcısı |
oney_metadata.graphics_device_sürümü | DİZE | Grafik cihazının sürümü |
oney_metadata.graphics_cihaz_türü | DİZE | Grafik cihazının türü |
oney_metadata.graphics_shader_seviyesi | İT64 | Grafiklerin gölgelendirici düzeyi |
unity_metadata.graphics_render_target_count | İT64 | Grafik oluşturma hedeflerinin sayısı |
oney_metadata.graphics_copy_texture_support | DİZE | Unity API'de tanımlandığı gibi grafik dokusunu kopyalama desteği |
oney_metadata.graphics_max_texture_size | İT64 | Doku oluşturmaya ayrılmış maksimum boyut |
oney_metadata.screen_size_px | DİZE | Ekranın piksel cinsinden boyutu (genişlik x yükseklik olarak biçimlendirilir) |
unity_metadata.screen_resolve_dpi | DİZE | Ekranın kayan nokta sayısı olarak DPI değeri |
oney_metadata.screen_refresh_rate_hz | İT64 | Ekranın Hz cinsinden yenileme hızı |
Dışa aktarılan Crashlytics verilerini Data Studio ile görselleştirme
Google Data Studio, BigQuery'deki Crashlytics veri kümelerinizi okunması ve paylaşılması kolay, tamamen özelleştirilebilir raporlara dönüştürür.
Data Studio'yu kullanma hakkında daha fazla bilgi edinmek için Data Studio'ya hoş geldiniz adlı Data Studio hızlı başlangıç kılavuzunu deneyin.
Crashlytics rapor şablonu kullanma
Data Studio, Crashlytics için dışa aktarılan Crashlytics BigQuery şemasından kapsamlı bir boyut ve metrik grubu içeren örnek bir rapor sunar. Crashlytics BigQuery akışını dışa aktarmayı etkinleştirdiyseniz bu verileri Data Studio şablonunun Gerçek zamanlı trendler sayfasında görüntüleyebilirsiniz.Kendi uygulamanızın ham kilitlenme verilerine dayalı yeni raporları ve görselleştirmeleri hızlıca oluşturmak için örneği şablon olarak kullanabilirsiniz:
- Crashlytics Data Studio Kontrol Paneli şablonunu açın.
- 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 > [projenizin-adı] > firebase_crashlytics > [tablonuzun-adı] seçeneğini belirleyerek dışa aktarılan Crashlytics verilerini içeren bir tablo seçin. Toplu tablonuzu her zaman seçebilirsiniz. Crashlytics BigQuery akış dışa aktarma özelliği etkinse bunun yerine gerçek zamanlı tablonuzu seçebilirsiniz.
- Yapılandırma bölümünde, Crashlytics Şablonu düzeyi'ni Varsayılan olarak ayarlayın.
- Yeni veri kaynağını oluşturmak için Bağlan'ı tıklayın.
- Crashlytics şablonuna dönmek için Add to Report'u (Rapora Ekle) tıklayın.
- Son olarak, Crashlytics Data Studio Kontrol Paneli şablonunun kopyasını oluşturmak için Create Report'u (Rapor Oluştur) tıklayın.