Monitoraggio

L'ottimizzazione del rendimento inizia con l'identificazione delle metriche chiave, in genere correlate a latenza e velocità effettiva. L'aggiunta del monitoraggio per acquisire e monitorare queste metriche espone i punti deboli dell'applicazione. Con le metriche, l'ottimizzazione può essere intrapresa per migliorare le metriche di rendimento.

Inoltre, molti strumenti di monitoraggio ti consentono di configurare avvisi per le tue metriche, in modo da ricevere una notifica quando viene raggiunta una determinata soglia. Ad esempio, puoi configurare un avviso per ricevere una notifica quando la percentuale di richieste non riuscite aumenta di oltre il x% rispetto ai livelli normali. Gli strumenti di monitoraggio possono aiutarti a identificare l'aspetto delle prestazioni normali e a identificare picchi anomali di latenza, quantità di errori e altre metriche chiave. La possibilità di monitorare queste metriche è particolarmente importante durante i periodi di tempo critici per l'attività o dopo che è stato inserito nuovo codice in produzione.

Identificare le metriche di latenza

Assicurati che la tua UI sia il più reattiva possibile, tenendo presente che gli utenti si aspettano standard ancora più elevati dalle app mobile. La latenza deve essere misurata e monitorata per i servizi di backend, in particolare perché può causare problemi di throughput se non viene controllata.

Le metriche suggerite da monitorare includono:

  • Durata della richiesta
  • Durata della richiesta con granularità del sottosistema (ad esempio chiamate API)
  • Durata job

Identificare le metriche di velocità effettiva

Il throughput è una misura del numero totale di richieste gestite in un determinato periodo di tempo. La velocità effettiva può essere influenzata dalla latenza dei sottosistemi, pertanto potresti dover ottimizzare la latenza per migliorare la velocità effettiva.

Ecco alcune metriche suggerite da monitorare:

  • Query al secondo
  • Dimensione dei dati trasferiti al secondo
  • Numero di operazioni di I/O al secondo
  • Utilizzo delle risorse, ad esempio CPU o memoria
  • Dimensioni del backlog di elaborazione, ad esempio Pub/Sub o numero di thread

Non solo la media

Un errore comune nella misurazione del rendimento è considerare solo il caso medio. Sebbene sia utile, non fornisce informazioni sulla distribuzione della latenza. Una metrica migliore da monitorare sono i percentili di rendimento, ad esempio il 50°, il 75°, il 90° e il 99° percentile per una metrica.

In genere, l'ottimizzazione può essere eseguita in due passaggi. Innanzitutto, esegui l'ottimizzazione per la latenza del 90° percentile. Poi, considera il 99° percentile, noto anche come latenza di coda: la piccola parte di richieste che richiedono molto più tempo per essere completate.

Monitoraggio lato server per risultati dettagliati

Il profiling lato server è generalmente preferito per il monitoraggio delle metriche. L'instrumentazione lato server è in genere molto più semplice, consente l'accesso a dati più granulari ed è meno soggetta a perturbazioni dovute a problemi di connettività.

Monitoraggio del browser per la visibilità end-to-end

La profilazione del browser può fornire ulteriori informazioni sull'esperienza utente finale. Può mostrare le pagine con richieste lente, che puoi correlare al monitoraggio lato server per un'analisi più approfondita.

Google Analytics fornisce il monitoraggio predefinito dei tempi di caricamento delle pagine nel report sui tempi delle pagine. In questo modo, vengono fornite diverse visualizzazioni utili per comprendere l'esperienza utente sul tuo sito, in particolare:

  • Tempi di caricamento della pagina
  • Tempi di caricamento dei reindirizzamenti
  • Tempi di risposta del server

Monitoraggio nel cloud

Esistono molti strumenti che puoi utilizzare per acquisire e monitorare le metriche sul rendimento della tua applicazione. Ad esempio, puoi utilizzare Google Cloud Logging per registrare le metriche di rendimento nel tuo progetto Google Cloud, quindi configurare dashboard in Google Cloud Monitoring per monitorare e segmentare le metriche registrate.

Consulta la guida al logging per un esempio di logging in Google Cloud Logging da un intercettore personalizzato nella libreria client Python. Con questi dati disponibili in Google Cloud, puoi creare metriche basate sui dati registrati per ottenere visibilità sulla tua applicazione tramite Google Cloud Monitoring. Segui la guida per le metriche basate su log definite dall'utente per creare metriche utilizzando i log inviati a Google Cloud Logging.

In alternativa, puoi utilizzare le librerie del client Monitoring per definire le metriche nel codice e inviarle direttamente a Monitoring, separatamente dai log.

Esempio di metriche basate su log

Supponiamo che tu voglia monitorare il valore di is_fault per comprendere meglio i tassi di errore nella tua applicazione. Puoi estrarre il valore is_fault dai log in una nuova metrica di tipo contatore, ErrorCount.

Configurazione delle metriche

Filtri ed etichette nelle metriche

In Cloud Logging, le etichette ti consentono di raggruppare le metriche in categorie in base ad altri dati nei log. Puoi configurare un'etichetta per il campo method inviato a Cloud Logging per esaminare la suddivisione del conteggio degli errori in base al metodo dell'API Google Ads.

Con la metrica ErrorCount e l'etichetta Method configurate, puoi creare un nuovo grafico in una dashboard di Monitoring per monitorare ErrorCount, raggruppato per Method.

Dashboard ErrorCount

Avvisi

In Cloud Monitoring e in altri strumenti è possibile configurare criteri di avviso che specificano quando e come gli avvisi devono essere attivati dalle metriche. Per istruzioni sulla configurazione degli avvisi di Cloud Monitoring, consulta la guida agli avvisi.