Introduzione alla suite operativa di Google Cloud

1. Introduzione

Ultimo aggiornamento: 28/07/2023

Che cos'è la suite operativa di Google Cloud?

Google Cloud Operations Suite è una piattaforma in cui puoi monitorare, risolvere i problemi e migliorare le prestazioni delle applicazioni nel tuo ambiente Google Cloud. I pilastri chiave della suite operativa di Google Cloud includono Cloud Monitoring, Cloud Logging e Cloud Trace.

Guarda questo video per una panoramica generale di Google Cloud Operations.

Cosa creerai

In questo codelab, eseguirai il deployment di un'API di esempio su Google Cloud. Dopodiché, esplorerai e configurerai più funzionalità in Cloud Monitoring rispetto all'API.

Cosa imparerai a fare

  • Utilizzo di Cloud Shell di Google Cloud per eseguire il deployment di un'applicazione di esempio in Cloud Run.
  • Utilizzo delle funzionalità di Google Cloud Monitoring come dashboard, avvisi, controlli di uptime, monitoraggio SLI/SLO e altro ancora.

Che cosa ti serve

  • Una versione recente di Chrome (74 o successive)
  • Un account Google Cloud e un progetto Google Cloud

2. Configurazione e requisiti

Configurazione dell'ambiente autonomo

Se non hai ancora un Account Google (Gmail o Google Apps), devi crearne uno. Accedi alla console di Google Cloud Platform ( console.cloud.google.com) e crea un nuovo progetto.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

c20a9642aaa18d11.png

  • Il nome del progetto è il nome visualizzato per i partecipanti al progetto. È una stringa di caratteri non utilizzata dalle API di Google. Puoi aggiornarlo in qualsiasi momento.
  • L'ID progetto deve essere univoco in tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo essere stato impostato). La console Google Cloud genera automaticamente una stringa univoca, di solito non ti interessa di cosa si tratta. Nella maggior parte dei codelab, devi fare riferimento all'ID progetto (in genere è identificato come PROJECT_ID). Se l'ID generato non ti piace, puoi generarne un altro casuale. In alternativa, puoi provare a crearne uno e vedere se è disponibile. Non può essere modificato dopo questo passaggio e rimarrà per tutta la durata del progetto.
  • Per tua informazione, esiste un terzo valore, un numero di progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.

Attenzione: un ID progetto deve essere univoco a livello globale e non può essere utilizzato da altri dopo che lo hai selezionato. Sei l'unico utente di questo ID. Anche se un progetto viene eliminato, l'ID non potrà mai più essere utilizzato

  1. Successivamente, devi abilitare la fatturazione in Cloud Console per utilizzare le risorse/API Cloud. L'esecuzione di questo codelab non dovrebbe costare molto, se non nulla. Per arrestare le risorse in modo da non incorrere in costi di fatturazione al termine di questo tutorial, puoi eliminare le risorse che hai creato o l'intero progetto. I nuovi utenti di Google Cloud possono beneficiare del programma prova senza costi di 300$.

Configurazione di Google Cloud Shell

Anche se Google Cloud e Google Cloud Trace possono essere gestiti da remoto dal tuo laptop, in questo codelab utilizzeremo Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.

Per attivare Cloud Shell dalla console Cloud, fai clic su Attiva Cloud Shell. Bastano pochi istanti per eseguire il provisioning e connettersi all'ambiente.

30c26f30d17b3d46.png

Se non hai mai avviato Cloud Shell, viene visualizzata una schermata intermedia (sotto la piega) che ne descrive le funzionalità. In questo caso, fai clic su Continua e non comparirà più. Ecco come si presenta la schermata intermedia:

9c92662c6a846a5c.png

Bastano pochi istanti per eseguire il provisioning e connettersi a Cloud Shell.

9f0e51b578fecce5.png

Questa macchina virtuale è caricata con tutti gli strumenti per sviluppatori di cui hai bisogno. Offre una home directory permanente da 5 GB e viene eseguita in Google Cloud, migliorando notevolmente le prestazioni e l'autenticazione della rete. Gran parte del lavoro per questo codelab, se non tutto, può essere svolto semplicemente con un browser o con Chromebook.

Una volta eseguita la connessione a Cloud Shell, dovresti vedere che il tuo account è già autenticato e il progetto è già impostato sul tuo ID progetto.

Esegui questo comando in Cloud Shell per verificare che l'account sia autenticato:

Una volta eseguita la connessione a Cloud Shell, dovresti vedere che il tuo account è già autenticato e il progetto è già impostato sul tuo PROJECT_ID.

gcloud auth list

Output comando

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

Output comando

[core]
project = <PROJECT_ID>

Se per qualche motivo il progetto non è impostato, esegui questo comando:

gcloud config set project <PROJECT_ID>

Cloud Shell imposta anche alcune variabili di ambiente per impostazione predefinita, che potrebbero essere utili quando esegui i comandi futuri.

echo $GOOGLE_CLOUD_PROJECT

Output comando

<PROJECT_ID>

Applicazioni di esempio

Abbiamo inserito tutto ciò che ti serve per questo progetto in un repository Git. Il repository contiene un paio di applicazioni di esempio e puoi scegliere di utilizzarne una per questo esercizio.

Link al repository Git: https://github.com/rominirani/cloud-code-sample-repository

3. Esegui il deployment dell'applicazione API

Di cosa tratta l'applicazione o l'API di esempio?

La nostra applicazione è una semplice applicazione API Inventory che espone un endpoint API REST con un paio di operazioni per elencare gli articoli dell'inventario e ottenere il conteggio dell'inventario di articoli specifici.

Una volta eseguito il deployment dell'API e supponendo che sia ospitata all'indirizzo https://<somehost>, possiamo accedere agli endpoint API nel seguente modo:

  • https://<somehost>/inventory

Verranno elencati tutti gli articoli di prodotto con i livelli di inventario disponibili.

  • https://<somehost>/inventory/{productid}

In questo modo verrà fornito un singolo record con l'ID prodotto e il livello di inventario disponibile per quel prodotto.

I dati di risposta restituiti sono in formato JSON.

Dati di esempio e richiesta/risposta API

Per semplificare le cose, l'applicazione non è basata su un database nel backend. Contiene tre ID prodotto di esempio e i relativi livelli di inventario disponibile.

Product Id

Livello di inventario disponibile

I-1

10

I-2

20

I-3

30

Di seguito sono riportati la richiesta e la risposta dell'API di esempio:

Richiesta API

Risposta API

https://<somehost>/inventory

[ { "I-1": 10, "I-2": 20, "I-3": 30 }]

https://<somehost>/inventory/I-1

{ "productid": "I-1", "qty": 10}

https://<somehost>/inventory/I-2

{ "productid": "I-2", "qty": 20}

https://<somehost>/inventory/I-200

{ "productid": I-200, "qty": -1}

Clona il repository

Sebbene Google Cloud possa essere gestito da remoto dal tuo laptop, in questo codelab utilizzerai Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.

Nella console GCP, fai clic sull'icona di Cloud Shell nella barra degli strumenti in alto a destra:

bce75f34b2c53987.png

Bastano pochi istanti per eseguire il provisioning e connettersi all'ambiente. Al termine, dovresti vedere un risultato simile a questo:

f6ef2b5f13479f3a.png

Questa macchina virtuale è caricata con tutti gli strumenti per sviluppatori di cui avrai bisogno. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud, migliorando notevolmente le prestazioni e l'autenticazione della rete. Tutto il lavoro di questo lab può essere svolto semplicemente con un browser.

Configura gcloud

In Cloud Shell, imposta l'ID progetto e salvalo come variabile PROJECT_ID.

PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID

Ora esegui questo comando:

$ git clone https://github.com/rominirani/cloud-code-sample-repository.git 

In questa cartella verrà creata una cartella denominata cloud-code-sample-repository.

(Facoltativo) Esegui l'applicazione su Cloud Shell

Per eseguire l'applicazione localmente:

  1. Dal terminale, vai alla versione Python dell'API tramite il seguente comando:
$ cd cloud-code-sample-repository
$ cd python-flask-api
  1. Nel terminale, fornisci il comando seguente (al momento della stesura, Cloud Shell viene fornito con Python 3.9.x installato e utilizzeremo la versione predefinita. Se prevedi di eseguirlo localmente sul tuo laptop, puoi utilizzare Python 3.8+) :
$ python app.py
  1. Puoi eseguire il seguente comando per avviare il server Python in locale.

26570f586acaeacf.png

  1. In questo modo verrà avviato un server sulla porta 8080 e potrai testarlo localmente tramite la funzionalità Anteprima web di Cloud Shell. Fai clic sul pulsante Anteprima web come mostrato di seguito:

675d9b3097a6209c.png

Fai clic su Anteprima sulla porta 8080.

  1. Si aprirà una finestra del browser. Visualizzerai un errore 404, il che va bene. Modifica l'URL e aggiungi /inventory dopo il nome host.

Ad esempio, sul mio computer ha questo aspetto:

https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory

Verrà visualizzato l'elenco degli articoli di inventario come spiegato in precedenza:

ef6afb0184c58870.png

  1. Ora puoi arrestare il server andando al terminale e premendo Ctrl+C.

Esegui il deployment dell'applicazione

Ora eseguiremo il deployment di questa applicazione API su Cloud Run. La procedura prevedeva l'utilizzo del client a riga di comando glcoud per eseguire il comando di deployment del codice in Cloud Run.

Dal terminale, esegui il seguente comando gcloud:

$ gcloud run deploy --source .

Ti verranno poste diverse domande (se ti viene chiesto di autorizzare, procedi) e alcuni punti sono menzionati di seguito. Potresti ricevere o meno tutte le domande, a seconda della configurazione e se hai già abilitato API specifiche nel tuo progetto Google Cloud.

  1. Nome del servizio (python-flask-api): utilizza questo valore predefinito o scegli un nome come my-inventory-api.
  2. API [run.googleapis.com] not enabled on project [project-number]. Vuoi abilitare e riprovare (l'operazione richiederà alcuni minuti)? (y/N)? Y
  3. Specifica una regione: scegli una regione a tua scelta inserendo un numero.
  4. API [artifactregistry.googleapis.com] not enabled on project [project-number]. Vuoi abilitare e riprovare (l'operazione richiederà alcuni minuti)? (y/N)? Y
  5. Il deployment dall'origine richiede un repository Docker Artifact Registry per archiviare i container creati. Verrà creato un repository denominato [cloud-run-source-deploy] nella regione [us-west1].

Do you want to continue (Y/n)? Y

  1. Consenti chiamate non autenticate a [my-inventory-api] (y/N)? Y

Alla fine, verrà avviato il processo per prendere il codice sorgente, containerizzarlo, eseguirne il push su Artifact Registry e poi eseguire il deployment del servizio e della revisione Cloud Run. Devi avere pazienza durante questa procedura (può richiedere 3-4 minuti) e dovresti vedere che la procedura viene completata con l'URL del servizio visualizzato.

Di seguito è riportato un esempio di esecuzione:

7516696ea5b3004b.png

Testare l'applicazione

Ora che abbiamo eseguito il deployment dell'applicazione in Cloud Run, puoi accedere all'applicazione API nel seguente modo:

  1. Prendi nota dell'URL del servizio del passaggio precedente. Ad esempio, nella mia configurazione viene visualizzato come https://my-inventory-api-bt2r5243dq-uw.a.run.app. Chiamiamolo <SERVICE_URL>.
  2. Apri un browser e accedi ai seguenti tre URL per gli endpoint API:
  3. <SERVICE_URL>/inventory
  4. <SERVICE_URL>/inventory/I-1
  5. <SERVICE_URL>/inventory/I-100

Deve essere conforme alle specifiche che abbiamo fornito in una sezione precedente con richiesta e risposta API di esempio.

Recupera i dettagli del servizio da Cloud Run

Abbiamo eseguito il deployment del nostro servizio API su Cloud Run, un ambiente di serverless computing. Possiamo visitare il servizio Cloud Run tramite la console Google Cloud in qualsiasi momento.

Nel menu principale, vai a Cloud Run. Verrà visualizzato l'elenco dei servizi in esecuzione in Cloud Run. Dovresti visualizzare il servizio di cui hai appena eseguito il deployment. A seconda del nome selezionato, dovresti vedere qualcosa di simile a questo:

10d2c363241d789c.png

Fai clic sul nome del servizio per visualizzarne i dettagli. Di seguito sono riportati i dettagli del campione:

1ec2c9e45ff1a2db.png

Nota l'URL, che non è altro che l'URL del servizio che puoi inserire nel browser e accedere all'API Inventory che abbiamo appena implementato. Puoi consultare le metriche e altri dettagli.

Iniziamo subito con la suite operativa di Google Cloud.

4. Configurare una dashboard

Una delle comode funzionalità fornite da Cloud Monitoring sono le dashboard predefinite per più risorse in Google Cloud. In questo modo, la configurazione iniziale dei dashboard con metriche standard è un processo rapido e conveniente.

Vediamo come farlo per il servizio API di cui abbiamo appena eseguito il deployment su Cloud Run.

Dashboard personalizzata per il nostro Servizio

Poiché abbiamo eseguito il deployment del nostro servizio API su Cloud Run, vediamo come configurare dashboard che possono aiutare a visualizzare varie metriche, alcune delle quali includono la latenza del servizio.

Innanzitutto, dalla console, vai a Monitoraggio → Panoramica, come mostrato di seguito:

c51a5dda4ab72bbf.png

La panoramica mostra più elementi che avresti configurato in Monitoring, come dashboard, avvisi, controlli di uptime e così via.

2758f61f1e7f1dca.png

Per ora, facciamo clic su Dashboard nel menu principale laterale. Verrà visualizzata la seguente schermata:

c9110b6f065100da.png

Fai clic su LIBRERIA DI ESEMPI . Verrà visualizzato l'elenco dei dashboard preconfigurati disponibili in Google Cloud, in più risorse. Nello specifico, scorri verso il basso l'elenco e seleziona Google Cloud Run come mostrato di seguito.

ddac4038d4fa91ae.png

Viene visualizzato un elenco di dashboard standard disponibili per Google Cloud Run. Ci interessa perché abbiamo eseguito il deployment del nostro servizio su Cloud Run.

Vedrai una dashboard per il monitoraggio di Cloud Run. Fai clic sul link ANTEPRIMA per visualizzare l'elenco dei grafici standard (metriche) disponibili per Cloud Run Monitoring. Fai clic su IMPORTA DASHBOARD DI ESEMPIO per importare tutti questi grafici in una dashboard personalizzata. Verrà visualizzata una schermata della dashboard con un nome precompilato, come mostrato di seguito:

531cb8434b18193a.png

Per tornare indietro, fai clic sulla freccia sinistra, che si trova a sinistra del nome della dashboard, in alto a sinistra. Verrà visualizzato l'elenco delle dashboard, in cui dovresti vedere la nuova dashboard che hai appena creato.

Fai clic sul link alla dashboard per monitorare più metriche disponibili immediatamente. Queste metriche includono latenza, conteggio richieste, metriche dei container e altro ancora.

Puoi anche scegliere di contrassegnare uno qualsiasi dei dashboard come preferito selezionando l'icona a forma di stella, come mostrato di seguito:

fc993d1a17415550.png

In questo modo, la dashboard verrà aggiunta alla schermata Panoramica di Monitoraggio e diventerà un modo semplice per accedere alle dashboard utilizzate di frequente.

2e8f66e2652c55c5.png

1e1dffb5239ab110.png

Fantastico! Hai appena aggiunto una dashboard personalizzata per monitorare i tuoi servizi Cloud Run. Ben fatto!

5. Controlli di uptime

In questa sezione configureremo un controllo di uptime per il servizio API di cui abbiamo eseguito il deployment. Un controllo di uptime pubblico può inviare richieste da più località in tutto il mondo a URL disponibili pubblicamente o a risorse Google Cloud per verificare se la risorsa risponde.

In questo caso, la risorsa sarà il servizio API di cui abbiamo eseguito il deployment in Cloud Run. L'URL sarà un endpoint specifico che il servizio API espone per indicare lo stato del servizio.

Nel codice del servizio API di esempio, abbiamo esposto un endpoint /healthy che restituisce il valore stringa "All Izz Well". Quindi, tutto ciò che dobbiamo fare è definire un controllo di uptime che raggiunga un URL come https://<SERVICE_URL>/healthy e verifichi se viene restituita o meno la stringa "All Izz Well".

Creare un canale di notifica

Prima di creare il controllo di uptime, è importante configurare i canali di notifica. Un canale di notifica è un mezzo tramite il quale riceverai un avviso in caso di incidente/problema con una delle nostre risorse monitorate. Un esempio di canale di notifica è l'email, quindi riceverai email in caso di avviso e così via.

Per ora, configureremo un canale di notifica via email e lo configureremo con il nostro indirizzo email, in modo da ricevere una notifica in caso di avvisi che il nostro sistema genererà e che configureremo.

Per creare un canale di notifica:

Vai a Monitoring → Avvisi dal menu principale di Google Cloud Console, come mostrato di seguito:

9f87859064c63b63.png

Verrà visualizzata una pagina con avvisi, norme e altro ancora. Per il momento, vedrai in alto un link intitolato MODIFICA CANALI DI NOTIFICA. Fai clic su di esso.

5ab54f42e6f7b99.png

Verrà visualizzato un elenco di vari canali di notifica, come mostrato di seguito:

cd89b1ca9e1de87c.png

Individua la sezione Email e fai clic su AGGIUNGI NUOVO per quella riga. Verranno visualizzati i dettagli della configurazione email come mostrato di seguito:

d6ed98ffd0427fa3.png

Inserisci il tuo indirizzo email e un nome visualizzato come mostrato di seguito. Fai clic su SALVA.

In questo modo, la creazione del canale di notifica via email è completata. Procediamo ora a configurare il controllo di uptime.

Creazione di un controllo di uptime

Vai a Monitoring → Controlli di uptime dal menu principale di Google Cloud Console. In alto vedrai il link CREA CONTROLLO UPTIME. Fai clic su di esso.

484541aec65e605e.png

Viene visualizzata una serie di passaggi che dovrai completare per configurare il controllo di uptime.

Il primo passo consiste nel configurare i dettagli della destinazione, ovvero le informazioni sul servizio Cloud Run che abbiamo implementato. Di seguito è riportato un modulo compilato:

4e2bb9fe022320f7.png

I diversi valori possono essere selezionati come segue:

  • Protocollo : HTTPS
  • Tipo di risorsa : seleziona Servizio Cloud Run. Nota le altre risorse supportate su cui puoi impostare anche i controlli di uptime.
  • Servizio Cloud Run : seleziona my-inventory-api o il nome specifico del servizio Cloud Run.
  • Il percorso è /healthy, poiché restituiamo la stringa "All Izz Well" e vogliamo verificarla.

Fai clic su CONTINUA per passare al passaggio successivo. Il passaggio successivo è la convalida della risposta, come mostrato di seguito:

a6011ac2ab3e0f10.png

Puoi notare che stiamo attivando il controllo per "Corrispondenza dei contenuti" e poi configurando la risposta restituita dall'endpoint /healthy in modo che sia "All Izz Well". Fai clic su CONTINUA per passare al passaggio successivo, in cui configureremo l'avviso e il canale di notifica su cui ricevere l'avviso in caso di esito negativo del controllo dell'uptime.

d9738670efcb999f.png

In questo passaggio, assegna un nome all'avviso. L'ho scelto come Errore di controllo di uptime dell'API Inventory, ma puoi scegliere il nome che preferisci. La cosa importante qui è selezionare il canale di notifica corretto dall'elenco configurato in precedenza.

Fai clic su REVISIONE per l'ultimo passaggio per rivedere il controllo di uptime che abbiamo configurato.

In questo passaggio finale, assegna un nome al controllo di uptime (ad es. Controllo di uptime dell'API Inventory), quindi puoi anche verificare se il controllo è configurato correttamente. Fai clic sul pulsante TESTA.

80375bfab97fc313.png

Completa la procedura (fai clic sul pulsante CREA a sinistra). Google Cloud chiederà ai probe di controllo dell'uptime configurati in diverse regioni di eseguire il ping dell'URL e queste risposte verranno raccolte. Visita la sezione Monitoring → Controlli di uptime dopo qualche minuto e dovresti vedere tutti i segnali verdi che indicano che l'URL era raggiungibile dalle diverse sonde.

df17555ddbee1127.png

Se uno dei probe non funziona per un periodo di tempo (configurabile), riceverai una notifica di avviso sul canale email che abbiamo configurato.

Con questo si conclude la nostra sezione sulla configurazione di un controllo di uptime. Ben fatto!

6. Esplora metriche

Cloud Monitoring espone migliaia di metriche standard di più prodotti Google Cloud. Queste metriche sono disponibili per l'analisi, le query, la conversione in grafici, l'aggiunta a dashboard, la generazione di avvisi e altro ancora.

Il nostro obiettivo in questa sezione è:

  1. Scopri come esaminare varie metriche, poi analizzeremo una metrica specifica (latenza) per il nostro servizio API.
  2. Converti la metrica in un grafico e in una dashboard personalizzata che possiamo utilizzare per visualizzarla in qualsiasi momento.

Esplora la metrica della latenza per il servizio API Inventory

Vai a Monitoring → Esplora metriche dal menu principale della console Google Cloud. Verrà visualizzata la schermata Esplora metriche. Fai clic su SELEZIONA UNA METRICA. Ora puoi navigare tra diverse risorse attive per le quali sono state generate metriche.

Poiché stiamo lavorando con i servizi Cloud Run, fai clic su Revisione Cloud Run, quindi sulla categoria e sulla metrica specifica intitolata Latenza di richiesta, come mostrato di seguito:

7609d8156c8f1384.png

Fai clic su Applica. Viene visualizzata la latenza delle richieste in un grafico. Puoi modificare il tipo di widget in un grafico a linee dalle impostazioni di visualizzazione a destra, come mostrato di seguito:

46086ac0a8eaf3d7.png

Verrà visualizzato il grafico della latenza come mostrato di seguito:

ad97f749eeacaa95.png

Crea un grafico e una dashboard personalizzata

Procediamo e salviamo questo grafico. Fai clic su Salva grafico e utilizza i dettagli come mostrato di seguito:

35d1788d5f0cb3c4.png

Tieni presente che stiamo creando una nuova dashboard anziché salvarla in una esistente. Fai clic sul pulsante SALVA. In questo modo, la dashboard appena creata verrà aggiunta all'elenco delle dashboard, come mostrato di seguito:

c9cdcd63d5823abd.png

Fai clic sulla dashboard specifica che abbiamo creato per visualizzare i dettagli.

27354d8310d8a2d7.png

In questo modo si conclude la sezione sull'analisi di varie metriche tramite Metrics Explorer e su come creare dashboard personalizzate.

7. Cloud Logging

In questa sezione esploreremo Cloud Logging. Cloud Logging include un'interfaccia Esplora log che ti aiuta a navigare e analizzare in dettaglio i log generati da vari servizi Google e dalle tue applicazioni.

In questa sezione, scopriremo di più su Esplora log e simuleremo alcuni messaggi di log che potremo poi cercare e convertire in metriche tramite una funzionalità chiamata metriche basate su log.

Esplora log

Puoi visitare Esplora log tramite Logging → Esplora log dalla console Google Cloud principale, come mostrato di seguito:

df05f5b33fd5695a.png

Verrà visualizzata un'interfaccia di log in cui puoi selezionare/deselezionare in modo specifico varie risorse (progetto, risorsa Google Cloud, nomi di servizi e così via) insieme ai livelli di log per filtrare i messaggi di log in base alle esigenze.

e7fa15bcf73f3805.png

Sopra è riportato l'elenco dei log per la revisione di Cloud Run, ovvero i servizi Cloud Run di cui è stato eseguito il deployment. Vedrai diverse richieste che sono controlli di uptime che raggiungono l'endpoint /healthy che abbiamo configurato.

Cercare avvisi

Simula alcune richieste non valide al servizio di inventario fornendo ID prodotto diversi da I-1, I-2 e I-3. Ad esempio, una richiesta errata è:

https://<SERVICE_URL>/inventory/I-999

Ora cercheremo tutti gli AVVISI generati dalla nostra API quando viene fornito un ID prodotto errato nella query.

Nella casella di query, inserisci i seguenti parametri di query:

resource.type="cloud_run_revision"

textPayload =~ "Received inventory request for incorrect productid"

Il sito dovrebbe avere il seguente aspetto:

b3ee512a0c9c5c7b.png

Fai clic su Esegui query. Verranno visualizzate tutte le richieste ricevute e quelle che presentano questo problema.

5fdbd7c23bf4694f.png

Metriche basate su log

Creiamo una metrica di log personalizzata per monitorare questi errori. Vorremmo capire se si verifica un numero significativo di chiamate con ID prodotto errati.

Per convertire quanto sopra in una metrica di errore, fai clic sul pulsante Crea metrica visualizzato in Esplora log.

fa9a5e04922aa412.png

Verrà visualizzato il modulo per creare la definizione della metrica. Scegli una metrica di conteggio e inserisci i dettagli per il nome della metrica (inventory_lookup_errors) e la descrizione come mostrato di seguito, quindi fai clic su Crea metrica.

70b5719b472d4d02.png

Verrà creata la metrica del contatore e dovresti visualizzare un messaggio come mostrato di seguito:

ab9058028185e4d5.png

Visita la sezione Logging → Metriche basate su log dal menu principale e dovresti vedere la metrica personalizzata che abbiamo definito nell'elenco delle metriche definite dall'utente come indicato di seguito:

7d186e90559cf8e1.png

Alla fine di questa voce, troverai tre puntini verticali. Fai clic su questi puntini per visualizzare le operazioni che puoi eseguire su questa metrica personalizzata. L'elenco dovrebbe essere simile a quello che vedi di seguito. Fai clic sull'opzione Visualizza in Esplora metriche.

7586f0789a0bdb41.png

In questo modo, dovremmo arrivare a Esplora metriche, di cui abbiamo parlato nella sezione precedente, con i dati precompilati.

7ee7403d0639ce25.png

Fai clic su Salva grafico. Utilizza i seguenti valori per le opzioni Salva grafico:

9009da45f76eb4c5.png

Verrà creata una nuova dashboard in cui potrai visualizzare gli errori di ricerca nell'inventario. La dashboard sarà disponibile nell'elenco delle dashboard.

201ed66957cb64f9.png

Ottimo. Ora hai creato una metrica personalizzata dai log, l'hai convertita in un grafico che si trova in una dashboard personalizzata. In questo modo potremo monitorare il numero di chiamate che utilizzano ID prodotto errati.

8. Policy di avviso

In questa sezione, utilizzeremo la metrica personalizzata che abbiamo creato e monitoreremo i relativi dati per una soglia, ovvero se il numero di errori supera una determinata soglia, genereremo un avviso. In altre parole, configureremo un criterio di avviso.

Crea un criterio di avviso

Andiamo alla dashboard di ricerca dell'inventario. Verrà visualizzato il grafico che abbiamo creato per annotare gli errori di ricerca dell'inventario, come mostrato di seguito:

3591a1dd91a8b9fd.png

Verranno visualizzati i dati attuali delle metriche. Modifichiamo prima la metrica come mostrato di seguito (fai clic sul pulsante Modifica):

5e76fc20d8387984.png

Verranno visualizzati i dettagli della metrica. Convertiremo il grafico in modo che mostri la somma, ovvero il numero di errori, anziché il tasso di errori. Il campo da modificare è mostrato di seguito:

65ccd1eaca607831.png

Fai clic su APPLICA nell'angolo in alto a destra e tornerai alla schermata delle metriche, ma questa volta potrai visualizzare il numero totale di errori nel periodo di allineamento rispetto al tasso di errori.

Creeremo un criterio di avviso che ci invii una notifica se il numero di errori supera una soglia. Fai clic sui tre puntini nell'angolo in alto a destra del grafico e, nell'elenco delle opzioni, come mostrato sopra, fai clic su Converti in grafico di avviso.

cc9eec48b9bfbc92.png

Dovresti visualizzare una schermata come mostrato di seguito:

6202ad1e88679a78.png

Fai clic su Avanti per visualizzare un valore soglia che possiamo impostare. La soglia di esempio che abbiamo preso in considerazione è 5 , ma puoi scegliere in base alle tue preferenze.

734f809cc802ab78.png

Fai clic su AVANTI per visualizzare il modulo Notifiche.

f2d84fb85c2520cb.png

Abbiamo selezionato il canale di notifica come canale email creato in precedenza. Puoi compilare gli altri dettagli, ad esempio la documentazione (che verrà fornita nell'ambito dell'avviso generato). Fai clic su AVANTI per visualizzare il riepilogo e completare la procedura.

c670b29da70c4655.png

Una volta creata, questa policy di avviso sarà visibile nell'elenco delle policy di avviso, come mostrato di seguito. Puoi accedere all'elenco delle policy di avviso andando a Monitoraggio → Avvisi. Cerca la sezione Norme nella pagina per visualizzare l'elenco delle norme che abbiamo configurato finora.

154da627959c54f3.png

Ottimo. Ora hai configurato un criterio di avviso personalizzato che ti invierà una notifica in caso di aumento del tasso di errori durante la ricerca dell'API Inventory.

9. Service Monitoring (facoltativo)

In questa sezione, configureremo SLI/SLO per i nostri servizi in base ai principi di Site Reliability Engineering (SRE). Noterai che Cloud Monitoring ti semplifica il lavoro rilevando automaticamente i servizi di cui hai eseguito il deployment in Cloud Run e calcolando automaticamente le SLI chiave come disponibilità e latenza, oltre ai calcoli del budget di errore.

Configuriamo l'SLO di latenza per il nostro servizio API.

Configurazione dello SLO di latenza per il servizio di inventario

Fai clic su Monitoring → Servizi dal menu principale di Cloud Console. Viene visualizzato l'elenco dei servizi configurati per il monitoraggio del servizio.

Al momento non abbiamo servizi configurati per il monitoraggio SLI/SLO, quindi l'elenco è vuoto. Fai clic sul link DEFINISCI SERVIZIO in alto per definire / identificare prima un servizio.

42d14515a481213.png

In questo modo verranno rilevati automaticamente i servizi candidati per il monitoraggio SLO. È in grado di rilevare i servizi Cloud Run e quindi il nostro servizio API Inventory di cui è stato eseguito il deployment in Cloud Run sarà visibile nell'elenco.

522aaba719f85c54.png

Il nome visualizzato che vedi potrebbe essere diverso e dipende da ciò che hai scelto al momento del deployment del servizio su Cloud Run. Fai clic sul pulsante INVIA. Verrà visualizzata la schermata mostrata di seguito:

eca08010ab6858a9.png

Puoi fare clic su CREA SLO. Ora puoi scegliere tra gli indicatori SLI calcolati automaticamente per te.

556e49b10d22e5ac.png

Per iniziare, scegliamo SLI di latenza. Fai clic su CONTINUA. Nella schermata successiva vengono mostrate le prestazioni attuali del servizio e la latenza tipica.

a9cc6f6778c13b52.png

Abbiamo inserito un valore per la soglia, ad esempio 300 ms, che è il valore che vogliamo raggiungere. Puoi scegliere un valore diverso, ma tieni presente che influirà sul budget di errore che definisci di conseguenza. Fai clic su CONTINUA.

Ora impostiamo lo SLO (target e finestra di misurazione) come mostrato di seguito:

e1fc336d4191c08e.png

Ciò significa che selezioniamo la finestra di misurazione come finestra di tipo Rolling e la misuriamo in un periodo di 7 giorni. Analogamente, per il target abbiamo scelto un obiettivo del 90%. Ciò che stiamo cercando di dire è che il 90% delle richieste al servizio API deve essere completato entro 300 ms e questo deve essere misurato nell'arco di 7 giorni.

Fai clic su Continua. Viene visualizzata la schermata di riepilogo, che puoi confermare facendo clic sul pulsante AGGIORNA SLO.

f2540173d9f4a4b7.png

In questo modo, la definizione dello SLO viene salvata e il budget di errore viene calcolato automaticamente.

76393df0e189104.png

Ecco alcune cose che puoi provare a fare:

  1. Esercitati con l'API tramite più chiamate e osserva il rendimento del servizio e il suo impatto sul budget di errore rimanente.
  2. Modifica il codice sorgente per introdurre un ritardo (sleep) aggiuntivo in modo casuale in alcune chiamate. In questo modo, la latenza di una serie di chiamate aumenterà e il budget di errore dovrebbe risentirne negativamente.

10. Complimenti

Congratulazioni, hai eseguito il deployment di un'applicazione di esempio su Google Cloud e hai imparato a utilizzare la suite operativa di Google Cloud per monitorare l'integrità dell'applicazione.

Argomenti trattati

  • Eseguire il deployment di un servizio in Google Cloud Run.
  • Configurazione di una dashboard per il servizio Google Cloud Run.
  • Controlli di uptime.
  • Configurazione di metriche dei log personalizzate e di dashboard/grafici basati su queste metriche.
  • Esplorazione di Esplora metriche e configurazione di dashboard/grafico.
  • Configurazione delle policy di avviso.
  • Configurazione di SLI/SLO per il monitoraggio del servizio in Google Cloud.

Nota:se hai eseguito il codelab utilizzando il tuo account e il tuo progetto Google Cloud, le risorse allocate potrebbero continuare a generare un addebito di fatturazione. Pertanto, elimina il progetto e le risorse al termine del lab.

Passaggi successivi

Dai un'occhiata a questa quest di Cloud Skills Boost per scoprire di più sulla suite operativa di Google Cloud.

Further reading