Bu sayfa, Performance Monitoring'i kullanmaya başlamak veya Performance Monitoring özelliklerini ve araçlarını kullanmak için sorun giderme ipuçları sağlar.
Sorun giderme için ilk kontroller
Aşağıdaki iki kontrol, daha fazla sorun gidermeden önce herkes için önerilen genel en iyi uygulamalardır.
1. Performans olayları için günlük mesajlarını kontrol edin
Performance Monitoring SDK'nın performans olaylarını yakaladığından emin olmak için günlük mesajlarınızı kontrol edin.
Performans olayları için günlük mesajları nasıl görüntülenir?
Performans olayları için günlük mesajları nasıl görüntülenir?
Tarayıcınızın geliştirici araçlarını açın (örneğin, Chrome Geliştirme Araçları için Ağ sekmesi veya Firefox için Ağ İzleyicisi'nde ).
Web uygulamanızı tarayıcıda yenileyin.
Herhangi bir hata mesajı için günlük mesajlarınızı kontrol edin.
Birkaç saniye sonra, tarayıcınızın geliştirici araçlarında
firebaselogging.googleapis.comyönelik bir ağ araması arayın. Bu ağ aramasının varlığı, tarayıcının performans verilerini Firebase'e gönderdiğini gösterir.
Uygulamanız performans olaylarını günlüğe kaydetmiyorsa sorun giderme ipuçlarını inceleyin.
2. Firebase Status Dashboard'u kontrol edin
Firebase veya Performance Monitoring için bilinen bir kesinti olması durumunda Firebase Status Dashboard'u kontrol edin.
Performans İzlemeye Başlarken
Performance Monitoring'i ( iOS+ | Android | Web ) kullanmaya başlıyorsanız, aşağıdaki sorun giderme ipuçları, Firebase'in SDK'yı algılaması veya Firebase konsolunda ilk performans verilerinizi görüntülemesiyle ilgili sorunlarda yardımcı olabilir.
Uygulamaya SDK eklendi, ancak konsol hala SDK ekle diyor
Firebase, uygulamanızdan etkinlik bilgileri (uygulama etkileşimleri gibi) aldığında, Performance Monitoring SDK'yı uygulamanıza başarıyla ekleyip eklemediğinizi algılayabilir. Genellikle, uygulamanızı başlattıktan sonraki 10 dakika içinde, Firebase konsolunun Performans panosunda bir "SDK algılandı" mesajı görüntülenir. Ardından, 30 dakika içinde pano ilk işlenen verileri görüntüler.
Uygulamanıza SDK'nın en son sürümünü eklediğinizden bu yana 10 dakikadan fazla zaman geçtiyse ve hala herhangi bir değişiklik göremiyorsanız, Performance Monitoring'in olayları günlüğe kaydettiğinden emin olmak için günlük mesajlarınızı kontrol edin . Gecikmiş bir SDK algılama mesajıyla ilgili sorunları gidermek için aşağıda açıklanan uygun sorun giderme adımlarını deneyin.
Uygulama olayları günlüğe kaydediyor: sorun giderme adımları
Uygulama olayları günlüğe kaydediyor: sorun giderme adımları
Hala yerel olarak geliştiriyorsanız, veri toplama için daha fazla etkinlik oluşturmayı deneyin:
Web uygulamanızı yerel bir ortamda sunun ve görüntüleyin.
Siteniz için alt sayfalar yükleyerek, uygulamanızla etkileşim kurarak ve/veya ağ isteklerini tetikleyerek etkinlikler oluşturun. Sayfa yüklendikten sonra tarayıcı sekmesini en az 10 saniye açık tuttuğunuzdan emin olun.
Firebase yapılandırma nesnenizin uygulamanıza doğru şekilde eklendiğinden ve nesneyi değiştirmediğinizden emin olun. Özellikle, aşağıdakileri kontrol edin:
- Yapılandırma nesnesindeki Firebase Web Uygulaması Kimliği (
appId), uygulamanız için doğrudur. Firebase Uygulama Kimliğinizi, Proje ayarları bölümündeki Uygulamalarınız kartında bulun.
Uygulamanızdaki yapılandırma nesnesiyle ilgili herhangi bir sorun görünüyorsa, aşağıdakileri deneyin:
Şu anda uygulamanızda bulunan yapılandırma nesnesini silin.
Yeni bir yapılandırma nesnesi edinmek ve onu web uygulamanıza eklemek için bu talimatları izleyin.
- Yapılandırma nesnesindeki Firebase Web Uygulaması Kimliği (
SDK olayları günlüğe kaydediyorsa ve her şey doğru ayarlanmış gibi görünüyorsa, ancak SDK algılama mesajını veya işlenmiş verileri (2 saat sonra) hala göremiyorsanız, Firebase Destek ile iletişime geçin .
Uygulama olayları günlüğe kaydetmiyor : sorun giderme adımları
Uygulama olayları günlüğe kaydetmiyor : sorun giderme adımları
Performans İzleme SDK'sının uygulamanızda doğru şekilde başlatıldığından emin olun.
Performans İzleme SDK'sının aşağıdaki bayrak aracılığıyla devre dışı bırakılmadığından emin olun:
-
performance.instrumentationEnabled
-
Tarayıcınızın önbelleğe alınmasının devre dışı olduğundan emin olun, aksi takdirde tarayıcı herhangi bir yeni enstrümantasyon ayarı almayabilir.
Kapatın, ardından web sayfası sekmesini yeniden açın. Günlüğe kaydetmeyi tekrar kontrol edin.
Uygulamanıza Performance Monitoring SDK'sını yeni eklediyseniz, SDK'nın çalışmaya başlaması için uygulamanızı tamamen yeniden başlatmanız gerekebilir.
Uygulamanızda devre dışı bırakılmış herhangi bir şey bulamazsanız Firebase Destek ile iletişime geçin .
Konsol, SDK'nın algılandığını söylüyor, ancak hiçbir veri görüntülenmiyor
Performance Monitoring, performans olayı verilerini Performans panosunda görüntülemeden önce işler.
"SDK algılandı" mesajının görüntülenmesinin üzerinden 24 saatten fazla zaman geçtiyse ve hala verileri göremiyorsanız, bilinen bir kesinti olma ihtimaline karşı Firebase Status Dashboard'u kontrol edin. Kesinti yoksa Firebase Destek ile iletişime geçin .
Genel sorun giderme
SDK'yı başarıyla eklediyseniz ve uygulamanızda Performans İzleme kullanıyorsanız aşağıdaki sorun giderme ipuçları, Performans İzleme özelliklerini ve araçlarını içeren genel sorunlarda yardımcı olabilir.
Uygulama, performans olaylarını günlüğe kaydetmiyor
Performans etkinlikleri için günlük mesajları görmüyorsanız, aşağıdaki sorun giderme adımlarını deneyin:
Performans İzleme SDK'sının uygulamanızda doğru şekilde başlatıldığından emin olun.
Performans İzleme SDK'sının aşağıdaki bayrak aracılığıyla devre dışı bırakılmadığından emin olun:
-
performance.instrumentationEnabled
-
Tarayıcınızın önbelleğe alınmasının devre dışı olduğundan emin olun, aksi takdirde tarayıcı herhangi bir yeni enstrümantasyon ayarı almayabilir.
Kapatın, ardından web sayfası sekmesini yeniden açın. Günlüğe kaydetmeyi tekrar kontrol edin.
Uygulamanıza Performance Monitoring SDK'sını yeni eklediyseniz, SDK'nın çalışmaya başlaması için uygulamanızı tamamen yeniden başlatmanız gerekebilir.
Uygulamanızda devre dışı bırakılmış herhangi bir şey bulamazsanız Firebase Destek ile iletişime geçin .
Performans kontrol panelinde ilk giriş gecikmesi verileri eksik
İlk giriş gecikmesi metriği için veri görmüyorsanız aşağıdaki sorun giderme adımlarını deneyin:
Performance Monitoring'in yalnızca, bir kullanıcı sayfa yüklendikten sonraki ilk 5 saniye içinde web sayfasını tıkladığında ilk giriş gecikmesi metriğini kaydettiğini unutmayın.
Uygulamanızı bu ölçümü ölçecek şekilde ayarladığınızdan emin olun. İlk giriş gecikmesi metriği, manuel kurulum gerektirir. Özellikle, bu metrik için polyfill kitaplığını eklemeniz gerekir. Yükleme yönergeleri için kitaplığın belgelerine bakın.
Performance Monitoring'in diğer web uygulaması metriklerini raporlaması için bu polyfill kitaplığının eklenmesinin gerekli olmadığını unutmayın.
Performans kontrol panelinde özel izleme verileri eksik
Otomatik olarak toplanan izlemeler için performans verileri görüyor , ancak özel kod izlemeleri için görmüyor musunuz ? Aşağıdaki sorun giderme adımlarını deneyin:
Trace API aracılığıyla kullanılan özel kod izlemelerinin kurulumunu, özellikle aşağıdakileri kontrol edin:
- Özel kod izleri ve özel ölçümler için adlar şu gereksinimleri karşılamalıdır: başında veya sonunda boşluk olmaması, başta alt çizgi (
_) karakteri olmaması ve maksimum uzunluğun 32 karakter olması.
- Tüm izlemeler başlatılmalı ve durdurulmalıdır. Başlatılmayan, durdurulmayan veya başlamadan önce durdurulan hiçbir iz günlüğe kaydedilmez.
record()yöntemini kullanıyorsanız, izlemenizi açıkça başlatmanız veya durdurmanız gerekmediğini unutmayın.
- Özel kod izleri ve özel ölçümler için adlar şu gereksinimleri karşılamalıdır: başında veya sonunda boşluk olmaması, başta alt çizgi (
Performans İzleme veri toplamanın aşağıdaki bayrak aracılığıyla devre dışı bırakılmadığından emin olun:
performance.dataCollectionEnabled
Bu bayrak, yalnızca özel kod izlemeleri için veri toplanmasını kontrol eder (tüm veriler değil).
Performance Monitoring'in beklenen özel kod izlerini günlüğe kaydettiğinden emin olmak için günlük iletilerinizi kontrol edin .
Performance Monitoring olayları günlüğe kaydediyorsa ancak 24 saat sonra hiçbir veri görüntülenmiyorsa Firebase Destek ile iletişime geçin .
Performans kontrol panelinde ağ isteği verileri eksik
Ağ istek verileriniz eksikse aşağıdakilere dikkat edin:
Performance Monitoring, tarayıcı API'si tarafından bildirilen ağ istekleri için ölçümleri otomatik olarak toplar. Bu raporlar başarısız ağ isteklerini içermez.
Kodunuzun davranışına ve kodunuz tarafından kullanılan ağ kitaplıklarına bağlı olarak Performance Monitoring yalnızca tamamlanan ağ isteklerini raporlayabilir. Bu, açık bırakılan HTTP/S bağlantılarının bildirilmeyebileceği anlamına gelir.
Ağ isteği verileri beklendiği gibi toplanmıyor
Performance Monitoring'in ağ isteği verilerini URL kalıpları altında nasıl topladığı hakkında daha fazla bilgi edinin.
Özel URL kalıplarını da deneyebilirsiniz!
SSS
Project ana sayfasındaki Performans kartındaki En Önemli Sorunlara ne oldu?
Belirlediğiniz eşikler aşıldığında sizi otomatik olarak bilgilendiren uyarıları yakın zamanda kullanıma sunmamızın devamı olarak En Önemli Sorunları Son Uyarılar ile değiştirdik. Sorunlar artık kullanımdan kaldırıldı ve yerini uyarılar aldı.
Performans kartının üst kısmındaki uygulama seçici, Son Uyarılar altındaki uyarı girişlerini filtreler. Seçilen uygulama(lar) için yalnızca en son üç uyarı görüntülenir.
Uyarılar hakkında daha fazla bilgi edinmek için Performans sorunları için uyarı ayarlama bölümüne bakın.
Konsoldaki sorunlar için eşik belirleme özelliğine ne oldu?
Performance Monitoring, tanımlanmış eşikleri aşan metrikler için uyarıları destekler. Performans ölçümleri için bu yapılandırılabilir eşiklerle karışıklığı önlemek için, sorunlar için eşikleri yapılandırma özelliğini kaldırdık.
Firebase konsolundaki Ayrıntılar ve Metrik bilgilerine ne oldu?
Sorunları giderme yönteminizi iyileştirmek için Ayrıntılar ve Metrikler sayfalarını yeniden tasarlanmış, merkezi bir kullanıcı arabirimi (UI) ile değiştirdik. Bu yeni sorun giderme kullanıcı arabirimi, Ayrıntılar ve Metriklerin sunduğu temel işlevlerin aynısını sunar. Sorun giderme hakkında daha fazla bilgi edinmek için Belirli bir iz için daha fazla veri görüntüleme konusuna bakın.
Numune sayısı neden beklediğim gibi değil?
Performance Monitoring, uygulamanızın kullanıcı cihazlarından performans verilerini toplar. Uygulamanızın çok sayıda kullanıcısı varsa veya uygulama büyük miktarda performans etkinliği oluşturuyorsa Performance Monitoring, işlenen olayların sayısını azaltmak için veri toplamayı bir cihaz alt kümesiyle sınırlayabilir. Bu sınırlar, daha az olayla bile ölçüm değerlerinin kullanıcınızın uygulama deneyimini temsil etmesi için yeterince yüksektir.
Topladığımız veri hacmini yönetmek için Performance Monitoring aşağıdaki örnekleme seçeneklerini kullanır:
Cihazda hız sınırlaması : Bir cihazın ani iz patlamaları göndermesini önlemek için, bir cihazdan gönderilen kod ve ağ isteği izlerinin sayısını her 10 dakikada bir 300 olayla sınırlıyoruz. Bu yaklaşım, cihazı büyük miktarlarda performans verisi gönderebilen döngülü enstrümantasyonlardan korur ve tek bir cihazın performans ölçümlerini çarpıtmasını önler.
Dinamik örnekleme : Performans İzleme, tüm uygulama kullanıcıları genelinde uygulama başına kod izlemeleri için yaklaşık 100 milyon olay ve ağ isteği izlemeleri için 100 milyon olay toplar. Rastgele bir cihazın izleri yakalayıp göndermeyeceğini belirlemek için cihazlarda (Firebase Remote Config kullanılarak) dinamik bir örnekleme hızı getirilir. Örnekleme için seçilmeyen bir cihaz herhangi bir olay göndermez. Dinamik örnekleme oranı uygulamaya özeldir ve toplanan verilerin toplam hacminin sınırın altında kalmasını sağlamak için ayarlanır.
Kullanıcı oturumları, bir kullanıcının cihazından ek, ayrıntılı veriler gönderir ve verileri yakalayıp göndermek için daha fazla kaynak gerektirir. Kullanıcı oturumlarının etkisini en aza indirmek için Performance Monitoring, oturum sayısını da kısıtlayabilir.
Sunucu tarafı hız sınırlaması : Uygulamaların örnekleme sınırını aşmadığından emin olmak için Performance Monitoring, cihazlardan alınan bazı olayları bırakmak için sunucu tarafı örneklemeyi kullanabilir. Bu tür bir sınırlama, metriklerimizin etkinliğini değiştirmese de, aşağıdakiler de dahil olmak üzere küçük kalıp kaymalarına neden olabilir:
- İzleme sayısı, bir kod parçasının yürütülme sayısından farklı olabilir.
- Kodda birbirine yakından bağlı izlerin her biri farklı sayıda örneğe sahip olabilir.
Konsoldaki Sorunlar sekmesine ne oldu?
Sorunlar sekmesini, belirlediğiniz eşikler aşıldığında sizi otomatik olarak bilgilendiren Uyarılar ile değiştirdik. Artık bir eşiğin durumunu belirlemek için Firebase konsolunu manuel olarak kontrol etmeniz gerekmiyor. Uyarılar hakkında bilgi edinmek için bkz. Performans sorunları için uyarı ayarlama .
Konsoldaki Cihazda ve Ağ sekmelerine ne oldu? Bu sayfalardaki izleri nasıl görüntülerim?
Firebase konsolunun Performans İzleme bölümünü, Gösterge Tablosu sekmesinin temel ölçümlerinizi ve tüm izlerinizi tek bir alanda gösterecek şekilde yeniden tasarladık. Yeniden tasarımın bir parçası olarak Cihazda ve Ağ sayfalarını kaldırdık.
Pano sekmesinin altındaki izlemeler tablosu, Cihazda ve Ağ sekmelerinde görüntülenen bilgilerin tümüne sahiptir, ancak izlemelerinizi belirli bir ölçüm için yüzde değişikliğine göre sıralama yeteneği dahil olmak üzere bazı ek özellikler içerir. Belirli bir ize ilişkin tüm metrikleri ve verileri görüntülemek için izler tablosunda iz adına tıklayın.
İzlerinizi, iz tablosunun aşağıdaki alt sekmelerinde görüntüleyin:
- Ağ isteği izleri (hem kullanıma hazır hem de özel) — Ağ istekleri alt sekmesi
- Özel kod izleri — Özel izler alt sekmesi
- Uygulama başlatma, ön planda uygulama, arka planda uygulama izleri — Özel izler alt sekmesi
- Ekran işleme izleri — Ekran işleme alt sekmesi
- Sayfa yükleme izleri — Sayfa yükleme alt sekmesi
İz tablosu ve görüntüleme metrikleri ve verileri hakkında ayrıntılar için konsola genel bakış sayfasını ziyaret edin ( iOS+ | Android | Web ).
Yavaş ve donmuş çerçeve sayısı neden beklediğim gibi değil?
Yavaş işleme çerçeveleri ve donmuş çerçeveler, 60 Hz'lik varsayılan bir cihaz yenileme hızıyla hesaplanır. Bir cihazın yenileme hızı 60 Hz'den düşükse, saniyede daha az kare işlendiği için her kare daha yavaş bir işleme süresine sahip olacaktır. Daha yavaş işleme süreleri, daha fazla kare daha yavaş işleneceği veya donacağı için daha yavaş veya donmuş karelerin raporlanmasına neden olabilir. Ancak, bir cihazın yenileme hızı 60 Hz'den yüksekse, her kare daha hızlı bir işleme süresine sahip olacaktır. Bu, daha az yavaş veya donmuş çerçevenin raporlanmasına neden olabilir. Bu, Performance Monitoring SDK'daki geçerli bir sınırlamadır.
Daha küçük, ad alanlı Performance Monitoring JS SDK'yı ("bağımsız" SDK) web uygulamama nasıl eklerim?
If Performance Monitoring is the only Firebase product in your app, you can use the standalone Performance Monitoring SDK (and the recommended header script below) if you're interested in:
- using a namespaced library
- reducing your SDK package size
- delaying initialization of the SDK until after your page loads
To include the standalone Performance Monitoring SDK in your app and delay its initialization to after your page loads:
- Add the following script to the header of your index file.
- Make sure to add your app's Firebase project configuration object .
(function(sa,fbc){function load(f,c){var a=document.createElement('script'); a.async=1;a.src=f;var s=document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(a,s);}load(sa); window.addEventListener('load',function(){firebase.initializeApp(fbc).performance()}); })(performance_standalone, firebaseConfig);
where,
- performance_standalone is
'https://www.gstatic.com/firebasejs/9.19.0/firebase-performance-standalone.js'
- firebaseConfig is your app's Firebase config object
The above script asynchronously loads the standalone SDK then initializes Firebase after the window's
onload event fires. This tactic reduces the impact that the SDK could have on page load metrics since the browser has already reported its loading metrics when you initialize the SDK.
Learn about the standalone Performance Monitoring SDK and the header script
This standalone SDK is optimized for size; Gzipped, it's around 10kb. It has all the functionalities of Firebase Performance Monitoring along with a minimal set of the Firebase core SDK functionalities, as well.
Firebase Performance Monitoring uses
fetch and
Promise APIs which are not available on older browsers. The polyfills for these APIs are included in the standard Firebase Performance Monitoring JS SDK, but they are omitted from the standalone SDK to reduce size.
The Performance Monitoring SDK relies, in part, upon the Resource Timing API to obtain page load metrics from the browser.
The following snippet breaks down the header script that includes then delays initialization of the SDK:
(function(sdkSource, firebaseConfigObject) { function load(f, c) { // Creates a script tag to load the standalone SDK var sdkScript = document.createElement('script'); // Sets it to an async script so that it doesn't interfere with page load sdkScript.async = 1; // Sets the source of the script sdkScript.src = f; // Inserts the script into the head of the page var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sdkScript, s); } // Calls the load method load(sdkSource); // Initializes the SDK only when the onload method is called window.addEventListener('load', function() { firebase.initializeApp(firebaseConfigObject).performance(); }); })(performance_standalone, firebaseConfig);
where,
- performance_standalone is
'https://www.gstatic.com/firebasejs/9.19.0/firebase-performance-standalone.js'
- firebaseConfig is your app's Firebase config object
Near real-time data processing and display
What does "near real-time" performance data mean?
Firebase Performance Monitoring processes collected performance data as it comes in, which results in near real-time data display in the Firebase console. Processed data displays in the console within a few minutes of its collection, hence the term "near real-time".
To take advantage of near real-time data processing, make sure your app uses a real-time compatible SDK version .
How do I get near real-time performance data for my app?
To take advantage of near real-time data processing, you only need to make sure that your app uses a Performance Monitoring SDK version that's compatible with real-time data processing.
These are the real-time compatible SDK versions:
- iOS — v7.3.0 or later
- tvOS — v8.9.0 or later
- Android — v19.0.10 or later (or Firebase Android BoM v26.1.0 or later)
- Web — v7.14.0 or later
Note that we always recommend using the latest version of SDK, but any version listed above will enable Performance Monitoring to process your data in near real time.
Which versions of the Performance Monitoring SDK are considered real-time compatible?
These are the SDK versions compatible with real-time data processing:
- iOS — v7.3.0 or later
- tvOS — v8.9.0 or later
- Android — v19.0.10 or later (or Firebase Android BoM v26.1.0 or later)
- Web — v7.14.0 or later
Note that we always recommend using the latest version of SDK, but any version listed above will enable Performance Monitoring to process your data in near real time.
What if I don't update my app to use a real-time compatible SDK version?
If your app doesn't use a real-time compatible SDK version, you will still see all your app's performance data in the Firebase console. However, the display of performance data will be delayed by roughly 36 hours from the time of its collection.
I've updated to a real-time compatible SDK version, but some of my users are still on old versions of my app. Do I continue to see their performance data in the Firebase console?
Yes! Regardless of which SDK version an app instance uses, you'll see performance data from all your users.
However, if you're looking at recent data (less than roughly 36 hours old), then the displayed data is from users of app instances using a real-time compatible SDK version. The non-recent data, though, includes performance data from all versions of your app.
Contacting Firebase Support
If you reach out to Firebase Support , always include your Firebase App ID. Find your Firebase App ID in the Your apps card of your Project settings .