App Performance Management(APM)
APM ne için kullanılır, bizlere ne sağlar ?
APM, dakika düzeyinde uygulama performansı izleme özellikleri sunar. APM tarafından AppGallery Connect’te toplanan uygulama performansı verilerini görüntüleyebilir ve analiz edebilirsiniz.
Uygulama içerisindeki sayfaların tepki süresi, uygulamanın ağ isteklerine verdiği cevap süreleri gibi ayrıntılı analizlerin yapılmasını sağlar. Böylelikle olası performans sorunlarını hızlı ve doğru bir şekilde düzeltmenize yardımcı olur ve kullanıcı deneyimini sürekli olarak iyileştirmenize katkı sağlar.
APM SDK;
- HTTP / HTTPS ağ istekleri hakkındaki önemli performans verilerini (Ağ isteği: yanıt süresi, başarı oranı ve yanıt boyutu gibi) otomatik olarak toplar
- Cold and warm launch modlarında uygulama başlatma süresi analizi
- Uygulama ekranı oluşturma sırasında yavaş kare ve donmuş kare sayısı
- Bunun yanında geliştirilen uygulamanın sürüm numarası, ülke / bölge, cihaz modeli, seviye-bölge, sistem sürümü, operatör ve ağ gibi uygulamanın bunlara bağlı olarak performans analizlerini de görüntüler.
APM nasıl kullanılır ?
APM SDK entegrasyonu;
1. Öncelikle App Gallery ve tüm kitlerin kullanımı için gerekli olan ilk işlemi yapıyoruz; AppGallery Connect‘te projemizi tanımlıyoruz ve ardından projemiz içerisine AppGallery Connect SDK entegrasyonunu yapıyoruz. Link üzerinden ayrıntılı bilgiye ulaşabilirsiniz.
2. APM entegrasyonu için, app-level “build.gradle” içersine aşağıdaki gibi implementasyonu yapıyoruz..
3. Aşağıdaki öğeleri, gizlenmelerini önlemek için uygulama modülünün gizleme yapılandırmasına ekleyin.
4. AndResGuard kullandıysanız, gizleme komut dosyasındaki listeye aşağıdakileri ekleyin.
5. Uygulamanız AndroidX sınıf kitaplığını kullanıyorsa , APM SDK’nın otomatik olarak AndroidX’e uyarlanması için gradle.properties dosyasına aşağıdaki yapılandırmayı ekleyin .
6. Entegrasyon işlemini tamamladınız son olarak Android studio üzerinden Build >> Rebuild Project seçerseniz ve entegrasyonlar sonrası uygulamız tekrar derlenmiş olur
APM Plug-in entegrasyonu
- APM plug-in entegrasyonu için; app-level “build.gradle” içersine aşağıdaki eklemeleri yapıyoruz.
2. APM plug-in entegrasyonu için; project-level build.gradle içersine aşağıdaki eklemeleri yapıyoruz..
Bu işlemi de tamamladıktan sonra uygulamamıza APM entegre etmiş oluyoruz. Uygulamamızı derleyelim ve çalıştıralım. Ardından Performance Monitoring ekranımızda analiz edebileceğimiz veriler oluşturmak adına uygulamayı bir süre kullanalım ve analiz edebilecek veriler oluşturalım. Daha sonra son adım olan APM performans verilerini görüntülemeye geçebiliriz.
Performance Monitoring Ekranı
AppGallery Connect SDK ve APM SDK entegre edildikten sonra, APM otomatik olarak uygulama performans verilerini toplar ve verileri veri merkezine rapor eder. Performans izleme verilerinin normal olup olmadığını AppGallery Connect’te kontrol edebilirsiniz.
APM analiz ekranını görüntüleyebilmek için; Huawei developer hesabınıza giriş yaptıktan sonra console ekranına geçiş yaparak App services >> Huawei AppGallery >> My apps ekranına gidiyoruz. Bu ekran üzerinden uygulamanızı seçtikten sonra gelen ekranın sol kısmından Develop seçilir. Ardından gelen ekrandaki develop seçenekleri arasında Quality >> APM seçilir . İlk kullanımda Enable now seçeneği seçilerek aşağıdaki gibi aktif edilmelidir.
APM’yi etkinleştirirken veri depolama konumunu ayarlamanız gerekebilir. Ardından, agconnect-services.json’daki ayar otomatik olarak buna göre güncellenir. APM’yi etkinleştirirken veri depolama konumunu ayarladıysanız, agconnect-services.json dosyasını tekrar indirmeniz ve hizmet etkinleştirildikten sonra projenize entegre etmeniz gerekir.
AppGallery içerikleri ve kitleri kullanmak için ilk aşamada yaptığımız konfigürasyonların nasıl yapıldığı ile igili link.
Enable seçtikten hemen sonra uygulamanızın performans verilerini aşağıdaki gibi görebilirsiniz. Performans verilerinin ilk kez görüntülenmesi 15 dakika gibi bir gecikmeye uğrayabilir, yada eş zamanlı olarak uygulamanız üzerinden yaptığınız görüntülemeler gelmeyebilir ama sayfayı refresh ettiğinizde performans verilerinin sorunsuz geldiğini göreceksiniz.
Eğer bahsettiğim tüm entegrasyonları harfiyen yapmanıza rağmen APM ekranınıza uygulamanızın performans verileri gelmediyse linkteki adımları takip ederek log kontrolünüzü yapabilirsiniz .
Performance Monitoring Dashboard içeriğini inceleyelim;
App launch duration
Kullanıcının uygulama simgesine dokunduğu zaman ile uygulamanın yanıt verdiği zaman arasındaki aralığı ölçer. Bir nevi uygulamanın başlatma süresini gösterir yani uygulamanın arka planda başlatıldığı zaman ile ilk sayfanın görüntülendiği süre arasındaki süreyi ölçmektedir.
Overview >> Launch duration ekranına geçildiğinde aşağıdaki gibi:
- Ortalama başlatma süresi,
- Hangi saatler arasında başlatma yapıldığı,
- Uygulama kullanımındaki başlatma hızının yüzdesi,
- Uygulama versiyonuna göre başlatma süresi
gibi analizler mevcuttur.
Aynı şekilde APM üzerinden App analysis >> App launch duration ile de aşağıdaki gibi başlatma süresi analizlerini görüntüleyebiliz.
Detay görüntülemek istediğinizde ise aşağıdaki ekran karşınıza gelicektir. Her bir grafik üzerinde hareketli imleç mevcuttur ve böylelikle grafikler üzerinde gezebilir tüm birimlerle ilgili sayısal verileri inceleyebilirsiniz.
En aşağıda gördüğünüz seçili alanda ise; sürüm numarası ülke / bölge, cihaz modeli, 1. seviye bölge, sistem sürümü, operatör ve ağ gibi detayları inceleyebilrisiniz. Sağ tarafındaki listeleme seçeneklerinden de seçebilir, ortalama süreye, %5 süresine, %95 süresine, örnek sayısına veya oturum sayısına göre sıralayabilirsiniz.
Benim uygulamam henüz 1.0 versiyonunda olduğu için karşılaştırmalı olarak göremiyoruz ama farklı versiyonları olsaydı aşağıdaki gibi bir analiz görebiir ve analiz yapabilirdik.
Native page rendering
Detayı görüntülediğimizde ise aşağıdaki ekranı göreceksiniz.
1. bölgede; Ortalama yavaş kare yüzdesi,16 ms’den daha uzun süre karelerin% 50'sinden fazlasının gösterildiği ekran örneklerinin yüzdesi. Aşağıdaki şekilde ortalama yavaş kare hızı gösterilmektedir.
2. bölgede; Aşağıdaki şekilde yavaş kare hızlarının zamana göre dağılımı gösterilmektedir. İmleci hareket ettirdiğinizde, belirtilen zaman noktasındaki yavaş kare hızı görüntülenir.
3. bölgede ise; Aşağıdaki şekilde yavaş kare hızlarının sürüme göre dağılımı gösterilmektedir. Bir sürümün çubuğunu işaret ettiğinizde, belirtilen uygulama sürümünün yavaş kare hızı görüntülenir.
Network Analysis
Bu performans verileri, bir uygulamanın sunucunuza bir ağ isteği gönderdiği süre ile sunucunuzdan gelen yanıtın tamamlandığı zaman, istek kodu, istek yükü ve yanıt yükü arasındaki süreyi içerir.
APM, OkHttp ve URLConnection çerçeveleri tarafından başlatılan HTTP / HTTPS ağ isteklerini izler ve URL kümeleme kurallarını eşleştirerek aynı tür ağ isteklerinin verilerini kümeler, ağ isteği performans trendini anlamanıza ve ağ sorunlarını zamanında tespit etmenize yardımcı olur.
Ayrıntılar sayfası İstek süresi ve Başarı oranı isteği sayfalarını içerir.
Request duration
Aşağıdaki ekran görüntüsündeki üç bölge için de açıklamalar bu şekildedir.
1. bölgede; ağ isteği sürelerinin dağılımını hem ms olarak hemde yüzde olarak gösterilmektedir.
2. bölgede; ağ isteği süresinin sürüme göre dağılımı gösterilmektedir. Yine imleç hareket ettirilerek, medyan ağ istek süresi, 5. ve 95. yüzdelerin süreleri, örnek sayısı ve oturum sayısı görüntülenir.
3. bölgede; İmleci hareket ettirdiğinizde, belirtilen zaman noktalarında ortalama ağ isteği süresi ve 5. ve 95. yüzdelerin süreleri görüntülenir.
Request success rate
1. bölgede; ortalama ağ isteği başarı oranı gösterilmektedir.
2. bölgede; ağ isteklerinin ilk 10 durum kodunun oranı gösterilmektedir.
3. bölgede; zamana göre ağ isteği başarı oranı dağılımı gösterilmektedir.
APM performans izlemeyi uygulamanızdan devre dışı bırakma işlemini ise linki takip ederek gerekleştirebilirsiniz.
APM tanımlama işlemi bu şekilde, umarım faydalı olmuştur.
Bir sonraki yazımda görüşmek üzere :)
Referanslar
App Performance Management (APM):
Ayrıntılı Grafik Analizleri:
https://developer.huawei.com/consumer/en/doc/development/AppGallery-connect-Guides/agc-apms-appstart