Performance Monitoring ile ilgili sorunları giderme ve SSS
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Bu sayfada, Performance Monitoring'yı kullanmaya başlama veya Performance Monitoring özelliklerini ve araçlarını kullanma ile ilgili sorun giderme ipuçları verilmektedir.
Sorun giderme için ilk kontroller
Aşağıdaki iki kontrol, daha fazla sorun gidermeye başlamadan önce herkese önerilen genel en iyi uygulamalardır.
1. Performans olayları için günlük mesajlarını kontrol edin
Performance Monitoring SDK'sının performans olaylarını yakaladığından emin olmak için günlük mesajlarınızı kontrol edin.
Performans olaylarına ilişkin günlük mesajları nasıl görüntülenir?
Herhangi bir hata mesajı olup olmadığını görmek 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.com için bir ağ çağrısı arayın. Bu ağ çağrısının varlığı, tarayıcının performans verilerini Firebase'e gönderdiğini gösterir.
Firebase veya Performance Monitoring için bilinen bir kesinti olması durumunda Firebase Durum Kontrol Paneli'ni kontrol edin.
Performance Monitoring'ı kullanmaya başlama
Performance Monitoring
(iOS+ |
Android |
Web) ile çalışmaya başlıyorsanız aşağıdaki sorun giderme
ipuçları, Firebase'in SDK'yı algılaması veya ilk performans verilerinizi Firebase konsolunda
göstermesiyle ilgili sorunlara yardımcı olabilir.
SDK uygulamaya eklendi ancak konsolda
hala SDK'nın eklenmesi gerektiği belirtiliyor
Firebase, uygulamanızdan etkinlik bilgileri (ör. uygulama etkileşimleri) 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
kontrol panelinde "SDK algılandı" mesajı gösterilir. Ardından, 30 dakika içinde kontrol panelinde ilk işlenen veriler gösterilir.
SDK'nın en son sürümünü uygulamanıza eklemenizin üzerinden 10 dakikadan fazla zaman geçtiyse ve hâlâ herhangi bir değişiklik görmüyorsanız Performance Monitoring öğesinin etkinlikleri kaydettiğinden emin olmak için günlük mesajlarınızı kontrol edin. Gecikmeli SDK algılama mesajıyla ilgili sorunları gidermek için aşağıda açıklanan uygun sorun giderme adımlarını deneyin.
Uygulama etkinlikleri günlüğe kaydediyor: sorun giderme
adımları
Hâlâ yerel olarak geliştirme yapıyorsanı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ı sekmesinin en az 10 saniye açık kaldığından 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, settingsProje ayarlarınızdakiUygulamalarınız kartında bulabilirsiniz.
Uygulamanızdaki yapılandırma nesnesinde herhangi bir sorun varsa aşağıdakileri deneyin:
Uygulamanızda şu anda bulunan yapılandırma nesnesini silin.
Yeni bir yapılandırma nesnesi edinmek ve bunu web uygulamanıza eklemek için bu talimatları uygulayın.
SDK olayları günlüğe kaydediyorsa ve her şey doğru şekilde ayarlanmış gibi görünüyorsa ancak yine de SDK algılama mesajını veya işlenmiş verileri görmüyorsanız (2 saat sonra), Firebase Desteği ile iletişime geçin.
Uygulama etkinlikleri kaydetmiyor: sorun giderme adımları
Performance Monitoring SDK'nın uygulamanızda doğru şekilde başlatıldığından emin olun.
Performance Monitoring SDK'sının aşağıdaki işaretle devre dışı bırakılmadığından emin olun:
performance.instrumentationEnabled
Tarayıcı önbelleğe alma özelliğinizin devre dışı olduğundan emin olun. Aksi takdirde tarayıcı, yeni enstrümantasyon ayarlarını almayabilir.
Web sayfası sekmesini kapatıp yeniden açın. Tekrar oturum açmayı deneyin.
Performance Monitoring SDK'yı uygulamanıza yeni eklediyseniz SDK'nın çalışmaya başlaması için uygulamanızı tamamen yeniden başlatmanız gerekebilir.
SDK'yı başarıyla eklediyseniz ve uygulamanızda Performance Monitoring kullanıyorsanız aşağıdaki sorun giderme ipuçları, Performance Monitoring özellikleri ve araçlarıyla ilgili genel sorunlara yardımcı olabilir.
Uygulama, performans etkinliklerini günlüğe kaydetmiyor
Performance Monitoring, sayfa yüklendikten sonraki ilk 5 saniye içinde kullanıcı web sayfasını tıkladığında yalnızca ilk giriş gecikmesi metriğini kaydeder.
Uygulamanızı bu metriği ölçecek şekilde ayarladığınızdan emin olun. İlk giriş gecikmesi metriği manuel kurulum gerektirir.
Özellikle bu metrik için polyfill kütüphanesini eklemeniz gerekiyor. Yükleme talimatları için kitaplığın belgelerine bakın.
Bu polyfill kitaplığının eklenmesinin, Performance Monitoring'nin diğer web uygulaması ölçümlerini raporlaması için gerekli olmadığını unutmayın.
Performans panosunda özel izleme verileri eksik
Otomatik olarak toplanan izler için performans verilerini görüyor musunuz ancak özel kod izleri için görmüyor musunuz? Aşağıdaki sorun giderme adımlarını deneyin:
İzleme API'si aracılığıyla oluşturulan özel kod izlerinin kurulumunu, özellikle aşağıdakileri kontrol edin:
Özel kod izlemelerinin ve özel metriklerin adları aşağıdaki koşulları karşılamalıdır: başta veya sonda boşluk olmamalıdır, başta alt çizgi (_) karakteri olmamalıdır ve maksimum uzunluk 32 karakterdir.
Tüm izlerin başlatılması ve durdurulması gerekir. Başlatılmayan, durdurulmayan veya başlamadan önce durdurulan hiçbir iz kaydedilmeyecektir.
record()
yöntemini kullanıyorsanız izlemenizi açıkça başlatmanız veya durdurmanız gerekmediğini unutmayın.
Performans gösterge tablosunda ağ isteği verileri eksik
Ağ isteği verileriniz eksikse aşağıdakilere dikkat edin:
Performance Monitoring, tarayıcı API'si tarafından bildirilen ağ istekleriyle ilgili metrikleri 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 raporlanmayabileceği anlamına gelir.
Project Home'daki Performans kartındaki En Önemli Konular'a ne oldu?
Son zamanlarda kullanıma sunduğumuz uyarılar özelliğinin devamı olarak En Önemli Sorunlar bölümünü Son Uyarılar ile değiştirdik. Bu özellik, belirlediğiniz eşikler aşıldığında sizi otomatik olarak bilgilendirir. Sorunlar artık kullanımdan kaldırıldı ve bunların yerini uyarılar aldı.
Performans kartının üst kısmındaki uygulama seçici, Son Uyarılar altındaki uyarı girişlerini filtreler. Yalnızca seçilen uygulamalarla ilgili en son üç uyarı gösterilir.
Konsolda sorunlar için eşik belirleme yeteneğine ne oldu?
Performance Monitoring, tanımlanan eşikleri aşan metrikler için uyarıları destekler. Performans ölçümleri için bu yapılandırılabilir eşiklerle ilgili karışıklığı önlemek amacıyla, sorunlar için eşik yapılandırma özelliğini kaldırdık.
Firebase konsolundaki Ayrıntılar ve Metrikler bilgilerine ne oldu?
Sorun giderme yönteminizi iyileştirmek için Ayrıntılar ve Ölçümler sayfalarını yeni tasarlanmış, merkezi bir kullanıcı arayüzü (UI) ile değiştirdik. Bu yeni sorun giderme kullanıcı arayüzü, Ayrıntılar ve Ölçümler'in sunduğu aynı temel işlevselliği sunar. Sorun giderme hakkında daha fazla bilgi edinmek için Belirli bir izleme için daha fazla veri görüntüleme başlıklı makaleyi inceleyin.
Neden örnek sayısı 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 etkinlik sayısını azaltmak için veri toplamayı cihazların bir alt kümesiyle sınırlayabilir. Bu sınırlar o kadar yüksektir ki, daha az etkinlik olsa bile metrik değerleri kullanıcınızın uygulama deneyimini temsil etmeye devam eder.
Topladığımız veri hacmini yönetmek için Performance Monitoring aşağıdaki örnekleme seçeneklerini kullanır:
Cihaz üzerinde sıklık sınırlaması: Bir cihazın ani izleme dizileri göndermesini önlemek için bir cihazdan gönderilen kod ve ağ isteği izlerinin sayısını 10 dakikada 300 etkinlik ile sınırlandırırız. Bu yaklaşım, cihazı büyük miktarda performans verisi gönderebilen döngüye alınmış enstrümantasyonlardan korur ve tek bir cihazın performans ölçümlerini çarpıtmasını önler.
Dinamik örnekleme: Performance Monitoring, tüm uygulama kullanıcıları genelinde günlük olarak uygulama başına sınırlı sayıda kod izi ve ağ isteği izi toplar. Rastgele bir cihazın izleri yakalayıp göndermesi gerekip gerekmediğini belirlemek için cihazlarda dinamik bir örnekleme oranı alınır (Firebase Remote Config kullanılarak). Örnekleme için seçilmeyen bir cihaz herhangi bir olay göndermez. Dinamik örnekleme oranı uygulamaya özgüdür ve toplanan verilerin genel hacminin sınırın altında kalmasını sağlamak için ayarlanır.
Kullanıcı oturumları, kullanıcının cihazından ek, ayrıntılı veriler gönderir ve bu da verileri yakalamak ve 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ı sıklık sınırlaması: Uygulamaların örnekleme sınırını aşmaması için Performance Monitoring, cihazlardan alınan bazı etkinlikleri bırakmak üzere sunucu tarafı örnekleme 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 değişikliklerine neden olabilir:
İz sayısı, bir kod parçasının yürütülme sayısından farklı olabilir.
Kodda sıkı bir şekilde bağlı olan izlerin her birinde farklı sayıda örnek olabilir.
Konsoldaki Sorunlar sekmesine ne oldu?
Sorunlar sekmesinin yerini, belirlediğiniz eşikler aşıldığında sizi otomatik olarak bilgilendiren Uyarılar aldı. Eşiğin durumunu belirlemek için artık Firebase konsolunu manuel olarak kontrol etmeniz gerekmez. Uyarılar hakkında bilgi edinmek için Performans sorunları için uyarıları ayarlama konusuna bakın.
Konsoldaki Cihazda ve Ağ sekmelerine ne oldu?
Bu sayfalardaki izleri nasıl görüntüleyebilirim?
Firebase konsolunun Performance Monitoring bölümünü yeniden tasarladık. Böylece Kontrol Paneli sekmesinde, önemli metrikleriniz ve tüm izleriniz tek bir alanda gösteriliyor. Yeniden tasarım kapsamında Cihazda ve Ağ sayfalarını kaldırdık.
Gösterge tablosu sekmesinin alt kısmındaki izler tablosunda, Cihazda ve Ağ sekmelerinde gösterilen tüm bilgiler yer alır. Ancak bu tabloda, izlerinizi belirli bir metriğin yüzde değişimine göre sıralama özelliği de dahil olmak üzere bazı ek özellikler bulunur. Belirli bir izlemeye ait tüm metrikleri ve verileri görüntülemek için izlemeler tablosunda izleme adını tıklayın.
İzleme tablosunun aşağıdaki alt sekmelerinde izlemelerinizi 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, uygulama ön planda, uygulama arka planda izleri: Özel izler alt sekmesi
Ekran oluşturma izleri: Ekran oluşturma alt sekmesi
Sayfa yükleme izleri — Sayfa yükleme alt sekmesi
İzlemeler tablosu ve metrikleri ile verileri görüntüleme hakkında ayrıntılı bilgi için konsola genel bakış sayfasını ziyaret edin
(iOS+ |
Android |
Web).
Yavaş ve donmuş karelerin sayısı neden beklediğim gibi değil?
Yavaş oluşturma kareleri ve donmuş kareler, cihazın yenileme hızının 60 Hz olduğu varsayılarak hesaplanır. Bir cihazın yenileme hızı 60 Hz'den düşükse saniyede daha az kare oluşturulduğu için her karenin oluşturma süresi daha yavaş olur.
Daha yavaş oluşturma süreleri, daha fazla karenin yavaş oluşturulmasına veya donmasına neden olacağından daha fazla yavaş veya donmuş kare bildirilmesine neden olabilir. Ancak bir cihazın yenileme hızı 60 Hz'den yüksekse her karenin oluşturma süresi daha hızlı olur.
Bu durum, daha az sayıda yavaş veya donmuş karenin bildirilmesine neden olabilir. Bu, Performance Monitoring SDK'daki mevcut bir sınırlamadır.
Web uygulamama daha küçük, ad alanlı Performance Monitoring JS SDK'sını ("bağımsız" SDK) nasıl eklerim?
Uygulamanızda tek Firebase ürünü Performance Monitoring ise şunlarla ilgileniyorsanız bağımsız Performance Monitoring SDK'sını (ve aşağıdaki önerilen başlık komut dosyasını) kullanabilirsiniz:
ad alanına sahip bir kitaplık kullanma
SDK paket boyutunuzu azaltma
SDK'nın başlatılmasını sayfanız yüklenene kadar geciktirme
Bağımsız Performance Monitoring SDK'yı uygulamanıza eklemek ve başlatılmasını sayfanız yüklendikten sonraya ertelemek için:
Aşağıdaki komut dosyasını dizin dosyanızın başlığına ekleyin.
Yukarıdaki betik, bağımsız SDK'yı eş zamanlı olarak yükler ve ardından pencerenin onload olayı tetiklendikten sonra Firebase'ı başlatır. Bu taktik, SDK'yı başlattığınızda tarayıcının yükleme metriklerini zaten bildirmiş olması nedeniyle SDK'nın sayfa yükleme metrikleri üzerindeki etkisini azaltır.
Bağımsız Performance Monitoring SDK'sı ve başlık betiği hakkında bilgi edinin
Bu bağımsız SDK boyut için optimize edilmiştir. Gzip ile sıkıştırıldığında yaklaşık 10 KB'tır. Firebase Performance Monitoring'nın tüm işlevlerinin yanı sıra Firebase Core SDK'nın temel işlevlerinin de birçoğunu içerir.
Firebase Performance Monitoring, eski tarayıcılarda bulunmayan fetch ve Promise API'lerini kullanır. Bu API'ler için polyfill'ler standart Firebase Performance Monitoring JS SDK'sına dahildir, ancak boyutu azaltmak için bağımsız SDK'dan çıkarılmıştır.
Performance Monitoring SDK'sı, tarayıcıdan sayfa yükleme ölçümlerini elde etmek için kısmen Kaynak Zamanlaması API'sine güvenir.
Aşağıdaki snippet, SDK'nın başlatılmasını içeren ve ardından geciktiren başlık komut dosyasını ayrıntılı olarak açıklar:
(function(sdkSource,firebaseConfigObject){functionload(f,c){//CreatesascripttagtoloadthestandaloneSDKvarsdkScript=document.createElement('script');//Setsittoanasyncscriptsothatitdoesn't interfere with page loadsdkScript.async=1;//SetsthesourceofthescriptsdkScript.src=f;//Insertsthescriptintotheheadofthepagevars=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(sdkScript,s);}//Callstheloadmethodload(sdkSource);//InitializestheSDKonlywhentheonloadmethodiscalledwindow.addEventListener('load',function(){firebase.initializeApp(firebaseConfigObject).performance();});})(performance_standalone,firebaseConfig);
"Gerçek zamana yakın" performans verileri ne anlama geliyor?
Firebase Performance Monitoring, toplanan performans verilerini geldikçe işler. Bu sayede Firebase konsolunda veriler neredeyse gerçek zamanlı olarak gösterilir. İşlenen veriler, toplandıktan birkaç dakika sonra konsolda gösterilir. Bu nedenle "neredeyse gerçek zamanlı" ifadesi kullanılır.
Uygulamam için neredeyse gerçek zamanlı performans verilerini nasıl alabilirim?
Neredeyse gerçek zamanlı veri işlemeden yararlanmak için uygulamanızın gerçek zamanlı veri işleme ile uyumlu bir Performance Monitoring SDK sürümü kullandığından emin olmanız yeterlidir.
Gerçek zamanlı olarak uyumlu SDK sürümleri şunlardır:
iOS: 7.3.0 veya sonraki sürümler
tvOS: 8.9.0 veya sonraki sürümler
Android: v19.0.10 veya sonraki sürümler (ya da Firebase Android BoM v26.1.0 veya sonraki sürümler)
Web: 7.14.0 veya sonraki sürümler
Her zaman SDK'nın en son sürümünü kullanmanızı önerdiğimizi ancak yukarıda listelenen sürümlerin herhangi birinin Performance Monitoring'nın verilerinizi neredeyse gerçek zamanlı olarak işlemesini sağlayacağını unutmayın.
Performance Monitoring SDK'nın hangi sürümleri gerçek zamanlı olarak uyumlu kabul edilir?
Gerçek zamanlı veri işlemeyle uyumlu SDK sürümleri şunlardır:
iOS: 7.3.0 veya sonraki sürümler
tvOS: 8.9.0 veya sonraki sürümler
Android: v19.0.10 veya sonraki sürümler (ya da Firebase Android BoM v26.1.0 veya sonraki sürümler)
Web: 7.14.0 veya sonraki sürümler
Her zaman SDK'nın en son sürümünü kullanmanızı önerdiğimizi ancak yukarıda listelenen sürümlerin herhangi birinin Performance Monitoring'nın verilerinizi neredeyse gerçek zamanlı olarak işlemesini sağlayacağını unutmayın.
Uygulamamı gerçek zamanlı olarak uyumlu bir SDK sürümünü kullanacak şekilde güncellemezsem ne olur?
Uygulamanız gerçek zamanlı uyumlu bir SDK sürümü kullanmıyorsa uygulamanızın tüm performans verilerini Firebase konsolunda görmeye devam edersiniz. Ancak performans verilerinin gösterilmesi, toplanma zamanından yaklaşık 36 saat sonra gerçekleşir.
Gerçek zamanlı olarak uyumlu bir SDK sürümüne güncelledim ancak bazı kullanıcılarım hâlâ uygulamamın eski sürümlerini kullanıyor. Bu kullanıcıların performans verilerini Firebase konsolunda görmeye devam edecek miyim?
Evet! Bir uygulama örneğinin hangi SDK sürümünü kullandığına bakılmaksızın tüm kullanıcılarınızın performans verilerini görürsünüz.
Ancak, son verilere (yaklaşık 36 saatten daha eski) bakıyorsanız, görüntülenen veriler gerçek zamanlı uyumlu bir SDK sürümü kullanan uygulama örneklerinin kullanıcılarına aittir. Ancak son olmayan veriler, uygulamanızın tüm sürümlerine ait performans verilerini içerir.