Monitoraggio

L'ottimizzazione delle prestazioni inizia con l'identificazione delle metriche chiave, in genere relative a latenza e throughput. L'aggiunta del monitoraggio per acquisire e monitorare queste metriche mette in evidenza i punti deboli dell'applicazione. Con le metriche, è possibile eseguire l'ottimizzazione per migliorare le metriche sul 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, potresti impostare un avviso per ricevere una notifica quando la percentuale di richieste non riuscite aumenta di più del x% rispetto ai livelli normali. Gli strumenti di monitoraggio possono aiutarti a identificare il rendimento normale e picchi insoliti 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 il nuovo codice è stato implementato in produzione.

Identificare le metriche sulla latenza

Mantieni l'interfaccia utente 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 anche per i servizi di backend, in particolare perché può portare a problemi di throughput se non viene controllata.

Le metriche suggerite da monitorare includono:

  • Durata della richiesta
  • Durata della richiesta a livello di granularità del sottosistema (ad es. chiamate API)
  • Durata job

Identificare le metriche relative al throughput

La produttività è una misura del numero totale di richieste inviate in un determinato periodo di tempo. La velocità effettiva può essere influenzata dalla latenza dei sottosistemi, pertanto potrebbe essere necessario ottimizzare la latenza per migliorare la velocità effettiva.

Ecco alcune metriche suggerite da monitorare:

  • Query al secondo
  • Dimensioni dei dati trasferiti al secondo
  • Numero di operazioni di I/O al secondo
  • Utilizzo delle risorse, ad esempio l'utilizzo della CPU o della 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 è il percentile di rendimento, ad esempio il percentile 50/75/90/99 per una metrica.

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

Monitoraggio lato server per risultati dettagliati

In genere, il profiling lato server è preferibile per il monitoraggio delle metriche. Il lato server è in genere molto più facile da misurare, consente di accedere a dati più granulari ed è meno soggetto a perturbazioni da problemi di connettività.

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

Il profilo del browser può fornire ulteriori informazioni sull'esperienza utente finale. Può mostrare le pagine con richieste lente, che puoi poi correlare al monitoraggio lato server per ulteriori analisi.

Google Analytics fornisce il monitoraggio immediato dei tempi di caricamento delle pagine nel report Tempi di caricamento pagina. In questo modo, hai a disposizione diverse visualizzazioni utili per comprendere l'esperienza utente sul tuo sito, in particolare:

  • Tempi di caricamento delle pagine
  • Tempi di caricamento del reindirizzamento
  • 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 Cloud Logging di Google Cloud per registrare le metriche sul rendimento nel tuo progetto Google Cloud, quindi configurare le dashboard in Cloud Monitoring di Google Cloud per monitorare e segmentare le metriche registrate.

Consulta la guida al logging per un esempio di logging in Google Cloud Logging da un intercettatore personalizzato nella libreria client Python. Con questi dati disponibili in Google Cloud, puoi creare metriche 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 di monitoraggio 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 is_fault per comprendere meglio i tassi di errore nella tua applicazione. Puoi estrarre il valore is_fault dai log in una nuova metrica contatore, ErrorCount.

Configurazione delle metriche

Filtri ed etichette nelle metriche

In Cloud Logging, le etichette ti consentono di raggruppare le metriche in categorie basate su altri dati nei log. Puoi configurare un'etichetta per il method campo 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 monitoraggio 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 devono essere attivati dagli avvisi. Per istruzioni su come configurare gli avvisi di Cloud Monitoring, consulta la guida agli avvisi.