Firebase Performance — nedir, izleme aracı ve metrikler

Yazar: IT Sectr Yayınlanma: 2026-05-30 Okuma süresi: 10 dk

Firebase Performance Monitoring, mobil uygulamaların performansını gerçek zamanlı olarak izlemek için Google'ın ücretsiz bir aracıdır. Hizmet, temel senaryolar için kod yazılmasını gerektirmeden başlangıç süresi, ekran oluşturma hızı ve HTTP istek süresi metriklerini otomatik olarak toplar. Google Firebase, 2025'e göre SDK, ek yapılandırma gerektirmeden ağ isteklerinin %90'ına kadarını otomatik olarak izler. Araç, Firebase ekosistemi dahilinde Android, iOS ve web uygulamaları için kullanılabilir.

Önemli Noktalar

  • Firebase Performance — mobil uygulamalar için ücretsiz gerçek zamanlı performans izleme.
  • Otomatik izleme kod yazmadan başlangıç, ekran ve ağ isteği metriklerini toplar.
  • Özel izlemeler sipariş tamamlama ve görsel yükleme gibi herhangi bir iş senaryosunu izlemeye olanak tanır.
  • HTTP metrikleri her istek için yanıt süresi, yük boyutu ve durum kodunu içerir.
  • Firebase Konsolu yüzdelik dilim filtrelemesi ile cihaz, işletim sistemi sürümü ve bölgeye göre özet sağlar.

Firebase Performance Monitoring nedir?

Firebase Performance Monitoring, mobil uygulamaların performans metriklerini toplayan ve görüntüleyen bir Google bulut hizmetidir. Hizmet, Firebase araç setinin bir parçasıdır ve ayrı bir ödeme gerektirmez — izleme, ücretsiz Spark katmanında (günde 500.000 olay sınırı) ve ücretli Blaze katmanında kullanılabilir. Firebase Performance, standart senaryolar için otomatik olarak izlemeler oluşturur: soğuk ekran başlatma, sıcak başlatma, arka plan HTTP istekleri.

Hizmet mimarisi iki tür veri üzerine kurulmuştur: traces (izlemeler) ve metrics (metrikler). İzleme, başlangıcı ve sonu olan, içinde yürütme süresinin ölçüldüğü bir zaman aralığıdır. Metrik sayısal bir değerdir: yanıt boyutu, hata oranı, bayt/sn cinsinden hız. Her izleme birden çok metrik içerebilir. SDK, cihazda veri toplar, arabelleğe alır ve kullanıcı deneyimini etkilememek için düşük gecikme önceliğiyle arka planda Firebase'e gönderir.

Google I/O 2024 raporuna göre Firebase Performance, dünya çapında 2 milyondan fazla uygulamada kullanılmaktadır. Uyarılar yapılandırılmışsa, Firebase Performance kullanarak bir performans sorununu tespit etme ortalama süresi yayınlandıktan sonra 15 dakikadır. İzleme olmadan, benzer bir sorun genellikle kullanıcıların desteğe şikayetleri yoluyla 2-3 gün içinde tespit edilir.

Firebase Crashlytics'ten farkı

Crashlytics, çökmeleri ve ölümcül hataları izler — uygulamanın beklenmedik şekilde sonlandığı durumlar. Firebase Performance, çalışan bir uygulamadaki performansı izler: yavaş ekranlar, uzun ağ istekleri, UI yanıt gecikmeleri. Crashlytics "uygulama neden çöktü?" sorusuna yanıt verirken, Performance "uygulama neden yavaş çalışıyor?" sorusuna yanıt verir. Her iki hizmet de tek bir SDK (Firebase Core) aracılığıyla entegre olur ve veriler Firebase konsolunun bitişik bölümlerinde görüntülenir.

Yüzdelik dilim metrikleri

Firebase Performance ortalama değerleri göstermez — yalnızca yüzdelik dilimleri gösterir: P50, P75, P90, P95, P99. Bu, performans için kritiktir: ortalama süre aykırı değerleri gizler. 99 kullanıcı bir ekranı 200 ms'de açarsa ve bir kullanıcı 20 saniyede açarsa, ortalama ~400 ms olur ve bu kabul edilebilir görünür. P99, 20 saniyeyi gösterecektir — gerçek sorun. Firebase, yüzdelik dilimleri bir zaman çizelgesinde görüntüleyerek saatlik hassasiyetle gerilemeleri izlemeye olanak tanır.

Firebase Performance Monitoring nasıl çalışır

Firebase Performance SDK, standart entegrasyon yoluyla bir uygulamaya dahil edilir: Gradle'a (Android) bağımlılık ekleme veya CocoaPods (iOS) aracılığıyla. Kodda Firebase başlatıldıktan sonra SDK, ek yapılandırma gerektirmeden otomatik olarak metrik toplamaya başlar. Önemli bir ilke tembel toplamadır: SDK verileri hemen göndermez, biriktirir ve uygun ağ koşullarında gruplar halinde iletir.

iOS için SDK, HTTP isteklerini kesmek için NSURLProtocol kullanır; Android için — OkHttp Interceptor. Uygulama OkHttp kullanmıyorsa, SDK otomatik olarak HttpURLConnection'ı sarar. Kesilen istekler meta verilerle zenginleştirilir: Content-Type, yanıt durumu, bayt cinsinden boyut, süre. Tüm veriler TLS 1.3 şifrelemesiyle HTTPS üzerinden Firebase sunucusuna iletilir.

Firebase Performance'ın temel gereksinimlerinden biri, Gradle eklenti listesinde son eklenti olmaktır. Sıra ihlal edilirse SDK tüm istekleri kesemeyebilir veya başlangıç süresini yanlış ölçebilir. Firebase, eklentinin eklenti bloğunun sonuna, Crashlytics ve diğer Google Services eklentilerinden sonra yerleştirilmesini önerir.

groovy
// build.gradle (Module: app) — doğru eklenti sırası
plugins {
    id "com.android.application"
    id "org.jetbrains.kotlin.android"
    id "com.google.gms.google-services"
    id "com.google.firebase.crashlytics"
    id "com.google.firebase.firebase-perf"  // son!
}

dependencies {
    implementation platform("com.google.firebase:firebase-bom:33.0.0")
    implementation "com.google.firebase:firebase-perf"
}

Otomatik izlemeler: ekranlar, başlangıç, ağ

Firebase Performance üç tür otomatik izleme oluşturur: screen trace (ekran oluşturma süresi), app start trace (uygulama başlangıç süresi) ve network request trace (HTTP istekleri). Android için screen trace, Activity.onCreate çağrısı ile ilk karenin oluşturulmasının tamamlanması arasındaki süreyi ölçer. iOS için viewDidLoad ve viewDidAppear arasındaki süre ölçülür. Firebase, Activity veya ViewController sınıf adını kullanarak her ekran için otomatik olarak bir izleme oluşturur.

App start trace iki türe ayrılır: soğuk başlatma (uygulama sıfırdan başlar, işlem mevcut değildi) ve sıcak başlatma (uygulama arka plan durumundan geri yüklenir). Soğuk başlatma, tüm SDK'ların başlatılmasını, DEX dosyalarının yüklenmesini ve ilk Activity'nin oluşturulmasını içerdiğinden en kritik metrikdir. Firebase, sürecin başladığı andan ilk ekranın tamamen oluşturulmasına kadar olan soğuk başlatmayı ölçer. Google tavsiyelerine göre soğuk başlatma, P50 için 500 ms'yi ve P99 için 2 saniyeyi geçmemelidir.

Network request trace, meta verilerle (URL, yöntem, yanıt kodu, yanıt boyutu, aktarım hızı) birlikte her HTTP isteğini otomatik olarak kaydeder. Firebase Performance konsolunda, istekleri URL modeline göre filtreleyebilirsiniz — örneğin, /api/v2/orders adresine yapılan tüm istekleri gösterebilirsiniz. Her model için yanıt süresi yüzdelik dilimleri ve 4xx/5xx hata oranları görüntülenir. Bu, ayrı uyarılar ayarlamadan belirli bir API'nin bozulmasını hızlı bir şekilde tespit etmeye olanak tanır.

Ekran metrikleri detaylı

Ekranlar için Firebase Performance ayrıca "frozen frames" metriğini hesaplar — oluşturulması 700 ms'den uzun süren kareler. Bu tür UI donmaları, kullanıcı tarafından "uygulama dondu" olarak algılanır. Bir ekranda %1'den fazla donmuş kare varsa, Firebase metriği sorunlu olarak işaretler. Android için SDK ayrıca yavaş oluşturma metriğini (16 ms'den uzun kareler, 60 FPS kaybı) toplar. Screen trace ve donmuş karelerin kombinasyonu, hem yükleme süresi hem de animasyon akıcılığı hakkında eksiksiz bir resim sağlar.

İş senaryoları için özel izlemeler

Özel izlemeler, herhangi bir kullanıcı senaryosunun süresini ölçmeye olanak tanır: sipariş verme, buluta resim yükleme, veri senkronizasyonu. Geliştirici, kodda izlemenin başlangıcını ve bitişini açıkça belirtir ve senaryo adını ayarlar. Otomatik izlemelerin aksine, özel izlemeler neyin ölçüleceği üzerinde tam kontrol sağlar ve filtreleme için nitelikler eklemeye olanak tanır.

Her özel izleme nitelikler içerebilir — meta veri olarak eklenen anahtar-değer çiftleri. Nitelikler verileri segmentlere ayırmaya yardımcı olur: örneğin, "promo_user" ve "regular_user" için ödeme süresini ayrı ayrı izleyebilirsiniz. Firebase Performance, izleme başına en fazla 5 nitelik ve en fazla 100 benzersiz nitelik değerini destekler. Nitelikler indekslenir ve Firebase konsolunda filtreleme için kullanılabilir.

Google I/O 2024 sunumuna göre Spotify ekibi, parça değiştirme süresini izlemek için Firebase özel izlemelerini kullanıyor. Bu, ses arabelleği önbelleğe almadaki bir darboğazı belirleyerek ortalama değiştirme süresini 400 ms'den 120 ms'ye düşürmeye yardımcı oldu. Temel içgörü, "device_model" niteliğine göre filtrelemeden geldi — sorun yalnızca Android 13'lü Samsung cihazlarda ortaya çıktı.

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

class CheckoutTracker {

    private val firebasePerf = FirebasePerformance.getInstance()

    fun trackCheckoutFlow(userId: String, promoApplied: Boolean) {
        val trace: Trace = firebasePerf.newTrace("checkout_flow")
        trace.putAttribute("promo_user", promoApplied.toString())
        trace.putAttribute("user_tier", "premium")
        trace.start()

        // Ödeme senaryosu yürütülüyor
        validateCart()
        processPayment()
        confirmOrder()

        trace.stop()
    }
}

Firebase Performance'ı Android projesine entegre etme

Firebase Performance'ı Android'e entegre etmek üç adım gerektirir: google-services eklentisini ekleme, Firebase BOM'u (Bill of Materials) bağlama ve firebase-perf bağımlılığını ekleme. Firebase Performance, AppCompatActivity kullanmaları durumunda tüm Activity'ler ve fragmentlerde otomatik olarak çalışır. Compose ekranları için Firebase, özel izlemeler kullanılmasını önerir çünkü otomatik screen trace, Compose'u doğrudan desteklemez.

Önemli bir nüans: Firebase Performance Gradle eklentisi, derleme zamanında uygulamanın bayt kodunu değiştirir. Eklenti, her Activity ve OkHttp istemcisine enstrümantasyon kodu ekler. Bu, derleme süresini %5-10 ve APK boyutunu 200-400 KB artırabilir. Hata ayıklama yapılarında Firebase Performance otomatik olarak devre dışı bırakılır — bu, yerel geliştirme sırasında metrik bozulmasını önler. Hata ayıklamada zorla etkinleştirmek için manifest dosyasında firebasePerformanceInstrumentationEnabled bayrağını kullanın.

Firebase Performance ayrıca iOS için MetricKit'i ve Android için Perfetto'yu destekler — düşük seviyeli sistem izleyicileri. MetricKit, işletim sistemi düzeyinde kare hızı, CPU ve bellek kullanımı hakkında veri sağlar. Firebase bu verileri toplar ve HTTP izlemeleri ve screen trace'lerin gösterildiği aynı konsolda görüntüleyerek sistem ve uygulama telemetrisini tek bir arayüzde birleştirir.

OkHttp ile HTTP istekleri

kotlin
import okhttp3.OkHttpClient
import com.google.firebase.perf.network.FirebasePerfOkHttpClient

val client = OkHttpClient.Builder()
    .addInterceptor FirebasePerfOkHttpClient
    .build()

val request = Request.Builder()
    .url("https://api.example.com/orders")
    .build()

client.newCall(request).enqueue(object : Callback {
    override fun onFailure(call: Call, e: IOException) { /* handle */ }
    override fun onResponse(call: Call, response: Response) { /* handle */ }
})

Firebase Performance'ı iOS projesine entegre etme

iOS için Firebase Performance entegrasyonu CocoaPods veya Swift Package Manager aracılığıyla yapılır. FirebasePerformance ve FirebaseCore pod'ları kurulduktan sonra SDK otomatik olarak metrik toplamaya başlar. HTTP isteklerini kesmek için Firebase Performance iOS, NSURLProtocol kullanır — uygulamadaki tüm URL yüklemelerini kesmeye izin veren bir sistem mekanizması. SDK, başlangıçta NSURLProtocol alt sınıfını kaydeder ve URLSession aracılığıyla yapılan tüm istekler otomatik olarak izleme altına girer.

iOS için sınırlama: Firebase Performance, SwiftUI için otomatik screen trace'i desteklemez. SwiftUI uygulamaları için, View gövdesini bir başlatma/durdurma bloğuna sararak manuel olarak özel izlemeler oluşturmanız gerekir. Firebase yerel SwiftUI desteği üzerinde çalışıyor, ancak şu anda SDK yalnızca UIView denetleyicilerini otomatik olarak izler. UIKit + SwiftUI üzerindeki hibrit uygulamalar için, UIKit'te ekranlar oluşturulması ve SwiftUI'nin UIHostingController aracılığıyla gömülmesi önerilir.

Firebase Performance iOS ayrıca MetricKit ile entegrasyon sağlar — işletim sistemi düzeyinde tanılama verileri toplayan bir Apple framework'ü. MetricKit, CPU, GPU, bellek ve kare hızı metrikleriyle günlük raporlar gönderir. Firebase Performance bu raporları toplar ve özel izlemelerin yanında konsolda görüntüleyerek hem uygulama hem de sistem düzeyinde performansın eksiksiz bir resmini sağlar.

swift
import FirebasePerformance

final class ImageUploadService {

    func uploadImage(_ data: Data, to url: URL) async throws {
        guard let trace = Performance.startTrace(name: "image_upload") else { return }
        trace?.setValue("image/jpeg", forAttribute: "content_type")
        trace?.setValue("\(data.count)", forAttribute: "file_size")

        var request = URLRequest(url: url)
        request.httpMethod = "POST"
        request.httpBody = data

        let (_, response) = try await URLSession.shared.data(for: request)
        guard let httpResponse = response as? HTTPURLResponse else { return }
        trace?.setValue("\(httpResponse.statusCode)",
                        forAttribute: "status_code")
        trace?.stop()
    }
}

Sıkça Sorulan Sorular

Firebase Performance ücretsiz mi?

Evet, Firebase Performance günde 500.000 olay sınırıyla ücretsiz Spark katmanında kullanılabilir. Büyük veri hacimli projeler için, kullandıkça öde fiyatlandırmasıyla Blaze katmanı kullanılır: sınırın üzerindeki her 1.000 olay için 0,0003 dolar. Çoğu startup ve orta ölçekli proje için günde 500.000 olay fazlasıyla yeterlidir.

SDK uygulama performansını etkiler mi?

Firebase Performance SDK, minimum etki için optimize edilmiştir. Veri gönderme, düşük öncelikli bir arka plan iş parçacığında gerçekleştirilir. Google testlerine göre SDK'nın başlatma süresi üzerindeki etkisi %1'in altındadır. SDK boyutu Android için yaklaşık 300 KB ve iOS için 250 KB'dir.

Hangi metrikler otomatik olarak toplanır?

App start (soğuk/sıcak), screen rendering (her ekranın oluşturulma süresi), HTTP istekleri (süre, boyut, durum) ve frozen frames otomatik olarak toplanır. Android için ayrıca yavaş oluşturma sıklığı (>16 ms) ve ANR de toplanır.

Hata ayıklama yapıları için Firebase Performance nasıl devre dışı bırakılır?

Firebase Performance, hata ayıklama modunda otomatik olarak devre dışı bırakılır. Zorunlu kontrol için Android manifestinde bayrağı kullanın: firebasePerformanceInstrumentationEnabled. iOS için devre dışı bırakma, başlatma şeması bağımsız değişkenlerinde -FIRPerformanceEnabled NO bayrağı aracılığıyla yapılır.

Firebase Performance verileri dışa aktarılabilir mi?

Evet, Firebase Performance BigQuery'ye dışa aktarmayı destekler. Proje BigQuery'ye bağlandıktan sonra tüm metrikler otomatik olarak BigQuery tablolarına kopyalanır ve SQL sorguları ve Looker Studio'da gösterge paneli oluşturma için kullanılabilir. Dışa aktarma, Firebase konsolunun Entegrasyonlar bölümünde yapılandırılır.

Özet

  • Firebase Performance — ekranların ve HTTP isteklerinin otomatik izlenmesiyle ücretsiz performans izleme aracı.
  • Otomatik izlemeler tek bir satır kod olmadan uygulama başlatma, ekran oluşturma ve ağ isteklerini kapsar.
  • Özel izlemeler niteliklerle cihaz, sürüm veya kullanıcı durumuna göre filtreleme ile herhangi bir iş senaryosunu izlemeye olanak tanır.
  • Yüzdelik dilimler P50-P99, ortalama değerlerin aksine gerçek performans resmini sağlar.
  • Entegrasyon Firebase Crashlytics ve BigQuery ile birleşik bir uygulama kalitesi izleme ekosistemi oluşturur.
  • Performans üzerinde minimum etki — başlatma süresinde %1'den az, uygulama boyutunda 400 KB'a kadar.
  • Öneri: gerilemelerin erken tespiti için geliştirmenin tüm aşamalarında, üretim dahil, Firebase Performance kullanın.

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