Vérifier les erreurs d'une application plantée à l'aide d'Error Reporting
Error Reporting vous permet d'afficher, de trier et de résoudre les plantages d'applications. Votre équipe peut ainsi identifier les problèmes et résoudre les erreurs avant qu'elles n'affectent les utilisateurs.
Dans ce guide de démarrage rapide, vous allez simuler des conditions d'erreur dans un Google Cloud projet, afficher les détails des erreurs dans la Google Cloud console, et configurer les notifications pour recevoir des alertes lorsque de nouvelles erreurs se produisent.
Avant de commencer
-
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.
- Ouvrez Cloud Shell pour le Google Cloud projet. Le message Connexion… s'affiche pendant le démarrage de la session.
- Configurez votre adresse e-mail comme canal de notification compatible.
Simuler une erreur
Pour générer 11 exemples d'erreurs, exécutez le script suivant dans 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 doneUne fois que le script a généré toutes les erreurs, il renvoie la ligne suivante :
All sample errors reported.
Afficher les erreurs dans Error Reporting
-
Dans la Google Cloud console, accédez à la page Error Reporting :
Vous pouvez également accéder à cette page à l'aide de la barre de recherche.
Le tableau de bord Error Reporting affiche un résumé de chaque erreur trouvée et le nombre d'occurrences de chaque erreur. Lorsque l'actualisation automatique est activée, Error Reporting actualise automatiquement la liste des erreurs toutes les 10 secondes.
La capture d'écran suivante montre un exemple de page de rapport d'erreurs :
Cliquez sur le nom de l'erreur pour afficher la page d'informations sur l'erreur, qui contient toutes les informations disponibles sur une erreur. Si Gemini est activé dans le projet, vous pouvez utiliser Gemini pour obtenir des suggestions de dépannage.
Configurer les notifications
Vous pouvez configurer Error Reporting pour vous avertir de l'arrivée d'un nouveau type d'erreur. Les notifications ne sont pas envoyées lorsqu'il y a de nouvelles occurrences d'erreurs existantes :
-
Dans la Google Cloud console, accédez à la page Error Reporting :
Vous pouvez également accéder à cette page à l'aide de la barre de recherche.
Pour activer les notifications par e-mail, cliquez sur Configurer les notifications.
Dans le menu Canaux de notification, sélectionnez votre adresse e-mail, puis cliquez sur Enregistrer.
Pour générer de nouveaux types d'erreurs, cliquez sur terminal Activer Cloud Shell et exécutez le script suivant :
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."Une fois que le script a généré toutes les erreurs, il renvoie la ligne suivante :
All sample errors reported.Vérifiez dans votre messagerie si vous avez reçu un message de "Stackdriver Notifications".
Générer des messages d'erreur à partir d'une application App Engine
Les exemples de messages générés par les scripts précédents simulent des conditions d'erreur. Pour générer des erreurs à partir d'un service en direct qui s'exécute dans votre Google Cloud projet, suivez les étapes décrites dans cette section.
Déployer une application
Pour télécharger et déployer une application sur App Engine, procédez comme suit :
Téléchargez et configurez l'application à partir du projet GitHub python-docs-samples :
Clonez le projet dans l'environnement Cloud Shell :
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
Git renvoie un message semblable à celui indiqué ci-dessous :
git clone https://github.com/GoogleCloudPlatform/python-docs-samples Cloning into 'python-docs-samples'...
Créez un environnement Python isolé et activez-le :
cd python-docs-samples/appengine/standard_python3/hello_world virtualenv env -p python3 source env/bin/activate
Installez les dépendances :
pip install -r requirements.txt
Vérifiez que l'installation et la configuration de l'application ont réussi :
Exécutez l'application :
python main.py
Pour afficher l'application sur une page Web locale, cliquez sur le lien affiché dans Cloud Shell. La page Web affiche le message
Hello World!.Pour arrêter votre application en cours d'exécution, saisissez
Ctrl-Cdans Cloud Shell.
Transférez l'application sur App Engine.
gcloud app deploy
Si vous êtes invité à indiquer une région de déploiement, sélectionnez-en une près de chez vous. Lorsque vous êtes invité à poursuivre l'opération, entrez
Y. L'importation se termine après quelques instants.Affichez l'application dans un navigateur en exécutant la commande suivante dans Cloud Shell :
gcloud app browse
Si Google Cloud CLI ne trouve pas votre navigateur, la commande précédente affiche un message d'erreur et un lien. Cliquez sur le lien affiché. Le message
Hello, World!s'affiche dans le navigateur.
Générer une erreur
Pour créer une erreur qu'Error Reporting détecte et affiche, procédez comme suit :
Modifiez le fichier
main.pyen remplaçantreturn 'Hello World!
à
return 'Hello World!' + 1000
Lorsqu'elle est exécutée, cette modification entraîne une exception
TypeErrorPython, car il est illégal de concaténer une chaîne et un entier.Téléchargez l'application modifiée sur App Engine :
gcloud app deploy
Retournez à l'onglet du navigateur contenant l'application en cours d'exécution et actualisez la page. En raison de la modification, la page affiche un message d'erreur au lieu du message
Hello, World!: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.
Si vous ne voyez pas ce message, attendez une minute et actualisez à nouveau la page. L'activation de la nouvelle version peut prendre quelques instants.
Afficher l'erreur dans Error Reporting
Pour afficher l'erreur, suivez les instructions de la section précédente Afficher les erreurs dans Error Reporting.
Libérer de l'espace
Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre Google Cloud compte pour les ressources utilisées sur cette page, procédez comme suit :
- Dans la Google Cloud console, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez Arrêter pour supprimer le projet.