Comprobar si una aplicación que ha fallado tiene errores con Error Reporting
Error Reporting proporciona un único lugar para monitorizar las condiciones de error de todas las aplicaciones y servicios de un Google Cloud proyecto, así como de las aplicaciones de Amazon Elastic Compute Cloud (EC2).
En esta guía, aprenderemos a hacer lo siguiente:
Simula un error de un servicio en un proyecto de Google Cloud .
Usa Error Reporting para ver el error y cambiar su estado, de forma que otros miembros de tu equipo sepan que se está solucionando el problema.
Configura las notificaciones para saber cuándo se producen nuevos tipos de errores.
Para seguir las instrucciones paso a paso de esta tarea directamente en la Google Cloud consola, haga clic en Ayúdame:
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Abre un Cloud Shell para tu Google Cloud proyecto. Mientras se inicia, se muestra el mensaje
Conectando.
Para generar 11 errores de muestra, ejecuta la siguiente secuencia de comandos en 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 done
Cuando la secuencia de comandos termine de generar todos los errores, imprimirá la siguiente línea:
All sample errors reported.
-
En la Google Cloud consola, ve a la página Error Reporting:
También puedes encontrar esta página mediante la barra de búsqueda.
El panel de control de informes de errores muestra una lista de resumen de cada error encontrado y el número de veces que se ha producido. Si la opción Recarga automática está activada, Informes de errores vuelve a cargar automáticamente la lista de errores cada 10 segundos.
En la siguiente captura de pantalla se muestra una página de ejemplo de informes de errores:
Haga clic en el nombre del error para ver la página de detalles, que contiene toda la información disponible sobre el error. Si Gemini está habilitado en el proyecto, puedes usarlo para obtener sugerencias para solucionar problemas.
-
En la Google Cloud consola, ve a la página Error Reporting:
También puedes encontrar esta página mediante la barra de búsqueda.
Para habilitar las notificaciones por correo, haz clic en Más more_vert y selecciona Activar notificaciones de errores nuevos del proyecto en la lista desplegable.
Para generar nuevos tipos de errores, haz clic en Activar Cloud Shell
y ejecuta la siguiente secuencia de comandos:
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)" if [ $COUNTER -eq 10 ]; then echo "All sample errors reported." fi let COUNTER=COUNTER+1 done
Cuando la secuencia de comandos termine de generar todos los errores, imprimirá la siguiente línea:
All sample errors reported.
Busca en tu correo un mensaje de "Stackdriver Notifications".
Descarga y configura la aplicación desde el proyecto de GitHub python-docs-samples:
Clona el proyecto en Cloud Shell:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
Git devuelve un mensaje similar a este:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples Cloning into 'python-docs-samples'...
Crea un entorno de Python aislado y actívalo:
cd python-docs-samples/appengine/standard_python3/hello_world virtualenv env -p python3 source env/bin/activate
Instala las dependencias:
pip install -r requirements.txt
Verifica que la instalación y la configuración de la aplicación se hayan realizado correctamente:
Ejecuta la aplicación:
python main.py
Para ver la aplicación en una página web local, haz clic en el enlace que se muestra en Cloud Shell. En la página web se muestra
Hello World!
.Para detener la aplicación en ejecución, introduce
Ctrl-C
en Cloud Shell.
Sube tu aplicación a App Engine:
gcloud app deploy
Si se te pide que elijas una región de implementación, selecciona una que esté cerca de ti. Escribe
Y
cuando se te pregunte si quieres continuar. Al cabo de unos instantes, la subida se completará.Para ver tu aplicación en un navegador, ejecuta el siguiente comando en Cloud Shell:
gcloud app browse
Si la CLI de Google Cloud no encuentra tu navegador, el comando anterior muestra un mensaje de error y un enlace. Haz clic en el enlace que se muestra. El mensaje
Hello, World!
se muestra en el navegador.Editar
main.py
y cambiarreturn 'Hello World!
a
return 'Hello World!' + 1000
Cuando se ejecuta, este cambio provoca una excepción de Python
TypeError
porque no se puede concatenar una cadena y un número entero.Sube la aplicación modificada a App Engine:
gcloud app deploy
Vuelve a la pestaña del navegador que contiene la aplicación en ejecución y vuelve a cargar la página. Debido a este cambio, en lugar de mostrar
Hello, World!
, la página muestra un mensaje de error: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 no ves este mensaje, espera un minuto y vuelve a cargarla. Puede que tarde unos minutos en activarse la nueva versión.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Simular un error
Ver los errores en Error Reporting
Configurar notificaciones
Puedes configurar Error Reporting para que te avise cuando se produzca un nuevo tipo de error. No se envían notificaciones cuando hay nuevas instancias de errores ya existentes:
Generar mensajes de error desde una aplicación de App Engine
Aunque los mensajes de ejemplo que has generado a partir de las secuencias de comandos simulan completamente las condiciones de error en Error Reporting, si quieres generar errores desde un servicio real que se ejecute en tu proyecto Google Cloud , sigue los pasos que se indican en esta sección.
Cómo implementar una aplicación
Para descargar y desplegar una aplicación en App Engine, sigue estos pasos:
Generar un error
Para crear un error que Error Reporting detecte y muestre, haga lo siguiente:
Ver el error en Error Reporting
Para ver el error, siga las instrucciones de la sección anterior Ver los errores en Error Reporting.
Limpieza
Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.