Metriche basate su log per la smart home

1. Prima di iniziare

Come spiegato nel codelab Debug della casa intelligente, stiamo pubblicando metriche e log nei tuoi progetti per la casa intelligente. Le metriche ti aiutano a determinare dove la tua azione per la smart home ha problemi e i log sono utili per effettuare un'analisi approfondita per risolvere 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 nei log e eseguire il debug dei problemi di qualità in modo efficace.

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

2. Utilizzo dei log

Come spiegato brevemente nel Codelab di debug della casa intelligente, il lavoro con i log è fondamentale per la buona riuscita del progetto. Su Google Cloud sono disponibili ottimi strumenti 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 passaggio per accedere ai log è accedere a Google Cloud e scegliere il progetto. Vai a Esplora log utilizzando il menu laterale, selezionando Operazioni > Logging > Esplora log. Dopo aver aperto lo strumento, dovresti vedere questa visualizzazione:

78982d8b6d19b827.png

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

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

Scrivere query

I log vengono pubblicati nei progetti di 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à 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.

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

753bfe72a9f8e959.png

Al termine della scrittura della query, fai clic sul pulsante Esegui query per avviarla. Dovresti visualizzare gli errori provenienti dall'integrazione della smart home:

3ef42da5a6c322e1.png

Come vedi, abbiamo riscontrato diversi errori in vari momenti nell'ultima ora. Ogni riga rappresenta un singolo log di errore. Puoi anche fare clic sui singoli log ed espandere i campi nidificati per visualizzare le informazioni al loro interno.

Utilizzare 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 IMPOSTAZIONE PAGINA nei pulsanti dell'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 che sarebbero difficili da vedere controllando solo i valori del timestamp.

Al momento la query che utilizziamo non fa distinzione tra i log e ci mostra tutti gli errori provenienti dall'integrazione della smart home. Spesso potresti voler distinguere tra errori, ad esempio per monitorare i pattern di errori derivanti da determinati tipi o tratti di dispositivi. A questo scopo, esamineremo la scrittura di query avanzate.

Query avanzate

Quando esamini un log degli eventi della smart home, noterai che sono disponibili vari campi da cui puoi raccogliere informazioni:

825c57c36800844e.png

action

  • trait: attributo del dispositivo target dell'utente (ad esempio OnOff, StartStop, Brightness)
  • actionType: stato granulare dell'attributo (ad es. On, Off, Pause, Stop, Resume)

device

  • deviceType: scegli come target il tipo di dispositivo utilizzato dall'utente (ad es. Luce, Interruttore, Lavatrice)

status

  • isSuccess: indica se il risultato dell'azione è considerato riuscito (true / false)
  • statusType: codice di stato per il risultato dell'azione (indica un codice di errore se l'operazione non è andata a buon fine)
  • externalDebugString: stringa di debug per l'azione (descrive l'errore in dettaglio)

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 Locale)
  • latencyMsec: latenza percepita per la richiesta sui server Google (in ms)
  • locale: la coppia di lingua/regione da cui viene inviata la richiesta (ad es. en-US, fr-FR)

Utilizzando il campo dell'attributo nell'elenco riportato sopra, modificheremo la query in modo da includere solo gli errori provenienti dall'attributo 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. Si tratta di un ottimo modo per controllare rapidamente lo stato degli errori, ma non per monitorare le variazioni dei pattern di errori nel tempo. Per automatizzare questo flusso e acquisire i dati da periodi di tempo più lunghi, creeremo metriche basate su log.

3. Metriche basate su log

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

Creare una metrica basata su log

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

296af6e7d8dcf6cf.png

Esistono due tipi principali di metriche: 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 percentile 95.

Scorri verso il basso per visualizzare una sezione di filtro 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 VISUALIZZA LOG DI ANTEPRIMA per visualizzare una visualizzazione rapida dei log passati 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

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

Una volta rilevato un nuovo errore, questo verrà acquisito dalla metrica basata su log e visualizzato nella finestra del grafico in Metrics Explorer.

Monitoraggio tramite dashboard personalizzate

Una volta verificato che la nuova metrica basata su log funziona come previsto, è il momento di salvare questa visualizzazione del grafico in una dashboard personalizzata. A tal fine, fai clic sul pulsante Salva grafico nell'angolo in alto a destra di Esploratore metriche. Viene visualizzata una richiesta di assegnazione del nome al grafico e di selezione della dashboard in cui salvarlo:

52329085f841782e.png

Una volta salvato il grafico in una dashboard, possiamo accedervi facilmente in seguito. 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 di Codelab". Verrà visualizzata la seguente visualizzazione:

f7e025c27f30f996.png

Come puoi vedere, 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 progetto in tempo reale. Quando è disponibile un nuovo log, viene conteggiato immediatamente dalla metrica basata su log.

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

A partire da questo Codelab, prova i seguenti esercizi ed esplora risorse aggiuntive: