Metriche basate su log per la smart home

1. Prima di iniziare

Come abbiamo spiegato nel codelab Debug della smart home, pubblichiamo metriche e log nei tuoi progetti per la smart home. Le metriche ti aiutano a determinare dove si verificano problemi con la tua Azione per la smart home, mentre i log sono utili per approfondire la risoluzione di questi problemi.

848f483bfcd2997a.png

Oltre alle metriche che rendiamo disponibili per il tuo progetto, puoi anche generare le tue metriche utilizzando le metriche basate su log di Google Cloud. In questo modo puoi monitorare determinati pattern all'interno dei log e risolvere in modo efficace i problemi di qualità.

Prerequisiti

Obiettivi didattici

  • 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 dalle metriche basate su log per il monitoraggio

2. Utilizzo dei log

Come abbiamo brevemente trattato nel Codelab per il debug di Smart Home, lavorare con i log è fondamentale per la riuscita del tuo progetto. Su Google Cloud sono disponibili strumenti eccellenti per monitorare e analizzare i log. Per accedere a tutti i log disponibili per il tuo progetto, puoi utilizzare Esplora log.

Accedere ai log

Il primo passo per accedere ai log è accedere a Google Cloud e scegliere il progetto. Vai a Esplora log utilizzando il menu laterale, andando su Operations > Logging > Esplora log. Una volta aperto lo strumento, dovresti visualizzare questa schermata:

78982d8b6d19b827.png

Esplora log è composto da due sezioni principali: una sezione in alto per scrivere le query (Generatore di query) e un'area per mostrare i risultati corrispondenti (Risultati delle query).

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

Scrittura di query

I log vengono pubblicati nei progetti in base a un tipo di risorsa. Ogni tipo di risorsa rappresenta una piattaforma diversa all'interno di Google. I log provenienti dalla piattaforma 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à al momento della creazione. Con i log di Smart Home utilizziamo il livello ERROR per i log che rappresentano errori ed eccezioni e il livello DEBUG per tutto il resto.

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

753bfe72a9f8e959.png

Una volta terminata la scrittura della query, fai clic sul pulsante Esegui query per avviarla. Dovrebbero essere visualizzati gli errori relativi all'integrazione della smart home:

3ef42da5a6c322e1.png

Come vedi, abbiamo una serie di errori che si sono verificati in vari momenti dell'ultima ora. Ogni riga rappresenta un singolo log degli errori. Puoi fare clic sui singoli log ed espandere i campi nidificati per visualizzare le informazioni contenute.

Utilizzo dell'istogramma

Esplora log fornisce una funzionalità di 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 attivare la funzionalità.

10eaf1d204decf3c.png

Una volta attivata, vedrai una distribuzione dei log corrispondenti alla tua query:

dd3410e65a83cf5d.png

Come puoi vedere nell'immagine sopra, abbiamo diversi errori raggruppati in modo sparso nell'ultima ora. Sembrano formare tre cluster intorno alle 13:45, alle 14:00 e alle 14:15. L'istogramma può aiutarti a rilevare pattern difficili da individuare controllando solo i valori del timestamp.

Al momento, la query che utilizziamo non distingue tra i log e mostra tutti gli errori provenienti dalla nostra integrazione della smart home. In molti casi, potresti voler distinguere tra gli errori, ad esempio per monitorare i pattern di errore provenienti da determinati tipi o caratteristiche di dispositivi. Per farlo, esamineremo la scrittura di query avanzate.

Query avanzate

Quando esamini un log eventi di Smart Home, vedrai che ci sono vari campi da cui puoi raccogliere informazioni:

825c57c36800844e.png

action

  • trait: Caratteristica del dispositivo di destinazione dell'utente (ad esempio OnOff, StartStop, Brightness)
  • actionType: stato granulare del tratto (ad esempio On, Off, Pause, Stop, Resume)

device

  • deviceType: Tipo di dispositivo di destinazione dell'utente (ad esempio, luce, interruttore, lavatrice)

status

  • isSuccess: indica se il risultato dell'azione è considerato riuscito (true / false)
  • statusType: codice di stato del risultato dell'azione (indica un codice di errore in caso di esito negativo)
  • externalDebugString: stringa di debug per l'azione (descrive l'errore in dettaglio)

Altri campi

Sono disponibili anche campi aggiuntivi da cui puoi ricavare informazioni:

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

Utilizzando il campo dell'attributo dell'elenco precedente, modificheremo la query in modo da includere solo gli errori provenienti dall'attributo OnOff nel seguente modo:

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. È un ottimo modo per controllare rapidamente lo stato degli errori, ma non per monitorare le variazioni dei pattern di errore nel tempo. Per automatizzare questo flusso e acquisire dati per periodi di tempo più lunghi, creeremo metriche basate sui 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 visualizzare i pattern nei log e ottenere informazioni utili 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 tuo progetto. Dopo aver fatto clic sul pulsante CREA METRICA, viene visualizzata la schermata di creazione delle metriche basate sui log:

296af6e7d8dcf6cf.png

Esistono due tipi principali di metriche: una metrica contatore conteggia il numero di log che corrispondono 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, vedrai una sezione di filtri in cui puoi 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 rapidamente i log passati che corrispondono al filtro. Al termine, puoi fare clic sul pulsante CREA METRICA e passare alla sezione successiva.

Visualizzazione dei dati delle metriche basate su log

Ora che la metrica basata su log è stata creata, 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 puntini), seleziona Visualizza in Esplora metriche per visualizzare i dati raccolti nella metrica basata su log:

54a836fdc3a666a3.png

Quando si verifica un nuovo errore, questo viene acquisito dalla nostra metrica basata sui log e visualizzato nella finestra del grafico in Esplora metriche.

Monitoraggio tramite dashboard personalizzate

Una volta verificato che la nuova metrica basata sui log funziona come previsto, è il momento di salvare questa visualizzazione del grafico in una dashboard personalizzata. Per farlo, fai clic sul pulsante Salva grafico nell'angolo in alto a destra di Esplora metriche. Verrà visualizzato un prompt per assegnare un nome al grafico e selezionare la dashboard in cui salvarlo:

52329085f841782e.png

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

44961e7cb3663341.png

Abbiamo salvato il grafico in una dashboard denominata "Dashboard Codelab". Se lo apri, viene visualizzata la seguente schermata:

f7e025c27f30f996.png

Come vedi, qui viene visualizzato il grafico che rappresenta la metrica basata su log, insieme ai dati appena raccolti. I log della smart home vengono pubblicati nel tuo progetto in tempo reale. Quando è disponibile un nuovo log, la metrica basata su log lo conteggia immediatamente.

4. Complimenti

674c4f4392e98c1.png

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

Passaggi successivi

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