Uygulama Performans Yönetimi (APM)
APM nedir ?
Uygulama Performans Yönetimi (APM) genel olarak, erişilebilirlik ve performans açısından yazılımları izleme ve yönetme, özellikle kritik uygulamalara erişimde kesintilere neden olan sorunları algılama gibi özelliklerle web ve bulut hizmetleri için önemli hizmetler sağlar.
APM özellikleri ve Temel İşlevler
APM, kullanıcılarının karşılaştığı sorunlarla kolaylıkla başa çıkabileceği bazı özelliklere sahiptir;
- Otomatik olarak önemli uygulama performans verilerini toplama,
- Keşif modelleme ve görüntüleme,
- Bir uygulama bağlamında derinlemesine izleme,
- Veri analizi,
- Keşif modelleme ve Kullanıcı tanımlı işlem profili oluşturma.
APM’nin Çalışma Prensibi
HUAWEI AppGallery Connect’in Uygulama Performans Yönetimi (APM), dakika düzeyinde uygulama performansı izleme yetenekleri sağlar. Uygulamaların çevrimiçi performansını gerçek zamanlı olarak kapsamlı bir şekilde anlamak için APM tarafından toplanan uygulama performansı verilerini görüntüleyebilir ve analiz edebilir, böylece uygulama performans sorunlarını hızlı ve doğru bir şekilde düzeltebilir ve kullanıcı deneyimini sürekli olarak iyileştirebilirsiniz.
HMS ile APM Nasıl Kullanılır?
AppGallery Connect SDK’yı entegre etme
APM SDK’yı entegre etmeden önce, uygulamanızın AppGallery Connect SDK ve AppGallery Connect eklentisiyle entegre edildiğinden emin olun. Ayrıntılar için lütfen Android’e Başlarken sayfasına bakın.
APM SDK’yı entegre etme
1- Geliştirme ortamında, app-level APM SDK bağımlılığı olan build.gradle dosyasına ihtiyacımız var.
2- Lütfen aşağıdaki öğeleri uygulama düzeyinde gizleme yapılandırmalarına ekleyin:
3- AndResGuard kullanıyorsanız, şaşırtmayı önlemek için aşağıdakileri güven listesine ekleyin:
4- Uygulamanız AndroidX sınıf kitaplığını kullanıyorsa, aşağıdaki yapılandırmayı gradle.properties dosyasına eklemelisiniz, bu şekilde APM AndroidX’e otomatik olarak adapte olacaktır.
APM Eklentisini Entegre Etme
1- Build.gradle dosyasının uygulama düzeyinde APM eklentisine eklenmesi gerekir.
2- APM eklentisini proje düzeyindeki build.gradle dosyasına ekleyin.
Entegrasyon işlemi tamamlandıktan sonra aşağıdaki tablo adımı ile uygulamayı tekrar deryelebilirsiniz.
Tüm adımlar tamamlandıktan sonra APM için Entegrasyon işlemi sonlandırılır. Bir sonraki adım olarak verilerimizi performans izleme ekranında analiz edeceğiz.Son olarak sonuçları görüntüleyerek APM performans verilerini inceleyebiliriz.
Uygulama performans yönetimi nasıl etkinleştirilir ?
Şimdi, uygulama performans yönetimini adım adım nasıl etkinleştireceğinizi öğreneceksiniz.
1- Öncelikle, Huawei Geliştirici hesabınızla oturum açtıktan sonra, App Services →Huawei AppGallery → My apps kaydırarak devam edin.
2- Bu ekranda kendi uygulamanızı seçin, ardından sol alt tarafta Quality →APM aşağıdaki gibi göreceksiniz.
3- Son olarak aşağıdaki tabloda gösterildiği gibi “Enable” butonuna tıklanarak aktif hale getirilmelidir.
Not: APM’yi etkinleştirirken, depolama konumunu belirlemeniz gerekir. Agconnect-services.json’daki bu konfigürasyondan sonra buna göre otomatik olarak 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.
Aşağıdaki tabloda, uygulama performans verilerinin düzgün görüntülenip görüntülenmediğini kontrol edebilirsiniz, ancak 15 dakikalık bir gecikme olabilir.
Verileri aynı anda görüntüleyemeyebilirsiniz, bu nedenle sayfanızı sürekli yenileyin.
Sayfa verileri yanlış gösteriyorsa veya sayfa uzun bir süre boş görünüyorsa, lütfen “Hata Ayıklama Günlüklerini Görüntüleme” sayfasını kontrol edin.
Uygulama Performans Verilerini Görüntüleme ve Analiz Etme
App launch duration
Bu bölümde, uygulamanın arka planda başlatıldığı zaman ile ilk sayfanın görüntülendiği zaman arasındaki süreyi öğreneceksiniz.
Bu işlev, uygulama başlatma süresini izler, böylece uygulama başlatma performansını zamanında anlayabilirsiniz. Gösterge olarak uygulama başlatma süresini kullanır ve uygulama başlatma süresinin genel dağılımını görüntülemek için uygulama başlatma süresinin yüzde değerini hesaplar.
Aşağıdaki tabloda,App analysis →App launch duration →View Details” e tıklayarak bununla ilgili daha fazla bilgiye ulaşabilir veya aynı şemayı Overview →Launch Duration(Indicator Overview) →Details adımlarını takip ederek görüntüleyebilirsiniz.
Sonuç olarak, Overview →Launch duration ekranını takip ederken şunlar hakkında inceleme yapacaksınız;
- Ortalama olarak hangi saatler arasında uygulamaya başlandığı,
- Uygulama kullanımında başlatma hızının yüzdesi,
- Uygulama sürüm analizlerine göre başlangıç saatine göre mevcuttur,
- Ortalama başlangıç zamanı
Aşağıdaki tabloda, App analysis →App launch duration →View Details e tıkladığınızda, farklı boyutlardaki yavaş kare hızları (sürüm numarası, ülke / bölge, cihaz modeli, seviye-1 bölge, sistem sürümü, operatör ve Boyutlar yavaş kare hızına, örnek sayısına veya oturum sayısına göre sıralanabilir.İstatistikler sürüme göre toplandığında, grafik tüm sürümlerin yavaş kare hızlarını gösterir.
Ayrıca sağ tarafta bulunan “View Sessions” ye tıklarken aşağıdaki tabloya geleceksiniz.
Uygulama başlama saati, ne kadar süre gerekli olduğu, bu süre içinde hangi akıllı telefon modelinin kullanıldığı, hangi ülkeden bağlantı, Ağın kullanıldığı gibi bilgilere ulaşabilirsiniz.
Ek olarak, grafikte gezinebilmeniz ve tüm birimlerle ilgili sayısal verileri inceleyebilmeniz için grafik üzerinde animasyonlu imleç bulunmaktadır.
Son olarak, “Operation” sütunu altında “View Details” yi tıklarsanız, aşağıdaki tabloda “Session List” sayfasını göreceksiniz. Bu bölümde de şu bilgileri edinebilirsiniz;
- CPU kullanım süresi,
- Hafıza kullanımı,
- Cihazla ilgili bilgiler,
- Ağ verileri
Background ve Foreground Activity Performans Verileri
Arka plan etkinlik süresi: Bir uygulama arka plana geçmeden önce son etkinliğin onStop() yöntemini çağırmasından, ilk etkinliğin uygulama ön plana geçtikten sonra onResume() yöntemini çağırmasına kadar geçen süre.
Ön plan etkinlik süresi: Bir uygulama başlatıldıktan veya ön plana geçtikten sonra ilk etkinliğin onResume() yöntemini çağırdığı zamandan, uygulama arka plana geçmeden önceki son etkinliğin onStop() yöntemini çağırmasına kadar geçen süre.
Aşağıdaki tabloya Overview →App Analysis → App foreground or background activity takip ederek ulaşabilirsiniz.
1- Sol üstte, ön plan etkinlik süresi dağılımını gösterir. İmleci hareket ettirdiğinizde, belirtilen ön uç etkinlik süresi ve yüzdelik dilim görüntülenir.
2- Sağ üstte, zamana göre ön plan etkinlik süresi dağılımını gösterir. İmleci hareket ettirdiğinizde, belirtilen zaman noktalarında medyan ön uç aktivite süresi ve 5. ve 95. yüzdelik dilimlerin süreleri görüntülenir.
3- Sol altta, sürüme göre ön plan etkinlik süresi dağılımını gösterir. Bir sürümün bir çubuğunu işaret ettiğinizde, medyan ön uç etkinlik süresi ve 5. ve 95. yüzdelik dilimler, örnek sayısı ve oturum sayısı görüntülenir.
Network Analysis
Performans verileri, bir uygulamanın sunucunuza bir ağ isteği gönderdiği zaman ile sunucunuzdan yanıtın tamamlandığı zaman, istek durum kodu, istek yükü ve yanıt yükü arasındaki süreyi içerir.
Ağ Talep Göstergesi Tanımı
URL: ağ istek URL’si.
İstek sayısı: bir istek URL’sinin çağrılma sayısı.
İstek süresi: Bir uygulamanın bir istek gönderdiği zaman ile uygulamanın sunucudan bir yanıt aldığı zaman arasındaki aralık.
Başarı oranı: durum kodu 2xx veya 3xx olan isteklerin toplam istek sayısına oranı.
İstek yükleme boyutu: Bir uygulamaya yüklemek için ağ yükünün bayt sayısı.
Yanıt yükleme boyutu: Bir uygulamada indirilecek ağ yükünün bayt sayısı.
Overview →Network Analysis adımlarını takip ederek aşağıdaki sayfaya ulaşabilirsiniz.
Yukarıdaki tabloda APM, OkHttp, URLConnection ve ApacheHttpClient 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 eğilimini anlamanıza ve ağ sorunlarını tespit etmenize yardımcı olur.
Ağ talebini görüntülemek için lütfen “operation” sütununun altındaki “View details” e tıklayın. Ayrıntılar sayfası, Request duration ve Request success rate sekme sayfalarını içerir.
Request duration
1- Sol üstteki şekil ağ istek sürelerinin dağılımını göstermektedir. İmleci hareket ettirdiğinizde, belirtilen ağ talebi süresinin yüzdelik dilimi görüntülenir. Örneğin, medyan ağ isteği süresi 1,6 saniyedir ve bu, ağ isteği sürelerinin% 50'sinin 1,6 saniyeden az veya buna eşit olduğunu gösterir.
2- Sağ üstteki şekil ağ talebi süresinin versiyona göre dağılımını göstermektedir. Bir sürümün bir çubuğunu işaret ettiğinizde, medyan ağ talebi süresi ve 5. ve 95. yüzdelik dilimler, örnek sayısı ve oturum sayısı görüntülenir.
3- Sol alttaki şekil ağ talebi süresinin versiyona göre dağılımını göstermektedir. Bir sürümün bir çubuğunu işaret ettiğinizde, medyan ağ talebi süresi ve 5. ve 95. yüzdelik dilimler, örnek sayısı ve oturum sayısı görüntülenir.
Request Success Rate
Aşağıdaki şema; İstek başarı oranı sayfasını açıklar;
1- Sol üstte, Ortalama ağ isteği başarı oranı, yani % 100.
2- Sağ üstte, ağ isteklerinin ilk 10 durum kodu oranı, 200 kodunun yanıt oranı % 100'dür.
3- Sol altta, ağ zamana göre başarı oranı dağılımı talep ediyor. 5 Ekim 08: 00'daki ağ isteği başarı oranı % 100'dür.
4- Sağ altta, ağ versiyona göre başarı oranı dağılımı talep ediyor. Bir sürüm çubuğuna işaret ettiğinizde, ilgili sürümün ağ isteği başarı oranı görüntülenir. Şekilde, sürüm 1.0 verilerinin ağ isteği başarı oranı% 100'dür.
Viewing ANR Data
ANR, bir Android uygulamasının UI iş parçacığının çok uzun süre engellendiği, “Application Not Responding” (ANR) hatası tetiklenen bir mekanizmadır. Bu durumda APM hizmeti, bir ANR meydana geldiğinde temel anahtar bilgileri kaydeder.
Uygulama ön plandaysa, sistem kullanıcıya tıpkı açılır menü gibi bir iletişim kutusu görüntüler ve kullanıcıya uygulamadan çıkmaya zorlama fırsatı verir.
Uygulama ANR Göstergeleri
Oluşumlar: ANR sorununun belirli bir zaman aralığında oluşma zamanı.
Etkilenen kullanıcılar: Belirli bir zaman aralığında ANR sorunlarından etkilenen kullanıcıların sayısı.
ANR’den etkilenen kullanıcı oranı: Belirli bir zaman aralığı ve kullanıcı oranı içindeki toplam uygulama kullanıcısı sayısı.
ANR’den etkilenen kullanıcı oranı eğilimi: Belirli bir zaman aralığı içinde ANR oluşumlarının uygulama başlatma zamanlarına oranı, yani tek bir uygulama başlatma sırasında ANR sorununun ortaya çıkma olasılığı.
Yukarıdaki genel ANR analizi ekranında, burada ANR ile ilgili tüm veri bilgilerini bulabilirsiniz;
- Oluşumlar,
- Etkilenen kullanıcılar,
- ANR’den etkilenen kullanıcı oranı,
- ANR’den etkilenen kullanıcı oranı eğilimi
Sayfanın sol üst köşesinde, özellikle kırmızı bölge alanıyla birlikte “Top 5 problems in last 24 hours” verilerini göreceksiniz.
ANR-affected user rate trend‘inde dilerseniz sağdaki sekmeyi filtreleyerek detaylı olarak inceleyebilirsiniz;
- By time,
- By app version,
- By OS version,
- By device model
Sayfanın en alt kısmında, “Problems (by affected user rate)” altında, etkilenen kullanıcılar hakkında bazı verileri aşağıdaki şekilde bulabilirsiniz;
- Affected users in last 24 hours,
- Affected user rate in last 24 hours,
- Occurences,
- Affected users,
- First occured & last occured time
“Operation” sekmesinin altındaki “View details” ye tıkladığınızda. Grafiksel olarak daha detaylı analiz etme fırsatı bulacaksınız.
Sayfanın altında “records”bölümünü göreceksiniz. Bu bölümde şu çeşitli verileri inceleyebileceksiniz.
- ID,
- First occured,
- App version,
- OS version,
- Device Model,
- Operation
“Operation” sekmesinde “View details” e tıklarken bu sefer muazzam bir veri sayfasıyla karşılaşacak ve ayrıntılı olarak şunları öğreneceksiniz;
- Device information,
- System information,
- App information
Bunların dışında, Ek olarak bu sayfa görüntülenir;
- Main thread steak info,
- Other thread steak info,
- System logs,
- ANR info
Bir ANR sorunu oluştuğunda, çeşitli bilgileri kapsamlı bir şekilde anlamanıza yardımcı olur.
Buna ek olarak APM, kayıt dışa aktarma işlevi sağlar. Karşılaştırma ve analiz için sayfadaki tüm bilgileri dışa aktarmak için “Export” düğmesine tıklayabilirsiniz.
Bu bağlantı ile uygulamanızda APM’yi nasıl devre dışı bırakacağınızı öğrenebilirsiniz.
APM konusu hakkında araştırırken kendim oluşturduğum bazı SSS’ler.
SSS
S: APM, kullanıcının akıllı telefon bilgilerini (sistem sürümü, Model, Bellek, Taşıyıcı, İşletim Sistemi sürümü, CPU modeli vb.) Göstermeyi sağlıyor mu?
C: Evet, APM bunu mümkün kılıyor.
S: APM, CPU kullanım süresi, sistem ve kullanıcı tarafından ne kadar CPU kullanıldığını destekliyor mu?
C: Evet, APM hem sistem hem de kullanıcı için CPU kullanım süresi hakkında bilgi sağlar.
S: APM aktif olarak çalışırken ne kadar bellek kullanıldığını kullanıcı görebilir mi?
C: Evet, kullanıcı bellek kullanımını anında görüntüleyebilir.
S: Kullanıcılar, APM kullanarak cihazlarında çalıştırdıkları uygulamanın ön planda ve arka planda ne kadar süreyle çalıştığı hakkında bilgi alabilir mi?
C: Elbette, Arka Plan-Ön Plan etkinlik süresi, kullanıcıya başlangıç zamanı ve toplam süre olarak gösterilir.
S: APM SDK hangi çerçeveleri destekler ve ağ istek izleme için fayda sağlar?
C: Bağlantılı URLConnection ve OkHttp çerçeveleri aracılığıyla başlangıç-bitiş zamanı, bağlantı için gerekli süre, Durum kodu, İstek yükü, yanıt yükü, indirme hızı vb. Ayrıntılı olarak kullanıcıyla paylaşılır.
S: APM SDK yalnızca Android uygulamalarını mı destekliyor?
C: APM SDK; HTML5 Sayfa Analizi, iOS platformu, web sistemi, Ağ korsanlığı analizi ve Android platformu gibi birden çok platformu destekler.
S: Ya ağ verileri yanıt vermiyorsa, ana sorunun nerede olduğunu nasıl kontrol edebilirim?
C: APM’nin ana sorunun çözümü için sunduğu ANR analizi bölümünde, bu durumdan etkilenen kullanıcı sayıları, oranları ve grafiksel olarak detaylı bilgiler tarafımıza verilmektedir. Uygulama otomatik olarak ANR’yi tetikler ve bir cevap alamaması durumunda, saklanan sistem günlük dosyaları ve ANR bilgileriyle sorunun tespit edilmesini sağlar.
Bu yazının sizin için çok faydalı olacağını umuyorum, bir sonraki yazımda görüşmek üzere, hoşçakalın…
Referanslar