Controllare la presenza di errori in un'app che ha subito un arresto anomalo utilizzando Error Reporting
Puoi utilizzare Error Reporting per visualizzare, assegnare la priorità e risolvere gli arresti anomali delle applicazioni, aiutando il tuo team a identificare i problemi e risolvere gli errori prima che influiscano sugli utenti.
In questa guida rapida, simulerai le condizioni di errore in un Google Cloud progetto, visualizzerai i dettagli degli errori nella Google Cloud console e configurerai le notifiche per ricevere avvisi quando si verificano nuovi errori.
Per seguire le indicazioni dettagliate per questa attività direttamente nella Google Cloud console, fai clic su Procedura guidata:
Prima di iniziare
- Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Apri Cloud Shell per il tuo Google Cloud progetto. Durante l'avvio, viene visualizzato il messaggio Connessione.
- Configura il tuo indirizzo email come canale di notifica supportato.
Simulare un errore
Per generare 11 errori di esempio, esegui lo script seguente in Cloud Shell:
COUNTER=0 while [ $COUNTER -lt 11 ]; do gcloud beta error-reporting events report --service tutorial --service-version v$((COUNTER/10+1)) \ --message "java.lang.RuntimeException: Error rendering template $COUNTER at com.example.TestClass.test(TestClass.java:51) at com.example.AnotherClass(AnotherClass.java:25) at javax.servlet.http.HttpServlet.service (HttpServlet.java:617) at javax.servlet.http.HttpServlet.service (HttpServlet.java:717)" if [ $COUNTER -eq 10 ]; then echo "All sample errors reported." fi let COUNTER=COUNTER+1 doneQuando lo script termina di generare tutti gli errori, restituisce la seguente riga:
All sample errors reported.
Visualizzare gli errori in Error Reporting
-
Nella Google Cloud console, vai alla pagina Error Reporting:
Puoi trovare questa pagina anche utilizzando la barra di ricerca.
La dashboard di Error Reporting mostra un elenco riepilogativo di ogni errore rilevato e il numero di occorrenze di ciascun errore. Quando l'opzione Ricarica automatica è attiva, Error Reporting ricarica automaticamente l'elenco degli errori ogni 10 secondi.
Lo screenshot seguente mostra una pagina di Error Reporting di esempio:
Fai clic sul nome dell'errore per visualizzare la pagina dei dettagli dell'errore, che contiene tutte le informazioni disponibili su un errore. Se Gemini è abilitato nel progetto, puoi utilizzarlo per ricevere suggerimenti per la risoluzione dei problemi.
Configurare le notifiche
Puoi configurare Error Reporting in modo che ti invii una notifica quando si verifica un nuovo tipo di errore. Le notifiche non vengono inviate quando si verificano nuove occorrenze di errori esistenti:
-
Nella Google Cloud console, vai alla pagina Error Reporting:
Puoi trovare questa pagina anche utilizzando la barra di ricerca.
Per attivare le notifiche via email, fai clic su Configura notifiche.
Nel menu Canali di notifica, seleziona il tuo indirizzo email, quindi seleziona Salva.
Per generare nuovi tipi di errori, fai clic su terminal Attiva Cloud Shell ed esegui lo script seguente:
COUNTER=0 while [ $COUNTER -lt 3 ]; do gcloud beta error-reporting events report --service tutorial --service-version v1 \ --message "java.lang.ArrayIndexOutOfBoundsException: $COUNTER at com.example.AppController.createUser(AppController.java:42) at com.example.User(User.java:31) at javax.servlet.http.HttpServlet.service (HttpServlet.java:617) at javax.servlet.http.HttpServlet.service (HttpServlet.java:717)" let COUNTER=COUNTER+1 done echo "All sample errors reported."Quando lo script termina di generare tutti gli errori, restituisce la seguente riga:
All sample errors reported.Controlla la tua email per verificare se hai ricevuto un messaggio da "Stackdriver Notifications".
Generare messaggi di errore da un'app App Engine
I messaggi di esempio generati dagli script precedenti simulano le condizioni di errore. Per generare errori da un servizio live in esecuzione nel tuo Google Cloud progetto, segui i passaggi descritti in questa sezione.
Eseguire il deployment di un'app
Per scaricare ed eseguire il deployment di un'app in App Engine:
Scarica e configura l'applicazione dal progetto GitHub python-docs-samples:
Clona il progetto in Cloud Shell:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
Git restituisce un messaggio simile al seguente:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples Cloning into 'python-docs-samples'...
Crea un ambiente Python isolato e attivalo:
cd python-docs-samples/appengine/standard_python3/hello_world virtualenv env -p python3 source env/bin/activate
Installa le dipendenze:
pip install -r requirements.txt
Verifica che l'installazione e la configurazione dell'applicazione siano andate a buon fine:
Esegui l'applicazione:
python main.py
Per visualizzare l'applicazione in una pagina web locale, fai clic sul link visualizzato in Cloud Shell. La pagina web mostra
Hello World!.Per arrestare l'applicazione in esecuzione, inserisci
Ctrl-Cin Cloud Shell.
Carica l'applicazione in App Engine:
gcloud app deploy
Se ti viene richiesta una regione di deployment, selezionane una vicina a te. Inserisci
Yquando ti viene chiesto se vuoi continuare. Dopo qualche istante, il caricamento è completato.Visualizza l'applicazione in un browser eseguendo questo comando in Cloud Shell:
gcloud app browse
Se Google Cloud CLI non riesce a trovare il browser, il comando precedente visualizza un messaggio di errore e un link. Fai clic sul link visualizzato. Nel browser viene visualizzato il messaggio
Hello, World!.
Generare un errore
Per creare un errore che Error Reporting rileva e visualizza:
Modifica
main.pye cambiareturn 'Hello World!
a
return 'Hello World!' + 1000
Quando viene eseguita, questa modifica causa un'eccezione
TypeErrordi Python perché non è consentito concatenare una stringa e un numero intero.Carica l'applicazione modificata in App Engine:
gcloud app deploy
Torna alla scheda del browser contenente l'applicazione in esecuzione e ricarica la pagina. A causa della modifica, anziché visualizzare
Hello, World!, la pagina mostra un messaggio di errore:Internal Server Error The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
Se non vedi questo messaggio, attendi un minuto e ricarica di nuovo la pagina. L'attivazione della nuova versione potrebbe richiedere alcuni istanti.
Visualizzare l'errore in Error Reporting
Per visualizzare l'errore, segui le istruzioni nella sezione precedente Visualizzare gli errori in Error Reporting.
Libera spazio
Per evitare che al tuo Google Cloud account vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.
- Nella Google Cloud console, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.