Monitoraggio delle prestazioni delle implementazioni delle funzionalità

1. Panoramica

In questo codelab imparerai come monitorare le prestazioni della tua app durante l'implementazione di una funzionalità. La nostra app di esempio avrà funzionalità di base ed è configurata per visualizzare un'immagine di sfondo diversa basata su un flag Firebase Remote Config. Esamineremo le tracce di strumentazione per monitorare le prestazioni dell'app, implementare una modifica alla configurazione dell'app, monitorare l'effetto e vedere come possiamo migliorare le prestazioni.

Cosa imparerai

  • Come aggiungere il monitoraggio delle prestazioni di Firebase alla tua app per dispositivi mobili per ottenere metriche predefinite (come l'ora di inizio dell'app e frame lenti o bloccati)
  • Come aggiungere tracce personalizzate per comprendere i percorsi di codice critici dei percorsi utente
  • Come utilizzare la dashboard di monitoraggio delle prestazioni per comprendere le tue metriche e tenere traccia di modifiche importanti come l'implementazione di una funzionalità
  • Come configurare gli avvisi sulle prestazioni per monitorare le metriche chiave
  • Come implementare una modifica alla configurazione remota di Firebase

Prerequisiti

  • Android Studio 4.0 o versioni successive
  • Un emulatore Android con livello API 16 o superiore.
  • Java versione 8 o superiore
  • Una conoscenza di base di Firebase Remote Config

2. Impostare il progetto di esempio

Scarica il codice

Eseguire il comando seguente per clonare il codice di esempio per questo codelab. Questo creerà una cartella chiamata codelab-perf-rc-android sulla tua macchina:

$ git clone https://github.com/FirebaseExtended/codelab-feature-rollout-performance.git

Se non hai Git sulla tua macchina, puoi anche scaricare il codice direttamente da GitHub.

Importa il progetto nella cartella firebase-perf-rc-android-start in Android Studio. Probabilmente vedrai alcune eccezioni di runtime o forse un avviso relativo a un file google-services.json mancante. Lo correggeremo nella prossima sezione.

In questo codelab, utilizzerai il plug-in Firebase Assistant per registrare la tua app Android con un progetto Firebase e aggiungere i file di configurazione, i plug-in e le dipendenze Firebase necessari al tuo progetto Android, tutto da Android Studio !

Connetti la tua app a Firebase

  1. Vai su Android Studio / Guida > Controlla aggiornamenti per assicurarti di utilizzare le versioni più recenti di Android Studio e Firebase Assistant.
  2. Seleziona Strumenti > Firebase per aprire il riquadro Assistente .

c0e42ef063d21eab.png

  1. Scegli Monitoraggio delle prestazioni da aggiungere alla tua app, quindi fai clic su Inizia con il monitoraggio delle prestazioni .
  2. Fai clic su Connetti a Firebase per connettere il tuo progetto Android a Firebase (questo aprirà la console Firebase nel tuo browser) .
  3. Nella console Firebase, fai clic su Aggiungi progetto , quindi inserisci il nome di un progetto Firebase (se disponi già di un progetto Firebase, puoi invece selezionare quel progetto esistente) . Fai clic su Continua e accetta i termini per creare il progetto Firebase e una nuova app Firebase.

Successivamente dovresti vedere una finestra di dialogo per connettere la tua nuova app Firebase al tuo progetto Android Studio.

51a549ebde2fe57a.png

  1. Fare clic su Connetti .
  2. Apri Android Studio. Nel riquadro Assistente , vedrai la conferma che la tua app è connessa a Firebase.

40c24c4a56a45990.png

Aggiungi il monitoraggio delle prestazioni alla tua app

Nel riquadro Assistente in Android Studio, fai clic su Aggiungi monitoraggio delle prestazioni alla tua app .

Dovresti vedere una finestra di dialogo per accettare le modifiche dopo la quale Android Studio dovrebbe sincronizzare la tua app per garantire che tutte le dipendenze necessarie siano state aggiunte.

3046f3e1f5fea06f.png

Infine, dovresti vedere il messaggio di successo nel riquadro Assistente in Android Studio che tutte le dipendenze sono impostate correttamente.

62e79fd18780e320.png

Come passaggio aggiuntivo, abilita la registrazione del debug seguendo le istruzioni nel passaggio "(Facoltativo) Abilita la registrazione del debug". Le stesse istruzioni sono disponibili anche nella documentazione pubblica .

3. Eseguire l'app

Ora dovresti vedere il file google-services.json nella directory del modulo (a livello di app) della tua app e la tua app dovrebbe ora essere compilata. In Android Studio, fai clic su Esegui > Esegui "app" per creare ed eseguire l'app sul tuo emulatore Android.

Quando l'app è in esecuzione, dovresti prima vedere una schermata iniziale come questa:

ffbd413a6983b205.png

Quindi, dopo pochi secondi, la pagina principale con l'immagine predefinita mostrerà:

d946cab0df319e50.png

Cosa sta succedendo sotto il cofano?

La schermata iniziale è implementata in SplashScreenActivity e svolge le seguenti operazioni:

  1. In onCreate() , inizializziamo le impostazioni di Firebase Remote Config e recuperiamo i valori di configurazione che imposterai nella dashboard di Remote Config più avanti in questo codelab.
  2. In executeTasksBasedOnRC() , leggiamo il valore di configurazione del flag seasonal_image_url . Se un URL viene fornito dal valore di configurazione, scarichiamo l'immagine in modo sincrono.
  3. Una volta completato il download, l'app passa a MainActivity e chiama finish() per terminare SplashScreenActivity .

In MainActivity , se seasonal_image_url è definito tramite Remote Config, la funzione verrà abilitata e l'immagine scaricata verrà visualizzata come sfondo della pagina principale. In caso contrario, verrà visualizzata l'immagine predefinita (mostrata sopra).

4. Configurare la configurazione remota

Ora che la tua app è in esecuzione, puoi configurare il nuovo flag di funzionalità.

  1. Nel pannello di sinistra della console Firebase , individua la sezione Engage , quindi fai clic su Remote Config .
  2. Fai clic sul pulsante Crea configurazione per aprire il modulo di configurazione e aggiungi seasonal_image_url come chiave del parametro.
  3. Fai clic su Aggiungi descrizione , quindi inserisci questa descrizione: Shows a seasonal image (replaces default) in the main page when the restaurant list is empty.
  4. Fare clic su Aggiungi nuovo -> Valore condizionale -> Crea nuova condizione .
  5. Per il nome della condizione, inserisci Seasonal image rollout .
  6. Per la sezione Applies if... , seleziona User in random percentile <= 0% . (Vuoi lasciare la funzione disabilitata fino a quando non sei pronto per implementarla in un passaggio successivo.)
  7. Fai clic su Crea condizione . Utilizzerai questa condizione in un secondo momento per implementare la nuova funzionalità per i tuoi utenti.

7a07526eb9e81623.png

  1. Apri il modulo Crea il tuo primo parametro e individua il campo Value for Seasonal image rollout . Inserisci l'URL in cui verrà scaricata l'immagine stagionale: https://images.unsplash.com/photo-1552691021-7043334e0b51
  2. Lasciare il valore predefinito come stringa vuota. Ciò significa che verrà mostrata l'immagine predefinita nella base di codice anziché un'immagine scaricata da un URL.
  3. Fare clic su Salva .

99e6cd2ebcdced.png

Puoi vedere che la nuova configurazione viene creata come bozza.

  1. Fai clic su Pubblica modifiche e conferma le modifiche in alto per aggiornare la tua app.

39cd3e96d370c7ce.png

5. Aggiungere il monitoraggio per il tempo di caricamento dei dati

La tua app precarica alcuni dati prima di mostrare MainActivity e visualizza una schermata iniziale per nascondere questo processo. Non vuoi che i tuoi utenti aspettino troppo a lungo su questa schermata, quindi normalmente è utile monitorare per quanto tempo viene visualizzata la schermata iniziale.

Firebase Performance Monitoring fornisce un modo per fare proprio questo. Puoi strumentare tracce di codice personalizzate per monitorare le prestazioni di un codice specifico nella tua app, ad esempio il tempo di caricamento dei dati e il tempo di elaborazione della tua nuova funzionalità.

Per tenere traccia della durata di visualizzazione della schermata iniziale, aggiungerai una traccia di codice personalizzata a SplashScreenActivity , che è l' Activity che implementa la schermata iniziale.

  1. Inizializza, crea e avvia una traccia di codice personalizzata denominata splash_screen_trace :

SplashScreenActivity.java

// ...
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.Trace;
// ...

public class SplashScreenActivity extends AppCompatActivity {

    private static final String TAG = "SplashScreenActivity";
    private static final String SEASONAL_IMAGE_URL_RC_FLAG = "seasonal_image_url";

    // TODO: Initialize splash_screen_trace
    private final Trace splashScreenTrace = FirebasePerformance.startTrace("splash_screen_trace");
    
    // ...
}
  1. Termina la traccia nel metodo onDestroy() di SplashScreenActivity :

SplashScreenActivity.java

@Override
protected void onDestroy() {
    super.onDestroy();

    // TODO: Stop the splash_screen_trace here
    splashScreenTrace.stop();
}

Poiché la tua nuova funzione scarica ed elabora un'immagine, aggiungerai una seconda traccia di codice personalizzata che terrà traccia del tempo aggiuntivo che la tua funzione ha aggiunto a SplashScreenActivity .

  1. Inizializza, crea e avvia una traccia di codice personalizzata denominata splash_seasonal_image_processing :

SplashScreenActivity.java

private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
    String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
    Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);

    if (!seasonalImageUrl.isEmpty()) {
        // TODO: Start the splash_seasonal_image_processing here
        final Trace seasonalImageProcessingTrace = FirebasePerformance
            .startTrace("splash_seasonal_image_processing");

        // ...
    }
}
  1. Termina la traccia nei metodi onLoadFailed() e onResourceReady() di RequestListener :

SplashScreenActivity.java

Glide.with(SplashScreenActivity.this.getApplicationContext())
    .asBitmap()
    .load(seasonalImageUrl)
    .signature(new ObjectKey(Utils.getCacheUUID()))
    .listener(new RequestListener<Bitmap>() {
        @Override
        public boolean onLoadFailed(
            @Nullable GlideException e,
            Object model, Target<Bitmap> target,
            boolean isFirstResource) {

            // TODO: Stop the splash_seasonal_image_processing here
            seasonalImageProcessingTrace.stop();

            launchMainActivity();
            return true;
        }

        @Override
        public boolean onResourceReady(Bitmap resource, Object model,
            Target<Bitmap> target, DataSource dataSource,
            boolean isFirstResource) {

            // TODO: Stop the splash_seasonal_image_processing here
            seasonalImageProcessingTrace.stop();

            launchMainActivity();
            return true;
        }
     })
     .preload();

Ora che hai aggiunto tracce di codice personalizzate per tenere traccia della durata della schermata iniziale ( splash_screen_trace) e del tempo di elaborazione della nuova funzionalità ( splash_seasonal_image_processing ), esegui nuovamente l'app in Android Studio. Dovresti visualizzare un messaggio di registrazione che contiene Logging trace metric: splash_screen_trace , seguita dalla durata della traccia. Non vedrai un messaggio di log per splash_seasonal_image_processing perché non hai ancora abilitato la nuova funzione.

6. Aggiungere un attributo personalizzato alla traccia

Per le tracce del codice personalizzate, il monitoraggio delle prestazioni registra automaticamente gli attributi predefiniti (metadati comuni come versione dell'app, paese, dispositivo e così via) in modo da poter filtrare i dati per la traccia nella console Firebase . È inoltre possibile aggiungere e monitorare attributi personalizzati .

Nella tua app hai appena aggiunto due tracce di codice personalizzate per monitorare la durata della schermata iniziale e il tempo di elaborazione della nuova funzionalità. Un fattore che potrebbe influire su queste durate è se l'immagine visualizzata è l'immagine predefinita o se l'immagine deve essere scaricata da un URL. E chissà, potresti eventualmente avere URL diversi da cui scarichi un'immagine.

Quindi, aggiungiamo un attributo personalizzato che rappresenta l'URL dell'immagine stagionale a queste tracce di codice personalizzato. In questo modo, puoi filtrare i dati sulla durata in base a questi valori in un secondo momento.

  1. Aggiungi l'attributo personalizzato ( seasonal_image_url_attribute ) per splash_screen_trace all'inizio del metodo executeTasksBasedOnRC :

SplashScreenActivity.java

private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
    String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
    Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);

    // TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_screen_trace
    if (seasonalImageUrl.isEmpty()) {
        splashScreenTrace.putAttribute("seasonal_image_url_attribute", "unset");
    } else {
        splashScreenTrace.putAttribute("seasonal_image_url_attribute", seasonalImageUrl);
    }

    // ...
}
  1. Aggiungi lo stesso attributo personalizzato per splash_seasonal_image_processing subito dopo la chiamata startTrace("splash_seasonal_image_processing") :

SplashScreenActivity.java

if (!seasonalImageUrl.isEmpty()) {
    // TODO: Start the splash_seasonal_image_processing here
    final Trace seasonalImageProcessingTrace = FirebasePerformance
        .startTrace("splash_seasonal_image_processing");

    // TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_seasonal_image_processing
    seasonalImageProcessingTrace
        .putAttribute("seasonal_image_url_attribute", seasonalImageUrl);

    // ...
}

Ora che hai aggiunto un attributo personalizzato ( seasonal_image_url_attribute ) per entrambe le tracce personalizzate ( splash_screen_trace e splash_seasonal_image_processing ), esegui nuovamente l'app in Android Studio. Dovresti visualizzare un messaggio di registrazione che contiene Setting attribute 'seasonal_image_url_attribute' to 'unset' on trace 'splash_screen_trace'. Non hai ancora abilitato il parametro Remote Config seasonImageUrl motivo per cui il valore dell'attributo non è unset .

L'SDK di monitoraggio delle prestazioni raccoglierà i dati di traccia e li invierà a Firebase. Puoi visualizzare i dati nella dashboard delle prestazioni della console Firebase, che spiegheremo in dettaglio nel passaggio successivo del codelab.

7. Configura la tua dashboard di monitoraggio delle prestazioni

Configura la tua dashboard per monitorare la tua funzionalità

Nella console Firebase , seleziona il progetto con la tua app Friendly Eats.

Nel riquadro di sinistra, individua la sezione Rilascio e monitoraggio , quindi fai clic su Prestazioni .

Dovresti vedere la dashboard delle prestazioni con i tuoi primi punti dati nella scheda delle metriche! L'SDK di monitoraggio delle prestazioni raccoglie i dati sulle prestazioni dalla tua app e li visualizza entro pochi minuti dalla raccolta.

f57e5450b70034c9.png

Questa bacheca delle metriche è dove puoi tenere traccia delle metriche chiave per la tua app. La visualizzazione predefinita include la durata della traccia dell'ora di inizio dell'app, ma puoi aggiungere le metriche che ti interessano di più. Poiché stai monitorando la nuova funzionalità che hai aggiunto, puoi personalizzare la tua dashboard per visualizzare la durata della traccia del codice personalizzata splash_screen_trace .

  1. Fare clic su una delle caselle vuote Seleziona una metrica .
  2. Nella finestra di dialogo selezionare il tipo di traccia Custom traces e il nome della traccia splash_screen_trace .

1fb81f4dba3220e0.png

  1. Fai clic su Seleziona metrica e dovresti vedere la durata di splash_screen_trace aggiunta alla tua dashboard!

Puoi utilizzare questi stessi passaggi per aggiungere altre metriche che ti interessano in modo da poter vedere rapidamente come cambiano le loro prestazioni nel tempo e anche con versioni diverse.

1d465c021e58da3b.png

La bacheca delle metriche è un potente strumento per tenere traccia delle prestazioni delle metriche chiave riscontrate dai tuoi utenti. Per questo codelab, disponi di un piccolo set di dati in un intervallo di tempo ristretto, quindi utilizzerai altre visualizzazioni del dashboard che ti aiuteranno a comprendere le prestazioni dell'implementazione delle funzionalità.

8. Distribuisci la tua funzione

Ora che hai impostato il monitoraggio, sei pronto per implementare la modifica Firebase Remote Config ( seasonal_image_url) che hai impostato in precedenza.

Per implementare una modifica, tornerai alla pagina Remote Config nella console Firebase per aumentare il percentile utente della tua condizione di targeting. Normalmente, distribuiresti nuove funzionalità a una piccola parte degli utenti e le aumenteresti solo quando sei sicuro che non ci siano problemi con esso. In questo codelab, tuttavia, sei l'unico utente dell'app, quindi puoi modificare il percentile al 100%.

  1. Fare clic sulla scheda Condizioni nella parte superiore della pagina.
  2. Fai clic sulla condizione Seasonal image rollout che hai aggiunto in precedenza.
  3. Cambia il percentile al 100%.
  4. Fai clic su Salva condizione .
  5. Fai clic su Pubblica modifiche e conferma le modifiche.

70f993502b27e7a0.png

Di nuovo in Android Studio, riavvia l'app nel tuo emulatore per vedere la nuova funzionalità. Dopo la schermata iniziale, dovresti vedere la nuova schermata principale dello stato vuoto!

b0cc91b6e48fb842.png

9. Controllare i cambiamenti delle prestazioni

Ora diamo un'occhiata alle prestazioni del caricamento della schermata iniziale utilizzando la dashboard delle prestazioni nella console Firebase. In questa fase del codelab, utilizzerai diverse parti del dashboard per visualizzare i dati sulle prestazioni.

  1. Nella scheda Dashboard principale, scorri verso il basso fino alla tabella delle tracce, quindi fai clic sulla scheda Tracce personalizzate . In questa tabella, vedrai le tracce del codice personalizzato che hai aggiunto in precedenza oltre ad alcune tracce predefinite .
  2. Ora che hai abilitato la nuova funzionalità, cerca la traccia del codice personalizzato splash_seasonal_image_processing , che ha misurato il tempo impiegato per scaricare ed elaborare l'immagine. Dal valore Duration della traccia, puoi vedere che il download e l'elaborazione richiedono una notevole quantità di tempo.

439adc3ec71805b7.png

  1. Poiché disponi di dati per splash_seasonal_image_processing , puoi aggiungere la durata di questa traccia alla scheda delle metriche nella parte superiore della scheda Dashboard .

Analogamente a prima, fai clic su una delle caselle vuote Seleziona una metrica . Nella finestra di dialogo, seleziona il tipo di traccia Tracce personalizzate e il nome della traccia splash_seasonal_image_processing . Infine, fai clic su Seleziona metrica per aggiungere questa metrica alla scheda delle metriche.

7fb64d2340410576.png

  1. Per confermare ulteriormente le differenze, puoi dare un'occhiata più da vicino ai dati per splash_screen_trace . Fai clic sulla scheda splash_screen_trace nella scheda delle metriche, quindi fai clic su Visualizza dettagli metrica .

b1c275c30679062a.png

  1. Nella pagina dei dettagli, vedrai un elenco di attributi in basso a sinistra, incluso l'attributo personalizzato che hai creato in precedenza. Fai clic sull'attributo personalizzato seasonal_image_url_attribute per visualizzare la durata della schermata iniziale per ogni URL di immagine stagionale sulla destra:

8fa1a69019bb045e.png

  1. I valori della durata della schermata iniziale saranno probabilmente leggermente diversi da quelli dello screenshot sopra, ma dovresti avere una durata maggiore quando l'immagine viene scaricata da un URL rispetto all'utilizzo dell'immagine predefinita (rappresentata da "unset").

In questo codelab, il motivo di questa durata più lunga potrebbe essere semplice, ma in un'app reale potrebbe non essere così ovvio. I dati sulla durata raccolti proverranno da diversi dispositivi, che eseguono l'app in varie condizioni di connessione di rete e queste condizioni potrebbero essere peggiori delle tue aspettative. Diamo un'occhiata a come indagheresti su questo problema se si trattasse di una situazione del mondo reale.

  1. Fai clic su Prestazioni nella parte superiore della pagina per tornare alla scheda principale del Dashboard : 640b696b79d90103.png
  2. Nella tabella delle tracce nella parte inferiore della pagina, fai clic sulla scheda Richieste di rete . In questa tabella, vedrai tutte le richieste di rete dalla tua app aggregate in pattern URL , incluso il pattern URL images.unsplash.com/** . Se si confronta il valore di questo tempo di risposta con il tempo complessivo necessario per il download e l'elaborazione dell'immagine (ovvero, la durata della traccia splash_seasonal_image_processing ), è possibile vedere che gran parte del tempo viene impiegato per il download dell'immagine.

6f92ce0f23494507.png

Risultati delle prestazioni

Utilizzando Firebase Performance Monitoring, hai visto il seguente impatto sugli utenti finali con la nuova funzionalità abilitata:

  1. Il tempo trascorso su SplashScreenActivity è aumentato.
  2. La durata di splash_seasonal_image_processing è stata molto lunga.
  3. Il ritardo era dovuto al tempo di risposta per il download dell'immagine e al corrispondente tempo di elaborazione necessario per l'immagine.

Nel passaggio successivo, mitigherai l'impatto sulle prestazioni ripristinando la funzionalità e identificando come puoi migliorare l'implementazione della funzionalità.

10. Ripristina la funzione

Non è auspicabile aumentare il tempo di attesa degli utenti durante la schermata iniziale. Uno dei principali vantaggi di Remote Config è la possibilità di mettere in pausa e annullare l'implementazione senza dover rilasciare un'altra versione agli utenti. Ciò ti consente di reagire rapidamente ai problemi (come i problemi di prestazioni che hai scoperto nell'ultimo passaggio) e ridurre al minimo il numero di utenti scontenti.

Come mitigazione rapida, reimposterai il percentile di implementazione su 0 in modo che tutti i tuoi utenti vedano nuovamente l'immagine predefinita:

  1. Torna alla pagina Remote Config nella console Firebase.
  2. Fare clic su Condizioni nella parte superiore della pagina.
  3. Fai clic sulla condizione Seasonal image rollout che hai aggiunto in precedenza.
  4. Cambia il percentile in 0%.
  5. Fai clic su Salva condizione .
  6. Fai clic su Pubblica modifiche e conferma le modifiche.

18c4f1cbac955a04.png

Riavvia l'app in Android Studio e dovresti vedere la schermata principale dello stato vuoto originale:

d946cab0df319e50.png

11. Risolvi i problemi di prestazioni

Hai scoperto in precedenza nel codelab che il download di un'immagine per la tua schermata iniziale stava causando il rallentamento della tua app. Dando un'occhiata più da vicino all'immagine scaricata, vedi che stai utilizzando la risoluzione originale dell'immagine, che era superiore a 2 MB! Una soluzione rapida per il problema delle prestazioni consiste nel ridurre la qualità a una risoluzione più appropriata in modo che l'immagine impieghi meno tempo per il download.

Distribuisci nuovamente il valore Remote Config

  1. Torna alla pagina Remote Config nella console Firebase.
  2. Fai clic sull'icona Modifica per il parametro seasonal_image_url .
  3. Aggiorna il Valore per l'implementazione stagionale dell'immagine a https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 , quindi fai clic su Salva .

828dd1951a2ec4a4.png

  1. Fare clic sulla scheda Condizioni nella parte superiore della pagina.
  2. Fai clic su Implementazione stagionale dell'immagine , quindi reimposta il percentile su 100%.
  3. Fai clic su Salva condizione .

1974fa3bb789f36c.png

  1. Fare clic sul pulsante Pubblica modifiche .

12. Testare la correzione e impostare gli avvisi

Esegui l'app in locale

Con il nuovo valore di configurazione impostato per utilizzare un URL dell'immagine di download diverso, eseguire nuovamente l'app. Questa volta, dovresti notare che il tempo trascorso sulla schermata iniziale è più breve di prima.

b0cc91b6e48fb842.png

Visualizza le prestazioni delle modifiche

Torna alla dashboard delle prestazioni nella console Firebase per vedere come appaiono le metriche.

  1. Questa volta utilizzerai la tabella delle tracce per navigare nella pagina dei dettagli. In basso nella tabella delle tracce, nella scheda Tracce personalizzate , fai clic sulla traccia personalizzata splash_seasonal_image_processing per visualizzare nuovamente una visualizzazione più dettagliata della sua metrica di durata.

2d7aaca03112c062.png

  1. Fai clic sull'attributo personalizzato seasonal_image_url_attribute per visualizzare nuovamente la suddivisione degli attributi personalizzati. Se passi il mouse sopra gli URL, vedrai un valore che corrisponde al nuovo URL per l'immagine di dimensioni ridotte: https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 (con ?w=640 alla fine). Il valore della durata associato a questa immagine è notevolmente inferiore al valore dell'immagine precedente e più accettabile per i tuoi utenti!

10e30c037a4237a2.png

  1. Ora che hai migliorato le prestazioni della tua schermata iniziale, puoi impostare avvisi per avvisarti quando una traccia supera una soglia impostata. Apri la dashboard delle prestazioni e fai clic sull'icona del menu di overflow (tre puntini) per splash_screen_trace e fai clic su Impostazioni avvisi .

4bd0a2a1faa14479.png

  1. Fai clic sull'interruttore per abilitare l'avviso Durata . Imposta il valore di soglia leggermente al di sopra del valore che stavi vedendo in modo che se il tuo splash_screen_trace supera la soglia, riceverai un'e-mail.
  1. Fai clic su Salva per creare il tuo avviso. Scorri verso il basso fino alla tabella delle tracce , quindi fai clic sulla scheda Tracce personalizzate per vedere che il tuo avviso è abilitato!

2bb93639e2218d1.png

13. Congratulazioni!

Congratulazioni! Hai abilitato l'SDK Firebase Performance Monitoring e hai raccolto tracce per misurare le prestazioni di una nuova funzionalità! Hai monitorato le metriche chiave delle prestazioni per l'implementazione di una nuova funzionalità e hai reagito rapidamente quando è stato scoperto un problema di prestazioni. Tutto ciò è stato possibile grazie alla possibilità di apportare modifiche alla configurazione con Remote Config e monitorare i problemi di prestazioni in tempo reale.

Di cosa abbiamo parlato

  • Aggiunta dell'SDK Firebase Performance Monitoring alla tua app
  • Aggiunta di una traccia di codice personalizzata al codice per misurare una caratteristica specifica
  • Impostazione di un parametro Remote Config e di un valore condizionale per controllare/implementare una nuova funzionalità
  • Comprendere come utilizzare il dashboard di monitoraggio delle prestazioni per identificare i problemi durante un'implementazione
  • Impostazione di avvisi sulle prestazioni per avvisarti quando le prestazioni della tua app superano una soglia da te impostata

Saperne di più