| Platform seçin: | iOS+ Android Web Flutter Unity |
Firebase konsolunda (DevOps ve Etkileşim > Crashlytics kontrol paneli) bir sorunu tıklayarak ayrıntılı etkinlik raporu alabilirsiniz. Web uygulamanızda neler olduğunu daha iyi anlamak için bu raporları özelleştirebilir ve telemetri verilerinizin toplanmasını yönetebilirsiniz:
- İşlenen istisnaları programatik olarak bildirme
- Özel anahtar ekleme
- Kısa süreli rutinler için telemetri kayıtlarını temizlemeyi zorunlu kılma
- Örnekleme hızını yapılandırma
- Telemetri verilerinin toplanmasını devre dışı bırakma veya etkinleştirme
İşlenen istisnaları programatik olarak bildirme
İşlenen istisnaları recordError kullanarak manuel olarak kaydedebilirsiniz. Yönlendirme hataları ve yakalanmamış istisnalar, çerçeve hata sınırlarınız tarafından otomatik olarak yakalanır.
Kullanıcılarınız genelinde hata yaygınlığını ve teşhis özelliklerini nasıl izleyeceğiniz aşağıda açıklanmıştır:
import { recordError, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase';
const crashlytics = getCrashlytics(app);
async function submitPaymentForm() {
try {
await api.processTransaction();
} catch (error) {
// Manually record handled exceptions with diagnostic context
recordError(crashlytics, error, {
userTier: 'Premium Gold',
checkoutStage: 'BillingAddressVerification',
transactionCode: 'tx_8412_err',
retryAttempts: 2
});
showFallbackBanner(error);
}
}
Özel anahtar ekleme
Özel meta veri anahtarları, kilitlenmeye yol açan belirli uygulama durumunu veya kullanıcı iş akışını anlamanıza yardımcı olur.
recordError yöntemini çağırırken isteğe bağlı meta veri parametresini kullanarak kullanıcı etkinliklerini, oturum durumlarını ve teşhis ayrıntılarını doğrudan anahtar/değer çifti özel özellikleri olarak günlüğe kaydedebilirsiniz:
import { recordError, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase'; // Shared initialization script
const crashlytics = getCrashlytics(app);
// Pass custom key-value diagnostic metadata within recordError
recordError(crashlytics, error, {
userTier: 'Premium Gold',
checkoutStage: 'BillingAddressVerification',
transactionCode: 'tx_8412_err',
retryAttempts: 2,
breadcrumb: 'User opened shopping cart',
lastAction: 'Click Checkout Button'
});
Bu özel özellikler, istisna raporunda tutulur ve Crashlytics kontrol paneli sorun görünümündeki Keys (Anahtarlar) sekmesinde görünür.
Telemetri kayıtlarını temizlemeyi zorunlu kıl
Web telemetri motoru, pil ömrünü, CPU performansını ve ağ bant genişliğini korumak için günlükleri varsayılan olarak bellek segmentlerine ayırır. Ancak kısa süreli yürütme ortamlarında günlükler, yürütme bağlamı yok edilmeden hemen önce yüklenmelidir.
Sıraya alınan tüm hataları hemen arka uca göndermek için eşzamansız flush komutunu kullanabilirsiniz:
import { recordError, flush, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase';
const crashlytics = getCrashlytics(app);
async function handleApplicationCrash(error: Error) {
// Capture the error with immediate priority
recordError(crashlytics, error, { priority: 'IMMEDIATE' });
// Force an immediate upload before the process terminates or reloads
await flush(crashlytics);
// Safe to terminate or refresh the current execution context
window.location.reload();
}
Örnekleme hızını yapılandırma
Telemetri hacmini ve maliyetini kontrol etmek için kullanıcı oturumlarınızın bir kısmını örnekliyorsanız örneklemeyi aşağıdaki seçeneklerden birini kullanarak yapılandırabilirsiniz:
- 1. seçenek (önerilir): Örnekleme hızını Firebase konsolunda yapılandırın
- 2. seçenek: Firebase Telemetry Admin API'yi kullanarak örnekleme hızını ayarlama
1. seçenek (önerilir): Örnekleme hızını Firebase konsolunda yapılandırın.
Firebase konsolunda DevOps & Engagement (DevOps ve Etkileşim) > Crashlytics dashboard (dashboard) bölümüne gidin.
Sayfanın üst kısmındaki açılır seçiciden web uygulamanızı seçin.
Kontrol panelinin sağ üst köşesindeki Örneklemeyi yapılandır'ı tıklayın.
İstemcilerden toplanan etkinliklerin ve oturumların yüzdesini kontrol etmek için Örnekleme hızı yüzdesini (
0%ile100%arasında) ayarlayın.
2. seçenek: Firebase Telemetry Admin API'yi kullanarak örnekleme hızını ayarlama
Firebase uygulamalarınızın telemetri toplama ayarlarını yönetmek için Firebase Telemetry Admin API'yi (firebasetelemetryadmin.googleapis.com/v1alpha) kullanabilirsiniz.
Terminalinizde aşağıdaki gerekli değişkenleri yapılandırın:
PROJECT_ID="PROJECT_ID" LOCATION="LOCATION" # for example, global APP_ID="FIREBASE_APP_ID" # for example, 1:1234567890:web:abcdef123456 TOKEN=$(gcloud auth application-default print-access-token)CONFIG_NAME değerinizi bulun ve terminalinizde değişken olarak yapılandırın:
Telemetri ayarları
Configkaynağı kullanılarak yönetilir. Bu nedenle, web uygulamanız için belirli bir CONFIG_NAME bulmanız gerekir.Projenizdeki yapılandırmaları listeleyin ve FIREBASE_APP_ID ile filtreleyin.
curl -Gve--data-urlencodeişaretleri, AIP-160 filtre dizesinin doğru şekilde URL kodlamalı olmasını sağlar:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"JSON yanıtında uygulamanızın
namealanını (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>) bulun ve ardından bunuCONFIG_NAMEdeğişkeniniz olarak ayarlayın:CONFIG_NAME="CONFIG_NAME"
Örnekleme hızını ayarlayın:
Örnekleme hızını ayarlamak için
PATCHyöntemini kullanaraksampling_ratealanını güncelleyin. Sorgu parametrelerindeupdateMask=sampling_ratedeğerini belirtmeniz gerekir. Örnekleme hızı, toplanacak oturumların yüzdesini temsil eden bir çift değerdir (ör. %25 için0.25):# Example: Set sampling rate to 25% curl -X PATCH \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d "{ \"sampling_rate\": 0.25, \"app_id\": \"${APP_ID}\" }" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}?updateMask=sampling_rate"
Telemetri verilerinin toplanmasını devre dışı bırakma veya etkinleştirme
Web uygulamanız için Crashlytics kurulumu yaptığınızda telemetri verilerinin toplanması varsayılan olarak etkinleştirilir. Crashlytics SDK'sını yükledikten sonra telemetri verilerinin toplanmasını dinamik olarak devre dışı bırakmanız veya yeniden etkinleştirmeniz gerekirse Firebase Telemetry Admin API (firebasetelemetryadmin.googleapis.com/v1alpha) ile toplama uç noktalarını yönetebilirsiniz.
Telemetriyi devre dışı bırakmadan veya etkinleştirmeden önce aşağıdaki değişkenleri ayarlamanız gerekir:
Terminalinizde aşağıdaki gerekli değişkenleri yapılandırın:
PROJECT_ID="PROJECT_ID" LOCATION="LOCATION" # for example, global APP_ID="FIREBASE_APP_ID" # for example, 1:1234567890:web:abcdef123456 TOKEN=$(gcloud auth application-default print-access-token)CONFIG_NAME değerinizi bulun ve terminalinizde değişken olarak yapılandırın:
Telemetri ayarları
Configkaynağı kullanılarak yönetilir. Bu nedenle, web uygulamanız için belirli bir CONFIG_NAME bulmanız gerekir.Projenizdeki yapılandırmaları listeleyin ve FIREBASE_APP_ID ile filtreleyin.
curl -Gve--data-urlencodeişaretleri, AIP-160 filtre dizesinin doğru şekilde URL kodlamalı olmasını sağlar:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"JSON yanıtında uygulamanızın
namealanını (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>) bulun ve ardından bunuCONFIG_NAMEdeğişkeniniz olarak ayarlayın:CONFIG_NAME="CONFIG_NAME"
Telemetri verilerinin toplanmasını devre dışı bırakma
Telemetri verilerinin toplanmasını devre dışı bırakmak için :disable özel yöntemini kullanın:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:disable"
Telemetri verilerinin toplanmasını yeniden etkinleştirme
Telemetri verilerinin toplanmasını yeniden etkinleştirmek için :enable yöntemini çağırın:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:enable"