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 principali della suite operativa di Cloud includono Cloud Monitoring, Cloud Logging e Cloud Tracing.

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. 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 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 a tuo ritmo

Se non hai ancora 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 per i partecipanti a questo progetto. Si tratta di 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 Cloud genera automaticamente una stringa univoca; di solito non è importante quale sia. Nella maggior parte dei codelab, dovrai 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 il tuo e vedere se è disponibile. Non può essere modificato dopo questo passaggio e rimarrà invariato 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ò mai essere riutilizzato

  1. Successivamente, dovrai abilitare la fatturazione nella console Cloud per utilizzare le API/risorse Cloud. L'esecuzione di questo codelab non dovrebbe costare molto, se non del tutto. 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 possono partecipare al programma Prova senza costi di 300$.

Configurazione di Google Cloud Shell

Sebbene Google Cloud e Google Cloud Trace possano essere utilizzati 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 (dovrebbero bastare 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 descrive di cosa si tratta. In questo caso, fai clic su Continua (e non la vedrai mai più). Ecco come appare quella singola schermata:

9c92662c6a846a5c.png

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

9f0e51b578fecce5.png

Questa macchina virtuale contiene 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 e l'autenticazione della rete. Gran parte, se non tutto, del lavoro in questo codelab può essere svolto semplicemente con un browser o con il tuo 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 stabilita 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, esegui semplicemente il seguente comando:

gcloud config set project <PROJECT_ID>

Cloud Shell imposta anche alcune variabili di ambiente per impostazione predefinita, che potrebbero essere utili per l'esecuzione di 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 utilizzarne una 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 API di inventario 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.

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

  • https://<somehost>/inventory

Verranno elencati tutti gli articoli del 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, 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 di inventario disponibile

I-1

10

I-2

20

I-3

30

Di seguito sono riportate la richiesta e la risposta API di esempio:

Richiesta API

Risposta API

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

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

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

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

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

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

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

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

Clona il repository

Sebbene Google Cloud possa 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 pochi istanti per eseguire il provisioning e connettersi all'ambiente. Al termine, dovresti vedere qualcosa di simile a questo:

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 e l'autenticazione di rete. Tutto il lavoro in questo lab può essere svolto semplicemente con un browser.

Configurare 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 il seguente 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

Per eseguire l'applicazione localmente, segui questi passaggi:

  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, inserisci il seguente comando (al momento della stesura, Cloud Shell è dotato di Python 3.9.x e utilizzeremo la versione predefinita. Se prevedi di eseguirlo localmente sul tuo laptop, puoi utilizzare Python 3.8 e versioni successive:
$ python app.py
  1. Puoi eseguire il seguente comando per avviare il server Python in locale.

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 così. Modifica l'URL in modo che dopo il nome host sia presente solo /inventory.

Ad esempio, sulla mia macchina ha 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. 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 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, dai 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à attivato API specifiche nel tuo progetto Google Cloud.

  1. Nome del servizio (python-flask-api): utilizza questo valore predefinito o scegli qualcosa di simile a my-inventory-api
  2. L'API [run.googleapis.com] non è abilitata nel progetto [project-number]. Vuoi attivare e riprovare (l'operazione richiederà alcuni minuti)? (y/N)? Y
  3. Specifica una regione: scegli una regione di tua scelta inserendo un numero.
  4. L'API [artifactregistry.googleapis.com] non è abilitata nel progetto [project-number]. Vuoi attivare e riprovare (l'operazione richiederà alcuni minuti)? (y/N)? Y
  5. Il deployment da sorgente richiede un repository Docker Artifact Registry per archiviare i container compilati. 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à avviata la procedura per acquisire il codice sorgente, eseguirlo in un contenitore, eseguirlo in Artifact Registry e quindi eseguire il deployment del servizio Cloud Run e della revisione. Devi essere paziente durante questa procedura (può richiedere 3-4 minuti) e dovresti vedere che la procedura viene completata con l'URL del servizio visualizzato.

Di seguito è riportata un'esecuzione di esempio:

7516696ea5b3004b.png

Testare 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 del passaggio precedente. Ad esempio, nella mia configurazione, è 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>/inventario
  4. <SERVICE_URL>/inventario/I-1
  5. <SERVICE_URL>/inventory/I-100

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

Ottenere 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. Viene 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, dovresti vedere qualcosa di 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

Tieni presente l'URL, che non è altro che l'URL del servizio che puoi inserire nel browser per accedere all'API Inventory che abbiamo appena disegnato. Non esitare a consultare le metriche e altri dettagli.

Iniziamo subito con Google Cloud Operations Suite.

4. Configurare una dashboard

Una delle comode funzionalità offerte da Cloud Monitoring è la disponibilità di dashboard predefinite per più risorse in Google Cloud. In questo modo, la configurazione iniziale delle dashboard con metriche standard è 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

Poiché abbiamo disegnato il nostro servizio API in Cloud Run, vediamo come configurare le dashboard che possono aiutarti 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 il momento, fai clic su Dashboard nel menu principale laterale. Verrà visualizzata la seguente schermata:

c9110b6f065100da.png

Fai clic su LIBRERIA DI ESEMPI . Viene visualizzato l'elenco delle dashboard Out-of-the-Box (OOTB) disponibili in Google Cloud in più risorse. In particolare, scorri verso il basso nell'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. Viene visualizzata una schermata della dashboard con un nome precompilato come mostrato di seguito:

531cb8434b18193a.png

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

Fai clic sul link della dashboard per monitorare più metriche disponibili immediatamente. Queste metriche includono Latenza, Conteggio richieste, Metriche contenitore e altro ancora.

Puoi anche scegliere di contrassegnare una dashboard come preferita selezionando l'icona a forma di stella, come mostrato di seguito:

fc993d1a17415550.png

In questo modo, la dashboard verrà aggiunta alla schermata Panoramica del 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 il monitoraggio dei tuoi servizi Cloud Run. Ottimo lavoro.

5. Controlli di uptime

In questa sezione configureremo un controllo del tempo di attività per il nostro 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 o risorse Google Cloud disponibili pubblicamente 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 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://<SERVICE_URL>/healthy e controlli se la stringa "All Izz Well" 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 attraverso il quale riceverai un avviso in caso di incidente/problema con una delle nostre risorse monitorate. Un esempio di canale di notifica è l'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 ricevere una notifica in caso di avvisi generati dal nostro sistema e che configureremo.

Per creare un canale di notifica:

Vai a Monitoraggio → Avvisi dal menu principale della console Google Cloud, come mostrato di seguito:

9f87859064c63b63.png

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

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 mostrato 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 è completata. Ora configuriamo il controllo di uptime.

Creazione di un controllo di uptime

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

484541aec65e605e.png

Viene 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 che abbiamo disegnato. 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. 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, poiché stiamo restituendo una stringa "All Izz Well" e vogliamo verificarlo.

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

a6011ac2ab3e0f10.png

Puoi vedere che stiamo attivando il controllo per "Corrispondenza dei contenuti" e poi impostando la risposta restituita dall'endpoint /healthy su "Tutto a posto". Fai clic su CONTINUA per passare al passaggio successivo, in cui configureremo l'avviso e il canale di notifica su cui ricevere l'avviso se il controllo dell'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 un nome. L'importante è selezionare il canale di notifica corretto dall'elenco configurato in precedenza.

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

80375bfab97fc313.png

Vai avanti e completa la procedura (fai clic sul pulsante CREA a sinistra). Google Cloud chiederà ai controlli di uptime configurati in regioni diverse di eseguire un ping all'URL e queste risposte verranno raccolte. Dopo alcuni minuti, vai alla sezione Monitoraggio → Controlli di uptime e, idealmente, dovresti vedere tutti gli indicatori verdi che indicano che l'URL era raggiungibile dai diversi controlli.

df17555ddbee1127.png

Se una delle sonde non riesce per un determinato 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. Ottimo lavoro.

6. Esplora metriche

Cloud Monitoring espone migliaia di metriche standard di più prodotti Google Cloud. Puoi esaminare queste metriche, eseguire query, convertirle in grafici, aggiungerle alle dashboard, generare avvisi e altro ancora.

L'obiettivo di questa sezione è:

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

Esplora la metrica Latenza per il servizio API Inventory

Vai a Monitoraggio → Esplora metriche dal menu principale della console Google Cloud. Verrà visualizzata la schermata di Metrics Explorer. Fai clic su SELEZIONA UNA METRICA. Ora puoi esplorare diverse risorse attive per le quali 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 della richiesta verrà visualizzata 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

Viene visualizzato il grafico di latenza come mostrato di seguito:

ad97f749eeacaa95.png

Crea grafico e dashboard personalizzata

Salvamo 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 dashboard esistente. Fai clic sul pulsante SALVA. 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

Questa è la fine della sezione sull'analisi di varie metriche tramite Metrics Explorer e su come creare le nostre dashboard personalizzate.

7. Cloud Logging

In questa sezione esploreremo Cloud Logging. Cloud Logging è dotato di un'interfaccia di Logs Explorer che ti aiuta a navigare e analizzare i log generati da vari servizi Google e dalle tue applicazioni.

In questa sezione, apprenderemo a utilizzare 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 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 Cloud Run, ovvero i servizi Cloud Run di cui abbiamo eseguito il deployment. Vedrai diverse richieste di controllo dell'uptime che colpiscono 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://&lt;SERVICE_URL&gt;/inventory/I-999

Ora cercheremo tutti gli avvisi 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="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 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 in Esplora log.

fa9a5e04922aa412.png

Viene visualizzato il modulo per creare la definizione della metrica. Scegli una metrica di tipo contatore 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 quello mostrato di seguito:

ab9058028185e4d5.png

Vai a 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 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 che vedi di seguito. Fai clic sull'opzione Visualizza in Esplora metriche.

7586f0789a0bdb41.png

Dovremmo visualizzare Esplora metriche, che abbiamo imparato a conoscere nella sezione precedente, tranne per il fatto che ora è precompilato per noi.

7ee7403d0639ce25.png

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

9009da45f76eb4c5.png

Ora verrà creata una nuova dashboard in cui puoi vedere gli errori di ricerca dell'inventario e sarà disponibile nell'elenco delle dashboard.

201ed66957cb64f9.png

Ottimo. Hai creato una metrica personalizzata dai tuoi log e la hai convertita in un grafico presente in 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 ne monitoreremo i dati per una soglia, ovvero se il numero di errori supera una determinata soglia, verrà generato un avviso. In altre parole, configureremo un criterio di avviso.

Creare un criterio di avviso

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

3591a1dd91a8b9fd.png

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

5e76fc20d8387984.png

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

65ccd1eaca607831.png

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

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

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 che abbiamo creato in precedenza. Puoi compilare gli altri dettagli, come 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 creato, questo criterio di avviso sarà visibile nell'elenco dei criteri di avviso, come mostrato di seguito. Per accedere all'elenco dei criteri di avviso, vai a 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. Monitoraggio dei servizi (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.

Andiamo avanti e impostiamo lo SLO di latenza per il nostro servizio API.

Configurare lo SLO di latenza per il servizio di inventario

Fai clic su Monitoraggio → Servizi nel menu principale di Cloud Console. Viene visualizzato l'elenco dei servizi configurati per il monitoraggio dei servizi.

Al momento non abbiamo configurato alcun servizio per il monitoraggio degli SLI/SLO, pertanto l'elenco è vuoto. Fai clic sul link DEFINE SERVICE (DEFINISCI SERVIZIO) in alto per definire / identificare un servizio.

42d14515a481213.png

Verranno rilevati automaticamente i servizi idonei per il monitoraggio SLO. È in grado di rilevare 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 dipenderà da ciò che hai scelto al momento del deployment del servizio in Cloud Run. Fai clic sul pulsante INVIA. Viene visualizzata la schermata seguente:

eca08010ab6858a9.png

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

556e49b10d22e5ac.png

Per iniziare, scegliamo lo SLI di latenza. Fai clic su CONTINUA. A questo punto viene visualizzata una schermata che mostra il rendimento attuale di questo servizio e la latenza tipica.

a9cc6f6778c13b52.png

Inseriamo un valore per la soglia, ad esempio 300 ms, che è il valore che vogliamo raggiungere. Se vuoi, 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 a rotazione e la misuriamo nell'arco di 7 giorni. Allo stesso modo, per il target abbiamo scelto un obiettivo del 90%. In altre parole, il 90% delle richieste al servizio API deve essere completato entro 300 ms e questo valore 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:

  1. Esegui l'API tramite più chiamate e controlla il rendimento del servizio e il suo impatto sul budget degli errori rimanente.
  2. Modificare il codice sorgente per introdurre un ritardo (sleep) aggiuntivo in modo casuale in alcune chiamate. Ciò aumenterà la latenza per un certo numero di chiamate e dovrebbe influire negativamente sul budget di errori.

10. Complimenti

Congratulazioni, hai eseguito correttamente il deployment di un'applicazione di esempio in Google Cloud e hai imparato a utilizzare la suite operativa Google Cloud per monitorare lo stato 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 di metriche dei log personalizzate e dashboard/grafici in base a queste.
  • Esplorazione delle metriche di esplorazione e configurazione di una dashboard/grafico.
  • Configurazione dei criteri di avviso.
  • Configurazione di SLI/SLO per il monitoraggio dei servizi 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 in fatturazione. Pertanto, elimina il progetto e le risorse al termine del lab.

Passaggi successivi

Consulta questa Quest di Cloud Skills Boost per scoprire di più su Google Cloud Operations Suite.

Per approfondire