Metriche basate su log per la smart home

1. Prima di iniziare

Come spiegato nel codelab relativo al debug della smart home, stiamo pubblicando metriche e log nei tuoi progetti per la smart home. Le metriche ti aiutano a determinare in che punto dell'azione per la smart home si verificano problemi e i log sono utili per approfondire questi problemi.

848f483bfcd2997a.png

Oltre alle metriche disponibili per il tuo progetto, puoi anche generare metriche personalizzate utilizzando le metriche basate su log della piattaforma Google Cloud. In questo modo puoi monitorare determinati pattern all'interno dei tuoi log ed eseguire in modo efficace il debug dei problemi di qualità.

Prerequisiti

Cosa imparerai a fare

  • Come scrivere query efficaci per filtrare i log degli errori della smart home
  • Come creare metriche basate su log per generare metriche dalle query
  • Come creare grafici e dashboard da metriche basate su log per il monitoraggio

2. Utilizzo dei log

Come abbiamo brevemente trattato in Debug del codelab per la smart home, l'utilizzo dei log è fondamentale per il successo del tuo progetto. Sulla piattaforma Google Cloud sono disponibili ottimi strumenti per monitorare e analizzare i tuoi log. Per accedere a tutti i log disponibili per il tuo progetto, puoi utilizzare Esplora log.

Accesso ai log

Il primo passaggio per accedere ai log consiste nell'accedere alla piattaforma Google Cloud e scegliere il tuo progetto. Vai a Esplora log utilizzando il menu laterale, selezionando Operazioni > Logging > Esplora log. Una volta aperto lo strumento, dovresti vedere questa visualizzazione:

78982d8b6d19b827.png

Esplora log è costituito da due sezioni principali: una sezione in cui scrivere le query nella parte superiore (Query Builder) e un'area per mostrare i risultati corrispondenti (Risultati delle query).

Per impostazione predefinita, molti componenti diversi dei log di Google scrivono nel progetto. Per trovare e utilizzare i log provenienti dall'integrazione della tua smart home, devi scrivere query personalizzate.

Scrittura di query

I log vengono pubblicati nei progetti in un tipo di risorsa. Ogni tipo di risorsa rappresenta una piattaforma diversa all'interno di Google. I log provenienti dalla piattaforma per la smart home sono disponibili per il tuo progetto nel tipo di risorsa assistant_action_project.

Inoltre, a tutti i log viene assegnato un livello di gravità in fase di creazione. Con i log per la smart home, utilizziamo il livello ERROR per i log che rappresentano errori ed eccezioni e il livello DEBUG per tutto il resto.

Nell'esempio seguente scriveremo una query per filtrare i log provenienti solo dalla nostra piattaforma che rappresentano errori, come segue:

753bfe72a9f8e959.png

Dopo aver finito di scrivere la query, fai clic sul pulsante Esegui query per avviarla. Dovrebbero essere visualizzati errori derivanti dall'integrazione della smart home:

3ef42da5a6c322e1.png

Come puoi vedere, ci sono diversi errori che si sono verificati in diversi momenti nell'ultima ora. Ogni riga rappresenta un singolo log degli errori. Puoi fare un ulteriore clic sui singoli log ed espandere i campi nidificati per visualizzare le informazioni al loro interno.

Usando l'istogramma

Esplora log fornisce una funzionalità Istogramma utile per visualizzare la distribuzione temporale dei log corrispondenti alla query. Per attivare l'istogramma, fai clic su LAYOUT PAGINA dai pulsanti nell'angolo in alto a destra e seleziona Istogramma per abilitare la funzione.

10eaf1d204decf3c.png

Dopo l'abilitazione, vedrai una distribuzione dei log corrispondenti alla tua query:

dd3410e65a83cf5d.png

Come puoi vedere nell'immagine qui sopra, nell'ultima ora sono stati rilevati diversi errori sparsi. Sembrano formare tre gruppi intorno alle 13:45, 14:00 e 14:15. L'istogramma può aiutarti a rilevare pattern difficili da individuare controllando solo i valori dei timestamp.

Al momento la query che utilizziamo non fa distinzione tra i log e ci mostra tutti gli errori derivanti dall'integrazione della nostra smart home. In molti casi potrebbe essere necessario distinguere gli errori, ad esempio monitorare i pattern di errore che hanno origine da determinati tipi di dispositivi o trait. Per farlo, diamo un'occhiata alla scrittura di query avanzate.

Query avanzate

Quando esamini un log eventi per la smart home, vedrai vari campi da cui puoi raccogliere informazioni:

825c57c36800844e.png

action

  • trait: scegli come target il trait del dispositivo in base all'utente (ad esempio, OnOff, StartStop, Luminosità).
  • actionType: stato granulare del trait (ad esempio, On, Off, Metti in pausa, Interrompi, Riprendi).

device

  • deviceType: scegli come target il tipo di dispositivo in base all'utente (ad esempio Luce, Interruttore, Lavatrice)

status

  • isSuccess: indica se il risultato dell'azione è considerato positivo (vero / falso)
  • statusType: il codice di stato del risultato dell'azione (indica un codice di errore se non va a buon fine)
  • externalDebugString: stringa di debug per l'azione (descrive l'errore in modo dettagliato)

Altri campi

Esistono anche altri campi da cui puoi ricavare informazioni:

  • requestId: un ID univoco associato alla richiesta (generato da Google)
  • executionType: percorso utilizzato dalla richiesta (indica se Cloud o Local)
  • latencyMsec: latenza percepita per la richiesta sui server di Google (in msec)
  • locale: la coppia di lingua/regione da cui viene inviata la richiesta (ad es. en-US, fr-FR)

Usando il campo del trait dell'elenco precedente, modificheremo la nostra query in modo da includere solo gli errori che provengono dal trait OnOff, come segue:

resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

Dopo aver eseguito la query aggiornata, il sistema identifica i log e mostra il risultato corrispondente:

76176d7a41962341.png

Finora abbiamo eseguito tutte le query manualmente. Questo è un ottimo modo per controllare rapidamente lo stato degli errori, ma non per monitorare le variazioni dei modelli di errore nel tempo. Per automatizzare questo flusso e acquisire dati da periodi di tempo più lunghi, creeremo metriche basate su log.

3. Metriche basate su log

Per conteggiare il numero di log che corrispondono alle tue query nel tempo, puoi utilizzare le metriche basate su log. In questo modo potrai vedere i pattern e nei log e ottenere informazioni corrette sui problemi sottostanti.

Creazione di una metrica basata su log

Per creare una metrica basata su log, vai a Operazioni > Logging > Metriche basate su log. Verrà visualizzato l'elenco delle metriche basate su log già disponibili nel progetto. Dopo aver fatto clic sul pulsante CREA METRICA, verrà visualizzata la schermata di creazione della metrica basata su log:

296af6e7d8dcf6cf6cf.png

Esistono due tipi di metriche principali: una metrica contatore conteggia il numero di log corrispondenti alla query. Una metrica di distribuzione tiene traccia della distribuzione sottostante e consente operazioni statistiche come media, mediana e 95° percentile.

Scorrendo verso il basso, viene visualizzata una sezione di filtro in cui è possibile digitare la query.

f7f2093fa1bce2ac.png

Incolleremo la query della sezione precedente nell'area di testo Crea filtro.

​​resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

Puoi anche fare clic sul pulsante ANTEPRIMA LOG per visualizzare una rapida visualizzazione dei log precedenti corrispondenti al filtro. Al termine, puoi fare clic sul pulsante CREA METRICA e passare alla sezione successiva.

Visualizzazione dei dati delle metriche basate su log

Una volta creata, la metrica basata su log sarà disponibile nella sezione Metriche definite dall'utente della pagina Metriche basate su log.

1b2c88c18533fbcd.png

Dal menu corrispondente alla metrica basata su log (tre punti), seleziona Visualizza in Metrics Explorer per vedere i dati raccolti nella metrica basata su log:

54a836fdc3a666a3.png

Quando viene rilevato un nuovo errore, questo viene acquisito dalla nostra metrica basata su log e visualizzato nella finestra del grafico in Metrics Explorer.

Monitoraggio tramite dashboard personalizzate

Quando la nuova metrica basata su log funziona come previsto, è il momento di salvare questa visualizzazione del grafico in una dashboard personalizzata. A questo scopo, fai clic sul pulsante Salva grafico nell'angolo in alto a destra di Metrics Explorer. Verrà visualizzato un messaggio che ti chiede di assegnare un nome al grafico e di selezionare la dashboard in cui vuoi salvare i dati:

52329085f841782e.png

Una volta salvato il grafico in una dashboard, possiamo accedervi facilmente da lì. Per accedere all'elenco delle dashboard disponibili per il tuo progetto, vai a Operazioni > Monitoraggio > Dashboard.

44961e7cb3663341.png

Abbiamo salvato il nostro grafico in una dashboard denominata "Dashboard codelab". Quando lo apri, viene visualizzata la seguente visualizzazione:

f7e025c27f30f996.png

Come vedi, qui viene mostrato il grafico che rappresenta la metrica basata su log, insieme ai nuovi dati raccolti. I log per la smart home vengono pubblicati nel tuo progetto in tempo reale. Quando è disponibile un nuovo log, lo vedrai conteggiato immediatamente dalla metrica basata su log.

4. Complimenti

674c4f4392e98c1.png

Complimenti! Hai imparato a trasformare le tue query in metriche basate su log e salvarle in dashboard personalizzate per il monitoraggio.

Passaggi successivi

Partendo da questo codelab, prova gli esercizi seguenti ed esplora risorse aggiuntive: