Firebase Performance — τι είναι, εργαλείο παρακολούθησης και μετρήσεις

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-05-30 Χρόνος ανάγνωσης: 10 λεπ

Το Firebase Performance Monitoring είναι ένα δωρεάν εργαλείο της Google για την παρακολούθηση της απόδοσης εφαρμογών για κινητά σε πραγματικό χρόνο. Η υπηρεσία συλλέγει αυτόματα μετρήσεις χρόνου εκκίνησης, ταχύτητας απόδοσης οθονών και διάρκειας αιτημάτων HTTP, χωρίς να απαιτείται γράψιμο κώδικα για βασικά σενάρια. Σύμφωνα με τα δεδομένα του Google Firebase, 2025, το SDK παρακολουθεί αυτόματα έως 90% των αιτημάτων δικτύου χωρίς πρόσθετη ρύθμιση. Το εργαλείο είναι διαθέσιμο για Android, iOS και διαδικτυακές εφαρμογές στο πλαίσιο του οικοσυστήματος Firebase.

Βασικά σημεία

  • Firebase Performance — δωρεάν παρακολούθηση απόδοσης σε πραγματικό χρόνο για εφαρμογές για κινητά.
  • Αυτόματη παρακολούθηση συλλέγει μετρήσεις εκκίνησης, οθονών και αιτημάτων δικτύου χωρίς γράψιμο κώδικα.
  • Προσαρμοσμένα ίχνη επιτρέπουν την παρακολούθηση οποιωνδήποτε επιχειρηματικών σεναρίων — από την υποβολή παραγγελίας έως τη φόρτωση εικόνων.
  • Μετρήσεις HTTP περιλαμβάνουν χρόνο απόκρισης, μέγεθος φορτίου και κωδικό κατάστασης για κάθε αίτημα.
  • Κονσόλα Firebase παρέχει σύνοψη ανά συσκευή, έκδοση OS και περιοχή με φιλτράρισμα κατά εκατοστημόρια.

Τι είναι το Firebase Performance Monitoring;

Firebase Performance Monitoring είναι μια υπηρεσία cloud της Google που συλλέγει και εμφανίζει μετρήσεις απόδοσης εφαρμογών για κινητά. Η υπηρεσία αποτελεί μέρος της σουίτας εργαλείων Firebase και δεν απαιτεί ξεχωριστή πληρωμή — η παρακολούθηση είναι διαθέσιμη στο πλαίσιο του δωρεάν προγράμματος Spark (όριο 500.000 συμβάντων ανά ημέρα) και του επί πληρωμή Blaze. Το Firebase Performance δημιουργεί αυτόματα ίχνη για τυπικά σενάρια: cold start οθόνης, warm start, αιτήματα HTTP στο παρασκήνιο.

Η αρχιτεκτονική της υπηρεσίας βασίζεται σε δύο τύπους δεδομένων: traces (ίχνη) και metrics (μετρήσεις). Ένα ίχνος είναι ένα χρονικό διάστημα με αρχή και τέλος, εντός του οποίου μετράται η διάρκεια εκτέλεσης. Μια μέτρηση είναι μια αριθμητική τιμή: μέγεθος απόκρισης, συχνότητα σφαλμάτων, ταχύτητα σε byte/sec. Κάθε ίχνος μπορεί να περιέχει πολλαπλές μετρήσεις. Το SDK συλλέγει δεδομένα στη συσκευή, τα αποθηκεύει προσωρινά και τα στέλνει στο Firebase στο παρασκήνιο με χαμηλή προτεραιότητα καθυστέρησης για να μην επηρεάζει την εμπειρία χρήστη.

Σύμφωνα με την αναφορά του Google I/O 2024, το Firebase Performance χρησιμοποιείται σε περισσότερες από 2 εκατομμύρια εφαρμογές παγκοσμίως. Ο μέσος χρόνος ανίχνευσης ενός προβλήματος απόδοσης με το Firebase Performance είναι 15 λεπτά μετά την κυκλοφορία, εάν έχουν ρυθμιστεί ειδοποιήσεις. Χωρίς παρακολούθηση, ένα παρόμοιο πρόβλημα ανιχνεύεται κατά μέσο όρο μετά από 2-3 ημέρες βάσει παραπόνων χρηστών στην υποστήριξη.

Διαφορά από το Firebase Crashlytics

Crashlytics παρακολουθεί σφάλματα και καταστροφικά σφάλματα — καταστάσεις όπου η εφαρμογή σταματά απροσδόκητα. Το Firebase Performance παρακολουθεί την απόδοση της εκτελούμενης εφαρμογής: αργές οθόνες, μεγάλα αιτήματα δικτύου, καθυστερήσεις απόκρισης UI. Το Crashlytics απαντά στην ερώτηση “γιατί κατέρρευσε η εφαρμογή;”, ενώ το Performance στην ερώτηση “γιατί η εφαρμογή λειτουργεί αργά;”. Και οι δύο υπηρεσίες ενσωματώνονται μέσω ενός SDK (Firebase Core) και τα δεδομένα εμφανίζονται σε συναφείς ενότητες της κονσόλας Firebase.

Μετρήσεις εκατοστημορίων

Το Firebase Performance δεν εμφανίζει μέσες τιμές — μόνο εκατοστημόρια: P50, P75, P90, P95, P99. Αυτό είναι κρίσιμο για την απόδοση: ο μέσος χρόνος κρύβει ακραίες τιμές. Εάν 99 χρήστες ανοίγουν την οθόνη σε 200 ms και ένας σε 20 δευτερόλεπτα, ο μέσος όρος θα είναι ~400 ms, που φαίνεται αποδεκτός. Το P99 θα δείξει 20 δευτερόλεπτα — το πραγματικό πρόβλημα. Το Firebase εμφανίζει τα εκατοστημόρια σε χρονική κλίμακα, επιτρέποντας την παρακολούθηση παλινδρομήσεων με ακρίβεια έως μία ώρα.

Πώς λειτουργεί το Firebase Performance Monitoring

Firebase Performance SDK ενσωματώνεται στην εφαρμογή μέσω τυπικής ενσωμάτωσης: προσθήκη εξάρτησης στο Gradle (Android) ή μέσω CocoaPods (iOS). Μετά την αρχικοποίηση του Firebase στον κώδικα, το SDK ξεκινά αυτόματα τη συλλογή μετρήσεων χωρίς πρόσθετη ρύθμιση. Μια σημαντική αρχή λειτουργίας είναι η lazy collection: το SDK δεν στέλνει αμέσως τα δεδομένα, αλλά τα συσσωρεύει και τα μεταδίδει σε παρτίδες όταν οι συνθήκες δικτύου είναι ευνοϊκές.

Για iOS, το SDK χρησιμοποιεί NSURLProtocol για την υποκλοπή αιτημάτων HTTP, για Android — OkHttp Interceptor. Εάν η εφαρμογή δεν χρησιμοποιεί OkHttp, το SDK τυλίγει αυτόματα το HttpURLConnection. Τα υποκλαπέντα αιτήματα εμπλουτίζονται με μεταδεδομένα: Content-Type, κατάσταση απόκρισης, μέγεθος σε byte, διάρκεια. Όλα τα δεδομένα μεταδίδονται μέσω HTTPS στον διακομιστή Firebase με κρυπτογράφηση TLS 1.3.

Μία από τις βασικές απαιτήσεις του Firebase Performance — να είναι το τελευταίο plugin στη λίστα των Gradle plugin. Εάν η σειρά παραβιαστεί, το SDK μπορεί να μην υποκλέπτει όλα τα αιτήματα ή να μετρά εσφαλμένα τον χρόνο εκκίνησης. Η Firebase συνιστά την τοποθέτηση του plugin στο τέλος του μπλοκ plugins, μετά το Crashlytics και άλλα plugin του Google Services.

groovy
// build.gradle (Module: app) — σωστή σειρά προσθηκών
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"  // τελευταία!
}

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

Αυτόματα ίχνη: οθόνες, εκκίνηση, δίκτυο

Firebase Performance δημιουργεί τρεις τύπους αυτόματων ιχνών: screen trace (χρόνος απόδοσης οθόνης), app start trace (χρόνος εκκίνησης εφαρμογής) και network request trace (αιτήματα HTTP). Το screen trace για Android μετρά τον χρόνο μεταξύ της κλήσης Activity.onCreate και της ολοκλήρωσης απόδοσης του πρώτου καρέ. Για iOS, μετράται ο χρόνος μεταξύ viewDidLoad και viewDidAppear. Το Firebase δημιουργεί αυτόματα ένα ίχνος για κάθε οθόνη, χρησιμοποιώντας το όνομα κλάσης Activity ή ViewController.

App start trace χωρίζεται σε δύο τύπους: cold start (η εφαρμογή ξεκινά από το μηδέν, η διεργασία δεν υπήρχε) και warm start (η εφαρμογή επαναφέρεται από κατάσταση παρασκηνίου). Το cold start είναι ο πιο κρίσιμος δείκτης, καθώς περιλαμβάνει την αρχικοποίηση όλων των SDK, τη φόρτωση αρχείων DEX και τη δημιουργία του πρώτου Activity. Το Firebase μετρά το cold start από τη στιγμή εκκίνησης της διεργασίας έως την πλήρη απόδοση της πρώτης οθόνης. Σύμφωνα με τις συστάσεις της Google, το cold start δεν πρέπει να υπερβαίνει τα 500 ms για P50 και τα 2 δευτερόλεπτα για P99.

Network request trace καταγράφει αυτόματα κάθε αίτημα HTTP με μεταδεδομένα: URL, μέθοδο, κωδικό απόκρισης, μέγεθος απόκρισης, ταχύτητα μεταφοράς. Στην κονσόλα Firebase Performance, τα αιτήματα μπορούν να φιλτραριστούν κατά μοτίβο URL — για παράδειγμα, να εμφανιστούν όλα τα αιτήματα προς /api/v2/orders. Για κάθε μοτίβο, εμφανίζονται τα εκατοστημόρια χρόνου απόκρισης και η συχνότητα σφαλμάτων 4xx/5xx. Αυτό επιτρέπει την ταχεία ανίχνευση υποβάθμισης ενός συγκεκριμένου API χωρίς ρύθμιση ξεχωριστών ειδοποιήσεων.

Μετρήσεις οθονών λεπτομερώς

Για οθόνες, το Firebase Performance υπολογίζει επιπλέον τη μέτρηση “frozen frames” — καρέ που αποδόθηκαν για περισσότερο από 700 ms. Αυτά τα παγώματα UI γίνονται αντιληπτά από τον χρήστη ως “η εφαρμογή πάγωσε”. Εάν σε μια οθόνη υπάρχει περισσότερο από 1% frozen frames, το Firebase επισημαίνει τη μέτρηση ως προβληματική. Για Android, το SDK συλλέγει επιπλέον τη μέτρηση slow renders — καρέ μεγαλύτερα από 16 ms (απώλεια 60 FPS). Ο συνδυασμός screen trace και frozen frames δίνει μια πλήρη εικόνα τόσο του χρόνου φόρτωσης όσο και της ομαλότητας των κινήσεων.

Προσαρμοσμένα ίχνη για επιχειρηματικά σενάρια

Προσαρμοσμένα ίχνη επιτρέπουν τη μέτρηση της διάρκειας οποιουδήποτε σεναρίου χρήστη: υποβολή παραγγελίας, φόρτωση εικόνας στο cloud, συγχρονισμός δεδομένων. Ο προγραμματιστής υποδεικνύει ρητά την αρχή και το τέλος του ίχνους στον κώδικα και ονομάζει το σενάριο. Σε αντίθεση με τα αυτόματα ίχνη, τα προσαρμοσμένα ίχνη παρέχουν πλήρη έλεγχο του τι μετράται και επιτρέπουν την προσθήκη χαρακτηριστικών για φιλτράρισμα.

Κάθε προσαρμοσμένο ίχνος μπορεί να περιέχει χαρακτηριστικά — ζεύγη κλειδιού-τιμής που προστίθενται ως μεταδεδομένα. Τα χαρακτηριστικά βοηθούν στην τμηματοποίηση δεδομένων: για παράδειγμα, ο χρόνος υποβολής παραγγελίας μπορεί να παρακολουθηθεί ξεχωριστά για “promo_user” και “regular_user”. Το Firebase Performance υποστηρίζει έως 5 χαρακτηριστικά ανά ίχνος και έως 100 μοναδικές τιμές χαρακτηριστικού. Τα χαρακτηριστικά είναι ευρετηριασμένα και διαθέσιμα για φιλτράρισμα στην κονσόλα Firebase.

Σύμφωνα με την αναφορά του Google I/O 2024, η ομάδα του Spotify χρησιμοποιεί προσαρμοσμένα ίχνη Firebase για την παρακολούθηση του χρόνου εναλλαγής μεταξύ τραγουδιών. Αυτό επέτρεψε τη μείωση του διάμεσου χρόνου εναλλαγής από 400 ms σε 120 ms εντοπίζοντας ένα σημείο συμφόρησης στην προσωρινή αποθήκευση του buffer ήχου. Η βασική ανακάλυψη ήταν το φιλτράρισμα κατά χαρακτηριστικό “device_model” — το πρόβλημα εμφανιζόταν μόνο σε συσκευές Samsung με Android 13.

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()

        // Εκτέλεση σεναρίου υποβολής παραγγελίας
        validateCart()
        processPayment()
        confirmOrder()

        trace.stop()
    }
}

Ενσωμάτωση Firebase Performance σε έργο Android

Η ενσωμάτωση Firebase Performance στο Android απαιτεί τρία βήματα: προσθήκη του plugin google-services, σύνδεση του BOM (Bill of Materials) Firebase και προσθήκη της εξάρτησης firebase-perf. Το Firebase Performance λειτουργεί αυτόματα σε όλα τα Activity και fragment εάν χρησιμοποιούν AppCompatActivity. Για οθόνες Compose, η Firebase συνιστά τη χρήση προσαρμοσμένων ιχνών, καθώς το αυτόματο screen trace δεν υποστηρίζει άμεσα το Compose.

Μια σημαντική λεπτομέρεια: το plugin Gradle Firebase Performance τροποποιεί τον bytecode της εφαρμογής στο στάδιο της μεταγλώττισης. Το plugin προσθέτει κώδικα οργάνωσης σε κάθε Activity και πελάτη OkHttp. Αυτό μπορεί να αυξήσει τον χρόνο μεταγλώττισης κατά 5-10% και το μέγεθος APK κατά 200-400 KB. Σε debug εκδόσεις, το Firebase Performance απενεργοποιείται αυτόματα — αυτό προστατεύει από παραμόρφωση των μετρήσεων κατά την τοπική ανάπτυξη. Για εξαναγκασμένη ενεργοποίηση σε debug, χρησιμοποιείται η σημαία firebasePerformanceInstrumentationEnabled στο manifest.

Το Firebase Performance υποστηρίζει επίσης MetricKit για iOS και Perfetto για Android — ιχνηλάτες συστήματος χαμηλού επιπέδου. Το MetricKit παρέχει δεδομένα σχετικά με τον ρυθμό καρέ, την κατανάλωση CPU και μνήμης σε επίπεδο λειτουργικού συστήματος. Το Firebase συγκεντρώνει αυτά τα δεδομένα και τα εμφανίζει στην ίδια κονσόλα όπου εμφανίζονται τα ίχνη HTTP και τα screen traces, συνδυάζοντας την τηλεμετρία συστήματος και εφαρμογής σε μία διεπαφή.

Αιτήματα HTTP με OkHttp

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

Για iOS, η ενσωμάτωση Firebase Performance γίνεται μέσω CocoaPods ή Swift Package Manager. Μετά την εγκατάσταση των pod FirebasePerformance και FirebaseCore, το SDK ξεκινά αυτόματα τη συλλογή μετρήσεων. Για την υποκλοπή αιτημάτων HTTP, το Firebase Performance iOS χρησιμοποιεί NSURLProtocol — έναν μηχανισμό συστήματος που επιτρέπει την υποκλοπή όλων των φορτώσεων URL στην εφαρμογή. Το SDK καταχωρεί τη δική του υποκλάση NSURLProtocol κατά την εκκίνηση και όλα τα αιτήματα μέσω URLSession μπαίνουν αυτόματα υπό παρακολούθηση.

Περιορισμός για iOS: Το Firebase Performance δεν υποστηρίζει αυτόματο screen trace για SwiftUI. Για εφαρμογές SwiftUI, απαιτείται η μη αυτόματη δημιουργία προσαρμοσμένων ιχνών, τυλίγοντας το σώμα View σε ένα μπλοκ start/stop. Η Firebase εργάζεται για την εγγενή υποστήριξη SwiftUI, αλλά προς το παρόν το SDK παρακολουθεί αυτόματα μόνο ελεγκτές UIView. Για υβριδικές εφαρμογές UIKit + SwiftUI, συνιστάται η δημιουργία οθονών στο UIKit και η ενσωμάτωση SwiftUI μέσω UIHostingController.

Το Firebase Performance iOS παρέχει επίσης ενσωμάτωση με το MetricKit — το πλαίσιο Apple που συλλέγει διαγνωστικά δεδομένα σε επίπεδο λειτουργικού συστήματος. Το MetricKit στέλνει καθημερινές αναφορές με μετρήσεις CPU, GPU, μνήμης και ρυθμού καρέ. Το Firebase Performance συγκεντρώνει αυτές τις αναφορές και τις εμφανίζει στην κονσόλα δίπλα στα προσαρμοσμένα ίχνη, δίνοντας μια πλήρη εικόνα της απόδοσης τόσο σε επίπεδο εφαρμογής όσο και σε επίπεδο συστήματος.

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()
    }
}

Συχνές Ερωτήσεις

Είναι δωρεάν το Firebase Performance;

Ναι, το Firebase Performance είναι διαθέσιμο στο δωρεάν πρόγραμμα Spark με όριο 500.000 συμβάντων ανά ημέρα. Για έργα με μεγαλύτερο όγκο δεδομένων, χρησιμοποιείται το πρόγραμμα Blaze με πληρωμή ανά χρήση: 0,0003 δολάρια ανά 1000 συμβάντα πάνω από το όριο. Για τα περισσότερα startups και μεσαία έργα, 500.000 συμβάντα ανά ημέρα είναι περισσότερο από αρκετά.

Επηρεάζει το SDK την απόδοση της εφαρμογής;

Το Firebase Performance SDK είναι βελτιστοποιημένο για ελάχιστη επίδραση. Η αποστολή δεδομένων γίνεται σε νήμα παρασκηνίου με χαμηλή προτεραιότητα. Σύμφωνα με δοκιμές της Google, η επίδραση του SDK στον χρόνο εκκίνησης είναι μικρότερη από 1%. Το μέγεθος του SDK είναι περίπου 300 KB για Android και 250 KB για iOS.

Ποιες μετρήσεις συλλέγονται αυτόματα;

Αυτόματα συλλέγονται app start (cold/warm), screen rendering (χρόνος απόδοσης κάθε οθόνης), αιτήματα HTTP (χρόνος, μέγεθος, κατάσταση) και frozen frames. Για Android, συλλέγεται επιπλέον η συχνότητα slow renders (>16 ms) και ANR.

Πώς να απενεργοποιήσω το Firebase Performance για debug εκδόσεις;

Το Firebase Performance απενεργοποιείται αυτόματα σε λειτουργία debug. Για εξαναγκασμένο έλεγχο, χρησιμοποιείται μια σημαία στο Android manifest: firebasePerformanceInstrumentationEnabled. Για iOS, η απενεργοποίηση γίνεται μέσω της σημαίας -FIRPerformanceEnabled NO στα ορίσματα του σχήματος εκκίνησης.

Μπορούν να εξαχθούν τα δεδομένα Firebase Performance;

Ναι, το Firebase Performance υποστηρίζει εξαγωγή στο BigQuery. Αφού το έργο συνδεθεί με το BigQuery, όλες οι μετρήσεις αντιγράφονται αυτόματα σε πίνακες BigQuery, διαθέσιμες για ερωτήματα SQL και δημιουργία πινάκων ελέγχου στο Looker Studio. Η εξαγωγή ρυθμίζεται στην ενότητα Integrations της κονσόλας Firebase.

Σύνοψη

  • Firebase Performance — δωρεάν εργαλείο παρακολούθησης απόδοσης με αυτόματη παρακολούθηση οθονών και αιτημάτων HTTP.
  • Αυτόματα ίχνη καλύπτουν app start, screen rendering και αιτήματα δικτύου χωρίς ούτε μία γραμμή κώδικα.
  • Προσαρμοσμένα ίχνη με χαρακτηριστικά επιτρέπουν την παρακολούθηση οποιωνδήποτε επιχειρηματικών σεναρίων με φιλτράρισμα κατά συσκευή, έκδοση ή κατάσταση χρήστη.
  • Εκατοστημόρια P50-P99 δίνουν μια ρεαλιστική εικόνα της απόδοσης σε αντίθεση με τις μέσες τιμές.
  • Ενσωμάτωση με Firebase Crashlytics και BigQuery δημιουργεί ένα ενοποιημένο οικοσύστημα παρακολούθησης ποιότητας εφαρμογής.
  • Ελάχιστη επίδραση στην απόδοση — λιγότερο από 1% στον χρόνο εκκίνησης, έως 400 KB στο μέγεθος εφαρμογής.
  • Σύσταση: χρησιμοποιήστε το Firebase Performance σε όλα τα στάδια ανάπτυξης, συμπεριλαμβανομένης της παραγωγής, για έγκαιρη ανίχνευση παλινδρομήσεων.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης