1. Prima di iniziare
Come abbiamo visto nel codelab Debug della smart home, pubblichiamo metriche e log nei tuoi progetti per la smart home. Le metriche ti aiutano a determinare dove sta riscontrando problemi con la tua azione per la smart home e i log sono utili per approfondire questi problemi.
Oltre alle metriche 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 ed eseguire il debug dei problemi di qualità in modo efficace.
Prerequisiti
- Avere un'integrazione funziona con la smart home
- Completa il codelab Debug della smart home
Cosa imparerai a fare
- Come scrivere query efficaci per filtrare i log degli errori della smart home
- 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. In Google Cloud Platform 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.
Accesso ai log
Il primo passaggio per accedere ai log è accedere a Google Cloud Platform e scegliere il progetto. Vai a Esplora log utilizzando il menu laterale, passando da Operazioni > Logging > Esplora log. Una volta aperto lo strumento, dovresti vedere questa visualizzazione:
Esplora log è costituito da due sezioni principali: una sezione in cui scrivere le query in alto (Strumento per la creazione di query) e un'area in cui 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 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 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 della 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:
Dopo aver scritto la query, fai clic sul pulsante Esegui query per avviarla. Di conseguenza, dovresti visualizzare gli errori derivanti dall'integrazione della tua smart home:
Come puoi vedere, nell'ultima ora si sono verificati diversi errori che si sono verificati in diversi momenti. Ogni riga rappresenta un singolo log degli errori. Puoi anche fare clic sui singoli log ed espandere i campi nidificati per visualizzare le informazioni al loro interno.
Utilizzo dell'istogramma
Esplora log fornisce un'utile funzionalità a istogramma per vedere la distribuzione temporale dei log corrispondenti alla query. Per attivare l'istogramma, fai clic su LAYOUT DI PAGINA dai pulsanti nell'angolo in alto a destra e seleziona Istogramma per attivare la funzione.
Dopo l'abilitazione, vedrai una distribuzione dei log corrispondenti alla tua query:
Come puoi vedere nell'immagine qui sopra, sono presenti diversi errori raggruppati in modo sparso nell'ultima ora. Sembrano formare tre raggruppamenti intorno alle 13:45, 14:00 e 14:15. L'istogramma può aiutarti a rilevare pattern difficili da vedere controllando solo i valori del timestamp.
Al momento la query che utilizziamo non fa distinzione tra i log e mostra tutti gli errori derivanti dall'integrazione con la smart home. In alcuni casi potresti voler distinguere gli errori, ad esempio per tenere traccia di pattern di errori che hanno origine da determinati tipi o tratti di dispositivi. A questo scopo, daremo un'occhiata alla scrittura di query avanzate.
Query avanzate
Quando controlli un log eventi della smart home, noterai che sono presenti vari campi da cui puoi raccogliere informazioni:
action
trait
: scegli come target la trait del dispositivo dall'utente, ad esempio OnOff, StartStop, Luminosità.actionType
: stato granulare del tratto (ad esempio, On, Off, Pause, Stop, Riprendi).
device
deviceType
: scegli come target il tipo di dispositivo in base all'utente, ad esempio Luce, Interruttore o Lavatrice.
status
isSuccess
: indica se il risultato dell'azione è considerato riuscito (vero / falso)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
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 di Google (in msec)locale
: la combinazione di lingua/regione da cui viene inviata la richiesta (ad esempio en-US, fr-FR)
Utilizzando il campo trait nell'elenco precedente, modificheremo la nostra query in modo da includere solo gli errori provenienti 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:
Finora abbiamo eseguito tutte le query manualmente. È un ottimo modo per controllare rapidamente lo stato degli errori, ma non per monitorare così tanto le variazioni dei pattern di errore nel tempo. Per automatizzare questo flusso e acquisire dati di periodi di tempo più lunghi, creeremo metriche basate su log.
3. Metriche basate su log
Per conteggiare il numero di log corrispondenti alle query nel tempo puoi utilizzare le metriche basate su log. In questo modo potrai vedere i pattern e tutti i log e ottenere buoni insight 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, verrà visualizzata la schermata di creazione della metrica basata su log:
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 filtri in cui puoi digitare la query.
Incolleremo la query dalla 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 precedenti corrispondenti al filtro. Quando hai finito, 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.
Nel menu corrispondente alla metrica basata su log (tre puntini), seleziona Visualizza in Esplora metriche per vedere i dati raccolti nella metrica basata su log:
Una volta riscontrato, il nuovo errore verrà acquisito dalla metrica basata su log e visualizzato nella finestra del grafico in Metrics Explorer.
Monitoraggio tramite dashboard personalizzate
Una volta appurato che la nuova metrica basata su log funziona come previsto, è il momento di salvare la 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 salvare:
Dopo aver salvato il grafico in una dashboard, possiamo accedervi facilmente da lì in poi. Per accedere all'elenco delle dashboard disponibili nel progetto, vai a Operazioni > Monitoraggio > Dashboard.
Abbiamo salvato il grafico in una dashboard chiamata "Dashboard codelab". L'apertura mostra la seguente visualizzazione:
Come puoi vedere, il grafico che rappresenta la metrica basata su log è visualizzato qui, insieme ai dati appena raccolti. I log della smart home vengono pubblicati nel tuo progetto in tempo reale. Quando è disponibile un nuovo log, lo vedrai conteggiato in base alla metrica basata su log immediatamente.
4. Complimenti
Complimenti! Hai imparato a trasformare le tue 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 risorse aggiuntive:
- Consulta la guida Creazione delle metriche di distribuzione per creare metriche basate su log su campi numerici come la latenza.
- Esamina la libreria di query di esempio fornita da Google Cloud per vedere alcuni dei filtri complessi che puoi utilizzare per le metriche basate su log.