Introduzione alla suite operativa di Google Cloud

1. Introduzione

Ultimo aggiornamento: 28-07-2023

Che cos'è la suite operativa di Google Cloud?

La suite operativa di Google Cloud è una piattaforma in cui è possibile monitorare, risolvere i problemi e migliorare le prestazioni delle applicazioni nel tuo ambiente Google Cloud. I pilastri fondamentali della suite operativa di Google Cloud includono Cloud Monitoring, Cloud Logging e Cloud Tracciamento.

Guarda questo video per una panoramica generale della Suite operativa di Google Cloud.

Cosa creerai

In questo codelab, eseguirai il deployment di un'API di esempio su Google Cloud. Quindi esplorerai e configurerai diverse funzionalità di 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 di funzionalità di Google Cloud Monitoring come dashboard, avvisi, controlli di uptime, monitoraggio SLI/SLO e altre 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 da seguire in modo autonomo

Se non disponi già di un account Google (Gmail o Google Apps), devi crearne uno. Accedi alla console della piattaforma Google Cloud ( console.cloud.google.com) e crea un nuovo progetto.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

c20a9642aaa18d11.png

  • Il nome del progetto è il nome visualizzato dei partecipanti del progetto. Si tratta di una stringa di caratteri non utilizzata dalle API di Google. Puoi aggiornarla 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 Cloud genera automaticamente una stringa univoca; di solito non ti importa cosa sia. Nella maggior parte dei codelab, dovrai fare riferimento all'ID progetto (in genere è identificato come PROJECT_ID). Se l'ID generato non ti soddisfa, puoi generarne un altro casuale. In alternativa, puoi provarne una personalizzata per verificare se è disponibile. Non può essere modificato dopo questo passaggio e rimarrà per tutta la durata del progetto.
  • Per informazione, c'è 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 nessun altro utente dopo essere stato selezionato. Sei l'unico utente di quell'ID. Anche se un progetto viene eliminato, l'ID non può più essere riutilizzato

  1. Successivamente, dovrai abilitare la fatturazione nella console Cloud per utilizzare risorse/API Cloud. Eseguire questo codelab non dovrebbe costare molto. Per arrestare le risorse in modo da non incorrere in fatturazione oltre questo tutorial, puoi eliminare le risorse che hai creato o eliminare l'intero progetto. I nuovi utenti di Google Cloud sono idonei al programma prova senza costi di 300$.

Configurazione di Google Cloud Shell

Mentre 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 (il provisioning e la connessione all'ambiente dovrebbero richiedere solo pochi minuti).

30c26f30d17b3d46.png

Se non hai mai avviato Cloud Shell, ti viene mostrata una schermata intermedia (below the fold) che descrive di cosa si tratta. In tal caso, fai clic su Continua (e non la vedrai più). Ecco come appare quella singola schermata:

9c92662c6a846a5c.png

Il provisioning e la connessione a Cloud Shell dovrebbero richiedere solo qualche istante.

9f0e51b578fecce5.png

Questa macchina virtuale viene caricata con tutti gli strumenti di sviluppo di cui hai bisogno. Offre una home directory permanente da 5 GB e viene eseguita in Google Cloud, migliorando notevolmente le prestazioni di rete e l'autenticazione. Gran parte, se non tutto, del lavoro in questo codelab può essere svolto semplicemente con un browser o 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:

Dopo la connessione a Cloud Shell, dovresti vedere che hai già eseguito l'autenticazione e che il progetto è già impostato su 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, invia semplicemente il seguente comando:

gcloud config set project <PROJECT_ID>

Cloud Shell imposta anche alcune variabili di ambiente per impostazione predefinita, cosa che può essere utile quando eseguirai comandi futuri.

echo $GOOGLE_CLOUD_PROJECT

Output comando

<PROJECT_ID>

Applicazioni di esempio

Abbiamo inserito tutto il necessario per questo progetto in un repository Git. Il repository contiene un paio di applicazioni di esempio e puoi scegliere di utilizzarle per questo esercizio.

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

3. Esegui il deployment dell'applicazione API

Qual è l'argomento dell'applicazione o dell'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 un conteggio specifico dell'inventario degli articoli.

Dopo aver eseguito il deployment dell'API e supponendo che sia ospitata su https://&lt;somehost&gt;, possiamo accedere agli endpoint API come segue:

  • https://&lt;somehost&gt;/inventory

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

  • https://&lt;somehost&gt;/inventory/{productid}

In questo modo otterrai un unico record con ID prodotto e livello di inventario disponibile per quel prodotto.

I dati di risposta restituiti sono in formato JSON.

Dati di esempio e richiesta/risposta dell'API

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

ID prodotto

Livello dell'inventario disponibile

I-1

10

I-2

20

I-3

30

Di seguito sono riportati alcuni esempi di Richiesta e risposta dell'API:

Richiesta API

Risposta dell'API

https://&lt;somehost&gt;/inventory

[ { &quot;I-1&quot;: 10, &quot;I-2&quot;: 20, &quot;I-3&quot;: 30 }]

https://&lt;somehost&gt;/inventory/I-1

{ &quot;productid&quot;: &quot;I-1&quot;, &quot;qty&quot;: 10}

https://&lt;somehost&gt;/inventory/I-2

{ &quot;productid&quot;: &quot;I-2&quot;, &quot;qty&quot;: 20}

https://&lt;somehost&gt;/inventory/I-200

{ &quot;productid&quot;: I-200, &quot;qty&quot;: -1}

Clona il repository

Anche se Google Cloud può essere utilizzato da remoto dal tuo laptop, in questo codelab utilizzerai Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.

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

bce75f34b2c53987.png

Dovrebbe richiedere solo qualche istante per eseguire il provisioning e connettersi all'ambiente. Al termine, dovresti vedere una schermata simile al seguente:

f6ef2b5f13479f3a.png

Questa macchina virtuale viene caricata con tutti gli strumenti di sviluppo necessari. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud, migliorando notevolmente le prestazioni di rete e l'autenticazione. Tutto il lavoro in 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 

Verrà creata una cartella denominata cloud-code-sample-repository in questa cartella.

(Facoltativo) Esegui l'applicazione su Cloud Shell

Puoi eseguire l'applicazione in locale seguendo questa procedura:

  1. Dal terminale, passa alla versione Python dell'API tramite questo comando:
$ cd cloud-code-sample-repository
$ cd python-flask-api
  1. Nel terminale, fornisci il comando seguente (al momento della scrittura, 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 questo comando per avviare il server Python localmente.

26570f586acaeacf.png

  1. 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. Verrà visualizzato un errore 404 e va bene. Modifica l'URL e sostituiscilo con /inventory dopo il nome host.

Ad es. sul mio computer, avrà il seguente aspetto:

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

Verrà visualizzato l'elenco degli elementi dell'inventario, come spiegato in precedenza:

ef6afb0184c58870.png

  1. Puoi arrestare subito il server andando al terminale e premendo Ctrl-C

Esegui il deployment dell'applicazione

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

Dal terminale, fornisci il seguente comando gcloud:

$ gcloud run deploy --source .

Verranno poste più domande (se ti viene chiesto di fornire un'autorizzazione, procedi) e alcuni dei punti sono indicati 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 servizio (python-flask-api): scegli questo valore predefinito o scegline uno come my-inventory-api
  2. API [run.googleapis.com] non abilitata sul progetto [numero-progetto]. Vuoi attivare e riprovare (l'operazione richiederà alcuni minuti)? (y/N)? Y
  3. Specifica una regione: scegli una regione inserendo un numero.
  4. API [artifactregistry.googleapis.com] non abilitata nel progetto [numero-progetto]. Vuoi attivare 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. Consentire chiamate non autenticate a [my-inventory-api] (y/N)? Y

Alla fine, questo avvierà il processo per prendere il codice sorgente, containerizzarlo, eseguirne il push su Artifact Registry e quindi eseguire il deployment del servizio e della revisione Cloud Run. Dovresti essere paziente durante questa procedura (che può richiedere 3-4 minuti) e dovresti vedere il completamento del processo con l'URL del servizio che ti viene mostrato.

Di seguito è riportato un esempio di esecuzione:

7516696ea5b3004b.png

Testa l'applicazione

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

  1. Prendi nota dell'URL del servizio nel passaggio precedente. Ad es. durante la configurazione, è indicato come https://my-inventory-api-bt2r5243dq-uw.a.run.app. Chiamiamo questo &lt;SERVICE_URL&gt;.
  2. Apri un browser e accedi ai tre URL seguenti per gli endpoint API:
  3. &lt;SERVICE_URL&gt;/inventory
  4. <SERVICE_URL>/inventario/I-1
  5. <SERVICE_URL>/inventory/I-100

Dovrebbe rispettare le specifiche che abbiamo fornito in una sezione precedente con esempi di richiesta e risposta dell'API.

Recupera i dettagli del servizio da Cloud Run

Abbiamo eseguito il deployment del nostro servizio API in 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 vedere il servizio di cui hai appena eseguito il deployment. A seconda del nome selezionato, il risultato dovrebbe essere simile al seguente:

10d2c363241d789c.png

Fai clic sul nome del servizio per visualizzare i dettagli. Di seguito sono riportati i dettagli di esempio:

1ec2c9e45ff1a2db.png

Osserva l'URL, che non è altro che l'URL del servizio che puoi forare nel browser e che puoi accedere all'API Inventory di cui abbiamo appena eseguito il deployment. Consulta le metriche e altri dettagli.

Passiamo subito alla suite operativa di Google Cloud.

4. Configura una dashboard

Una delle pratiche funzionalità offerte da Cloud Monitoring sono le dashboard out-of-the-box (OOTB) su più risorse di Google Cloud. Questo rende la configurazione iniziale delle dashboard con metriche standard in un processo rapido e pratico.

Vediamo come fare per il servizio API di cui abbiamo appena eseguito il deployment in Cloud Run.

Dashboard personalizzata per il nostro Servizio

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

Innanzitutto, nella console, vai a Monitoring → 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 il momento, 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 delle dashboard out-of-the-box (OOTB) disponibili in Google Cloud in più risorse. In particolare, scorri l'elenco verso il basso e seleziona Google Cloud Run come mostrato di seguito.

ddac4038d4fa91ae.png

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

Verrà visualizzata una dashboard per Cloud Run Monitoring. 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 Dashboard con un nome precompilato per lo stesso nome mostrato di seguito:

531cb8434b18193a.png

Puoi tornare indietro facendo clic sulla Freccia sinistra, a sinistra del nome della dashboard e, a destra, in alto a sinistra. Verrà visualizzato l'elenco delle dashboard, da cui dovresti essere in grado di visualizzare la nuova dashboard appena creata.

Facendo clic sul link Dashboard puoi monitorare diverse metriche disponibili fin da subito. Queste metriche includono Latenza, Conteggio richieste, Metriche container e altre.

Puoi inoltre scegliere di contrassegnare qualsiasi dashboard come preferita, semplicemente selezionando l'icona a forma di stella come mostrato di seguito:

fc993d1a17415550.png

La dashboard verrà aggiunta alla schermata Panoramica di Monitoring e diventerà un modo semplice per accedere alle dashboard utilizzate di frequente.

2e8f66e2652c55c5.png

1e1dffb5239ab110.png

Fantastico! Hai appena aggiunto una dashboard personalizzata per il monitoraggio dei 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.

La risorsa in questo caso sarà il servizio API di cui abbiamo eseguito il deployment in Cloud Run. L'URL sarà un endpoint specifico esposto dal servizio API per indicare l'integrità del servizio.

Nel codice di servizio API di esempio abbiamo esposto un endpoint /healthy che restituisce un valore di stringa "All Izz Well". Tutto ciò che dobbiamo fare è definire un controllo di uptime che funzioni come https://&lt;SERVICE_URL&gt;/healthy e controlli se la stringa https://&lt;SERVICE_URL&gt;/healthy viene restituita o meno.

Crea 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 riceverete un avviso in caso di incidente/problema con una delle nostre risorse monitorate. Un esempio di canale di notifica è Email e riceverai email in caso di avviso e così via.

Per il momento, configureremo un canale di notifica via email e lo configureremo con il nostro indirizzo email, in modo da poter ricevere notifiche in caso di avvisi rilevati dal nostro sistema e configurati da noi.

Per creare un canale di notifica, procedi nel seguente modo:

Dal menu principale della console Google Cloud, vai a Monitoring → Avvisi, come mostrato di seguito:

9f87859064c63b63.png

Verrà visualizzata una pagina contenente avvisi, criteri e altro ancora. Per il momento, vedrai un link nella parte superiore denominato MODIFICA CANALI DI NOTIFICA. Faccio clic su OK,

5ab54f42e6f7b99.png

Verrà visualizzato un elenco dei 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 illustrato di seguito:

d6ed98ffd0427fa3.png

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

La creazione del canale di notifica via email è terminata. Configuriamo subito il controllo di uptime.

Creazione di un controllo di uptime

Vai a Monitoring → Controlli di uptime dal menu principale della console Google Cloud. In alto vedrai il link CREA CONTROLLO DI UPTIME. Faccio clic su OK,

484541aec65e605e.png

Verrà visualizzata una serie di passaggi da completare per configurare il controllo di uptime.

Il primo passaggio consiste nel configurare i dettagli della destinazione, ovvero le informazioni sul servizio Cloud Run di cui abbiamo eseguito il deployment. Di seguito è riportato un modulo compilato:

4e2bb9fe022320f7.png

I diversi valori possono essere selezionati come segue:

  • Protocollo : HTTPS
  • Tipo di risorsa : seleziona il servizio Cloud Run. Osserva le altre risorse che supporta e che puoi impostare anche i controlli di uptime su di esse.
  • Servizio Cloud Run : seleziona my-inventory-api o il nome specifico per il servizio Cloud Run.
  • Il percorso è /healthy, perché viene restituita una stringa "All Izz Well" e vogliamo verificarla.

Fai clic su CONTINUA per andare al passaggio successivo. Il passaggio successivo è Convalida della risposta, come mostrato di seguito:

a6011ac2ab3e0f10.png

Puoi notare che stiamo attivando il controllo di "Corrispondenza di contenuti". quindi impostando in modo che la risposta restituita dall'endpoint /healthy sia "All Izz Well". Fai clic su CONTINUA per andare al passaggio successivo, in cui configureremo l'avviso e il canale di notifica per il quale ricevere un avviso se il controllo di uptime non va a buon fine.

d9738670efcb999f.png

In questo passaggio, assegna un nome all'avviso. L'ho selezionato come Errore durante il controllo di uptime dell'API inventario, ma puoi scegliere il tuo nome. È importante selezionare il canale di notifica corretto dall'elenco che hai configurato in precedenza.

Fai clic su ESAMINA per il passaggio finale e 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 potrai anche verificare se il controllo è configurato correttamente. Fai clic sul pulsante TEST.

80375bfab97fc313.png

Procedi e completa la procedura (fai clic sul pulsante CREA a sinistra). Google Cloud comunicherà ai probe del controllo di uptime configurati in diverse regioni di inviare un ping all'URL e queste risposte verranno raccolte. Dopo pochi minuti, visita la sezione Monitoraggio → Controlli di uptime e dovresti vedere tutti gli indicatori verdi che indicano che l'URL è raggiungibile dai diversi probe.

df17555ddbee1127.png

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

La sezione dedicata alla configurazione dei controlli di uptime termina qui. Ben fatto!

6. Esplora metriche

Cloud Monitoring espone migliaia di metriche standard da più prodotti Google Cloud. Queste metriche sono disponibili per analizzare, eseguire query, convertire in grafici, aggiungere a dashboard, generare avvisi e altro ancora.

L'obiettivo di questa sezione è:

  1. Dopo aver analizzato le diverse metriche, analizzeremo una metrica specifica (latenza) per il nostro servizio API.
  2. Converti la metrica in un grafico e in una dashboard personalizzata da utilizzare per visualizzarla in qualsiasi momento.

Esplora la metrica sulla 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 esplorare diverse risorse attive per cui sono state generate metriche.

Poiché abbiamo a che fare con i servizi Cloud Run, fai clic su Revisione Cloud Run , quindi sulla categoria e sulla metrica specifica intitolata Latenza richieste come illustrato di seguito:

7609d8156c8f1384.png

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

46086ac0a8eaf3d7.png

Viene visualizzato il grafico Latenza come mostrato di seguito:

ad97f749eeacaa95.png

Crea grafico e dashboard personalizzata

Ora salviamo questo grafico. Fai clic su Salva grafico e utilizza i dettagli indicati di seguito:

35d1788d5f0cb3c4.png

Tieni presente che stiamo creando una nuova dashboard anziché salvarla in una dashboard esistente. Fai clic sul pulsante SALVA. La dashboard appena creata verrà aggiunta al nostro elenco di dashboard, come mostrato di seguito:

c9cdcd63d5823abd.png

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

27354d8310d8a2d7.png

Abbiamo completato la sezione sull'analisi delle varie metriche tramite Esplora metriche e su come creare le dashboard personalizzate.

7. Cloud Logging

In questa sezione esploreremo Cloud Logging. Cloud Logging include un'interfaccia Esplora log che ti consente di esplorare e analizzare i log generati da vari servizi Google e dalle tue applicazioni.

In questa sezione parleremo di Esplora log e simuleremo alcuni messaggi di log che possiamo 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 illustrato 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 servizi ecc.) 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 abbiamo eseguito il deployment. Vedrai diverse richieste che sono controlli di uptime che interessano l'endpoint /healthy che abbiamo configurato.

Cercare gli avvisi

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

https://&lt;SERVICE_URL&gt;/inventory/I-999

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

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

resource.type=&quot;cloud_run_revision&quot;

textPayload =~ "Richiesta di inventario ricevuta per productid errato"

Il sito dovrebbe avere il seguente aspetto:

b3ee512a0c9c5c7b.png

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

5fdbd7c23bf4694f.png

Metriche basate su log

Creiamo una metrica di log personalizzata per monitorare questi errori. Vorremmo capire se il numero di chiamate che avviene con ID prodotto errati è significativo.

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

fa9a5e04922aa412.png

Verrà visualizzato il modulo per creare la definizione della metrica. Seleziona una metrica contatore e inserisci i dettagli di Nome metrica (inventory_lookup_errors) e Descrizione come mostrato di seguito, quindi fai clic su Crea metrica.

70b5719b472d4d02.png

In questo modo viene creata la metrica contatore. Dovresti visualizzare il seguente messaggio:

ab9058028185e4d5.png

Vai a Logging → Metriche basate su log dal menu principale. Dovresti vedere la metrica personalizzata che abbiamo definito nell'elenco di metriche definite dall'utente, come mostrato di seguito:

7d186e90559cf8e1.png

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

7586f0789a0bdb41.png

Questo dovrebbe portarci a Esplora metriche che abbiamo illustrato nella sezione precedente, con la differenza che ora è precompilato per noi.

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 puoi visualizzare gli errori di ricerca dell'inventario e che sarà disponibile nell'elenco delle dashboard.

201ed66957cb64f9.png

Ottimo! Hai creato una metrica personalizzata dai tuoi log e la hai convertita in un grafico all'interno di una dashboard personalizzata. In questo modo potremo monitorare il numero di chiamate che utilizzano ID prodotto errati.

8. Criteri di avviso

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

Crea un criterio di avviso

Andiamo alla dashboard Ricerca inventario. Verrà visualizzato il grafico creato in modo da rilevare gli errori di ricerca dell'inventario, come mostrato di seguito:

3591a1dd91a8b9fd.png

Verranno visualizzati i dati della metrica correnti. Innanzitutto, modifica la metrica come mostrato di seguito (fai clic sul pulsante Modifica):

5e76fc20d8387984.png

Verranno visualizzati i dettagli della metrica. Convertiremo il grafico mostrando il tasso di errori in una somma, ovvero un numero di errori. Il campo da modificare è il seguente:

65ccd1eaca607831.png

Fai clic su APPLICA nell'angolo in alto a destra. Torneremo alla schermata Metriche, ma questa volta potremo vedere il numero totale di errori nel periodo di allineamento e il tasso di errori.

Creeremo un criterio di avviso per avvisarci nel caso in cui il numero di errori superi una certa soglia. Fai clic sui tre puntini nell'angolo in alto a destra del grafico e fai clic su Converti in grafico degli avvisi nell'elenco di opzioni mostrato sopra.

cc9eec48b9bfbc92.png

Dovresti vedere una schermata come quella mostrata di seguito:

6202ad1e88679a78.png

Fai clic su Avanti per visualizzare un valore di soglia che possiamo impostare. La soglia di esempio che abbiamo rilevato qui è 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 inserire gli altri dettagli, come la documentazione (che verrà fornita nell'ambito dell'avviso che viene generato). Fai clic su AVANTI per visualizzare il riepilogo e completare la procedura.

c670b29da70c4655.png

Una volta creato, il criterio di avviso sarà visibile nell'elenco dei criteri di avviso, come mostrato di seguito. Puoi visualizzare l'elenco dei criteri di avviso da Monitoraggio → Avvisi. Cerca la sezione Norme di questa pagina per visualizzare l'elenco di criteri configurati finora.

154da627959c54f3.png

Ottimo! Ora hai configurato un criterio di avviso personalizzato che ti invierà una notifica nel caso in cui il tasso di errori aumentasse durante la ricerca dell'API Inventory.

9. Service Monitoring (facoltativo)

In questa sezione, configureremo gli SLI/SLO per i nostri servizi in base ai principi del Site Reliability Engineering (SRE). Noterai che Cloud Monitoring semplifica l'individuazione automatica dei servizi di cui hai eseguito il deployment in Cloud Run e può calcolare automaticamente gli SLI chiave come Disponibilità e Latenza insieme ai calcoli del budget di errore.

Configuriamo lo SLO di latenza per il nostro servizio API.

Configurare lo SLO di latenza per il servizio di inventario

Fai clic su Monitoring → Servizi nel menu principale della console Cloud. Verrà visualizzato l'elenco dei servizi che sono stati configurati per Service Monitoring.

Al momento non disponiamo di servizi che sono stati configurati per il monitoraggio SLI/SLO, quindi l'elenco è vuoto. Fai clic sul link DEFINIT SERVICE in alto per definire / identificare prima un servizio.

42d14515a481213.png

In questo modo verranno rilevati automaticamente i servizi candidati per il monitoraggio dello SLO. Può scoprire i servizi Cloud Run, pertanto il nostro servizio API Inventory di cui è stato eseguito il deployment in Cloud Run sarà visibile nell'elenco.

522aaba719f85c54.png

Il nome visualizzato potrebbe essere diverso e dipende dalla scelta effettuata al momento del deployment del servizio in Cloud Run. Fai clic sul pulsante INVIA. Si aprirà la seguente schermata:

eca08010ab6858a9.png

Puoi fare clic su CREA SLO. Questo ti consentirà di scegliere tra gli SLI calcolati automaticamente.

556e49b10d22e5ac.png

Scegliamo SLI di latenza come inizio. Fai clic su CONTINUA. Poi vedrai una schermata che mostra le prestazioni attuali del servizio e la latenza tipica.

a9cc6f6778c13b52.png

Inseriamo un valore per la soglia, ad esempio 300 ms , che è il risultato che vogliamo ottenere. Se vuoi, puoi scegliere un valore diverso, ma tieni presente che questo 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 a rotazione e la misuriamo nell'arco di 7 giorni. Allo stesso modo, per il target abbiamo scelto un obiettivo del 90%. Qui stiamo cercando di dire che il 90% delle richieste al servizio API deve essere completato entro 300 ms e questo dovrebbe essere misurato in 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 viene salvata la definizione dello SLO e il budget di errore viene calcolato automaticamente.

76393df0e189104.png

Ecco alcune cose che puoi provare a fare:

  1. Esercita l'API tramite più chiamate e controlla le prestazioni del servizio e come questo influisce sul budget di errore rimanente.
  2. Modificare il codice sorgente per introdurre un ulteriore ritardo (sospensione) in modo casuale in alcune chiamate. Questo aumenterà la latenza per un certo numero di chiamate e dovrebbe influire negativamente sul budget di errore.

10. Complimenti

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

Argomenti trattati

  • Deployment di un servizio in Google Cloud Run.
  • Configurazione di una dashboard per il servizio Google Cloud Run.
  • Controlli di uptime.
  • Configurazione delle metriche di log personalizzate e della dashboard/del grafico in base a queste metriche.
  • Esplorazione delle metriche di esplorazione e configurazione di una dashboard/grafico.
  • Configurazione dei criteri di avviso.
  • Configurazione di SLI/SLO per Service Monitoring 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 essere soggette a fatturazione. Una volta terminato il lab, elimina il progetto e le risorse.

Passaggi successivi

Dai un'occhiata alla Quest di Cloud Skills Boost per scoprire di più sulla suite operativa di Google Cloud.

Per approfondire