Performans İzleme — nedir, metrikler ve veri toplama

Yazar: IT Sectr Yayınlanma: 2026-05-29 Okuma süresi: 8 dk

Performans izleme, uygulama performans metriklerini toplama ve analiz ederek yavaşlamaları, bellek sızıntılarını ve kaynakların optimal olmayan kullanımını belirlemek için sürekli bir süreçtir. Android Performance Guide, 2025'e göre, izleme, metrik sapmalarını erken aşamada tespit etmeyi ve kitlesel şikayetler başlamadan önce kullanıcı deneyiminin bozulmasını önlemeyi sağlar.

Önemli Noktalar

  • Performans izleme — uygulama kalitesini değerlendirmek için yanıt süresi, FPS, CPU ve bellek kullanımı metriklerinin toplanması ve analizi.
  • Real User Monitoring — gerçek kullanıcı cihazlarından veri toplama, farklı ağ ve donanım koşullarında gerçek deneyimi yansıtır.
  • ANR ve çökmeler — acil müdahale ve çağrı yığını analizi gerektiren kritik göstergeler.
  • Firebase Performance Monitoring — iOS ve Android'de performans metrikleri toplamak için ücretsiz araç.
  • Trace enstrümantasyonu — özel span'lar kullanarak kodun belirli bölümlerinin süresini ölçme yöntemi.

Performans izleme nedir

Performans izleme, çalışma zamanı metrikleri, bellek kullanımı, kare hızı ve enerji tüketimini toplayarak uygulama davranışını ölçme pratiğidir. Yalnızca ölümcül hataları yakalayan çökme raporlamasının aksine, performans izleme kademeli bozulmayı takip eder: uygulama çalışır ancak olması gerekenden daha yavaştır.

Google'a (2024) göre, kullanıcıların %53'ü yüklenmesi 3 saniyeden uzun süren bir uygulamayı kapatır. Ek her saniyelik gecikme, kategoriler arasında ortalama %20 dönüşüm azaltır. Bu, performans izlemeyi mobil ürünler için yalnızca teknik bir uygulama değil, bir iş zorunluluğu haline getirir.

Modern performans izleme dört seviyeyi kapsar: istemci tarafı (iOS, Android), ağ (API istekleri, WebSocket), arka uç hizmetleri ve altyapı. Mobil geliştirmede odak, istemci tarafı metriklerinedir çünkü çoğu performans sorunu kullanıcının cihazında ortaya çıkar.

Mobil uygulamanın temel metrikleri

Kapsamlı izleme için, her biri kullanıcı deneyiminin farklı bir yönünden sorumlu olan beş metrik grubu izlenmelidir. FPS (saniyedeki kare sayısı), animasyonların ve kaydırmanın akıcılığını gösterir — saniyede 30 karenin altındaki değerler, göz tarafından yavaşlama olarak algılanır.

Zaman metrikleri

Soğuk başlatma süresi — simgeye dokunma anından kullanıcı arayüzünün tamamen hazır olmasına kadar. Sıcak başlatma süresi — arka plandan dönüş. Kullanıcı eylemi yanıt süresi (dokunma-yanıt). Android'de başlatma süresi ActivityManager aracılığıyla, iOS'te — dyld ve premain süresi aracılığıyla ölçülür. Firebase Performance'a göre, ilk 100 uygulama için ortalama soğuk başlatma süresi 1,8 saniyedir.

Bellek ve CPU metrikleri

RAM tüketimi, cihazdaki kullanılabilir kapasitenin %80'ini aşmamalıdır, aksi takdirde sistem uygulamayı arka plandan kaldırmaya başlar. Bellek ayak izi, Xcode Instruments (iOS) ve Android Profiler aracılığıyla izlenir. Bellek sızıntıları, tekrarlanan işlemler sırasında tüketimin artmasıyla tespit edilir — örneğin, ekranlar arasında geçiş yapma.

Ağ metrikleri

HTTP isteği yürütme süresi, yanıt boyutu, zaman aşımı sıklığı ve hata oranı. Ağ gecikmesi, dengesiz bağlantı koşullarında (3G, metro, asansör, dolaşım) çalışan mobil uygulamalar için özellikle kritiktir. p95 yanıt süresinin izlenmesi önerilir — en kötü ağ koşullarındaki en “ağır” kullanıcıların deneyimini gösterir.

MetrikNormalKritik
Soğuk başlatma2 saniyeye kadar4 saniyeden fazla
FPS55–6030'dan az
API yanıtı500 ms'ye kadar2 saniyeden fazla
Bellek kullanımı200 MB'a kadar400 MB'dan fazla
ANR oranı%0,1'den az%0,5'ten fazla

Real User Monitoring ve Synthetic Monitoring

Real User Monitoring (RUM), üretim ortamında gerçek kullanıcı cihazlarından veri toplar. Bu yöntem, kullanıcıların cihazlarını, işletim sistemi sürümlerini, ağlarını ve coğrafi konumlarını dikkate alarak yaşadıkları gerçek gecikmeleri gösterir. RUM en doğru performans resmini sağlar ancak örneklemde hangi kullanıcıların olduğuna bağlıdır.

Synthetic Monitoring ise kontrollü koşullarda test cihazlarında önceden tanımlanmış senaryoları yürütür. Kullanıcılara ulaşmadan önce gerilemeyi tespit etmeyi ve sorunları tutarlı bir ortamda yeniden üretmeyi sağlar. Firebase Test Lab ve BrowserStack, manuel yürütme olmadan gerçek cihazlarda sentetik testler sağlar.

En uygun strateji, her iki yaklaşımın birleşimidir: sentetik testler CI aşamasında gerilemeleri yakalar, RUM ise üretimde gerçek resmi sağlar. Datadog'a (2024) göre, her iki yöntemi kullanan ekipler, olay haline gelmeden önce %35 daha fazla performans sorunu keşfeder.

Firebase Performance Monitoring kurulumu

Firebase Performance Monitoring, iOS ve Android'de performans metrikleri toplamak için Google'ın ücretsiz bir aracıdır. Kod yazmadan uygulama başlatma süresini, HTTP isteklerini ve ekran oluşturmayı otomatik olarak ölçer. Kurmak için SDK'yı projenize ekleyin ve Firebase konsolunda Performance modülünü etkinleştirin.

Otomatik metrik toplama

SDK'yı entegre ettikten sonra Firebase Performance, URLSession (iOS) veya OkHttp (Android) aracılığıyla her HTTP isteği için otomatik olarak bir trace oluşturur. Ekran oluşturma, UIViewController ve Activity için ölçülür ve onCreate/viewDidLoad'dan ilk oluşturmanın tamamlanmasına kadar geçen süreyi yakalar. Tüm metrikler Firebase konsolunda toplanır ve uygulama sürümü, cihaz ve ülkeye göre ayrıştırılır.

kotlin
import com.google.firebase.perf.FirebasePerformance
import com.google.firebase.perf.metrics.Trace

class PaymentService {
    private val firebasePerf = FirebasePerformance.getInstance()

    fun processPayment(amount: Double) {
        val trace = firebasePerf.newTrace("payment-flow")
        trace.start()
        trace.putAttribute("amount", amount.toString())
        // ödeme işlemi
        trace.stop()
    }
}

Kod, tutar özelliği ile ödeme senaryosu için özel bir trace oluşturur. Firebase konsolunda bu trace'i kullanarak, uygulama sürümü ve cihaza göre gruplandırılmış medyan ve p95 ödeme yürütme süresini görebilirsiniz.

HTTP izleme

Firebase, ağ isteklerini otomatik olarak yakalar ve URL, yanıt kodu, yük boyutu ve yürütme süresini kaydeder. Android'de OkHttp için otomatik enstrümantasyon ek yapılandırma olmadan çalışır. Ağ istekleri, uç noktaya göre gruplandırılmış olarak konsolda görüntülenir ve belirli bir API'nin yavaşlamasının hızlı bir şekilde belirlenmesine olanak tanır.

İş mantığı için özel trace'ler

Standart metrikler genel performansı kapsar, ancak iş süreçlerini teşhis etmek için belirli senaryoların enstrümente edilmesi gerekir. Özel trace'ler, kimlik doğrulama, haber akışı yükleme, görüntü işleme veya veri senkronizasyonunun yürütme süresini ölçmeye olanak tanır.

Her özel trace, “senaryo-eylem” formatında anlamlı bir isme ve filtreleme için özniteliklere sahip olmalıdır. Örneğin, “file_size” ve “compression_quality” özniteliklerine sahip bir “image-upload” trace'i, yükleme süresinin görüntü boyutuna bağımlılığını belirlemeye yardımcı olacaktır. Ekran başına 20'den fazla özel trace oluşturulmaması önerilir — aşırı enstrümantasyon gürültü yaratır ve analizi karmaşıklaştırır.

swift
import FirebasePerformance

func trackImageUpload(data: Data) {
    let trace = Performance.startTrace(name: "image-upload")
    trace?.setValue(data.count, forAttribute: "file_size")
    trace?.setValue("high", forAttribute: "compression")
    // görüntü yükleme
    trace?.stop()
}

Swift örneği, dosya boyutu ve sıkıştırma seviyesi öznitelikleri ile görüntü yükleme için bir trace oluşturur. Firebase konsolunda bu öznitelikler, metrikleri gruplama ve filtreleme için alanlar haline gelir.

Eşikler ve uyarılar

Uyarı sistemi olmadan metrik toplamak işe yaramaz. Uyarılar, metrikler kabul edilebilir sınırları aştığında ekibi bilgilendirmeli ve eşikler üç seviyeye ayrılmalıdır: uyarı, kritik ve kesinti. Her seviye bildirim kanalını belirler: uyarı — ekip Slack kanalına, kritik — nöbetçi mühendis için PagerDuty'ye, kesinti — tüm paydaşlara toplu bildirim.

Mobil metrikler için yüzdelik dilim tabanlı dinamik eşikler kullanılması önerilir: p95 soğuk başlatma süresi 4 saniyeyi aşarsa — kritik uyarı. Statik eşikler (örneğin, CPU > %90) daha az etkilidir çünkü günün saati ve haftanın gününe göre normal yük dalgalanmalarını hesaba katmazlar. Firebase Performance, Firebase Console üzerinden Slack, PagerDuty ve e-posta bildirimleri ile uyarı yapılandırmasını destekler ve onaylanmaması durumunda yükseltme seçenekleri sunar.

Olay Yönetimi Anketi'ne (2024) göre, ortalamalar yerine yüzdelik dilimlere dayalı uyarılar ayarlayan ekipler %45 daha az olayı kaçırır. Ortalama değer aykırı değerleri yumuşatır — p95, günün saati ve mevsimsel yük dalgalanmalarından bağımsız olarak kullanıcılar için en kötü senaryoyu göstermeyi garanti eder.

Sıkça sorulan sorular

Mobil uygulama performans izleme için hangi araçlar kullanılmalıdır?

Ana araçlar: Firebase Performance Monitoring (ücretsiz, temel işlevsellik), Dynatrace (kurumsal RUM), New Relic Mobile, Datadog RUM ve Instabug (mobil uygulama uzmanlığı). Seçim, bütçeye ve gereken analiz derinliğine bağlıdır.

Performans metrikleri ne sıklıkla kontrol edilmelidir?

Metrikler, 5 dakikayı geçmeyen bir gecikmeyle gerçek zamanlı olarak bir panoda toplanmalı ve görüntülenmelidir. Trend analizinin haftada bir kez yapılması önerilir. Otomatik uyarılar, insan müdahalesi olmadan eşikler aşıldığında tetiklenmelidir — kullanıcılar fark etmeden önce sorunlara yanıt vermenin tek yolu budur.

Üretim için gereken minimum metrik seti nedir?

Minimum set: soğuk başlatma süresi, FPS, ANR oranı (Android) veya watchdog sonlandırmaları (iOS), HTTP hata oranı ve bellek kullanımı. Bu, tipik bir mobil projede performans sorunlarının %80'ini tespit etmek için yeterlidir. Uygulama büyüdükçe, daha doğru teşhis için belirli ekranların ve iş senaryolarının metriklerini ekleyin.

Performans izleme uygulama boyutunu artırır mı?

Evet, performans izleme SDK'ları araca bağlı olarak uygulama boyutuna 1–3 MB ekler. Firebase Performance Monitoring yaklaşık 1,2 MB ekler. SDK'nın yalnızca test ve üretim yapılarına dahil edilmesi, hata ayıklama yapılarından çıkarılması önerilir.

İstemci tarafı sorunu ile sunucu tarafı sorunu nasıl ayırt edilir?

API yanıt bekleme süresi yüksek ancak sunucu metrikleri normalse — sorun istemci tarafındadır (cihaz ağı, DNS, TLS el sıkışması). Sunucu yüksek yük veya yavaş veritabanı sorguları gösteriyorsa — sorun arka uçtadır. Dağıtık izleme, istemci isteğini sunucu işlemesiyle ilişkilendirerek kesin bir yanıt sağlar.

Özet

  • Performans izleme — erken aşamalarda uygulama bozulmasını tespit etmek için yanıt süresi, FPS, bellek ve CPU metriklerinin sürekli toplanması.
  • Real User Monitoring gerçek kullanıcı cihazlarından veri toplar ve üretim deneyiminin en doğru resmini sağlar.
  • Synthetic Monitoring, sürümden önce gerilemeleri belirlemek için CI aşamasında kontrollü testlerle RUM'u tamamlar.
  • Firebase Performance Monitoring — HTTP metrikleri, başlatma süresi ve ekran oluşturmanın otomatik toplanmasıyla ücretsiz bir araç.
  • Özel trace'ler iş senaryolarını ölçmek için gereklidir — ödemeler, içerik yükleme, kimlik doğrulama.
  • Uyarılar ortalama değerler yerine dinamik yüzdelik dilim tabanlı eşikler (p95) kullanmalıdır.
  • RUM, sentetik testler ve dağıtık izlemenin kombinasyonu, mobil uygulama performans bozulması senaryolarının %95'ini kapsar.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun