Firebase Crashlytics verilerini BigQuery'ye aktarma

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

  1. Firebase konsolunda Entegrasyonlar sayfasına gidin.
  2. BigQuery kartında Bağlantı'yı tıklayın.
  3. 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:

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
  • Veriler günde bir kez dışa aktarılır.
  • Etkinlikler, BigQuery
  • Veriler 30 güne kadar önceki tarihlere doldurulabilir.
  • Veriler gerçek zamanlı olarak dışa aktarılır.
  • Eksik veriler doldurulmaz.

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

  1. Firebase konsolunda şuna gidin: Entegrasyonlar sayfası.
  2. BigQuery kartında Yönet'i tıklayın.
  3. 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:

  1. Google Analytics verilerinin BigQuery hedefine aktarılmasını etkinleştir. Proje verilerini BigQuery'ye aktarma başlıklı makaleyi inceleyin.

  2. 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");
    
  3. 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ı ve ANDROID 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:

  1. Crashlytics Data Studio kontrol paneli şablonunu açın.

  2. Sağ üst köşedeki Şablonu Kullan'ı tıklayın.

  3. Yeni Veri Kaynağı açılır menüsünde Yeni Veri Kaynağı Oluştur'u seçin.

  4. BigQuery kartında Seç'i tıklayın.

  5. 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.

  6. Yapılandırma bölümünde Crashlytics Template level (Şablon düzeyi) değerini şu şekilde ayarlayın: Varsayılan.

  7. Yeni veri kaynağı oluşturmak için Bağla'yı tıklayın.

  8. Crashlytics şablonuna dönmek için Add to Report'u (Rapora Ekle) tıklayın.

  9. Son olarak, Crashlytics kopyanızı oluşturmak için Rapor Oluştur'u tıklayın Data Studio Kontrol Paneli şablonu.