Si los errores de tu aplicación no aparecen en Error Reporting, realiza los siguientes pasos para solucionar los problemas.
Antes de comenzar
Verificar que Error Reporting pueda analizar tus registros
Error Reporting es un servicio global compilado en Cloud Logging y puede analizar entradas de registro cuando se cumplen las siguientes condiciones:
- Las entradas de registro se almacenan en un bucket de registros en la ubicación
global
. - Las claves de encriptación administradas por el cliente (CMEK) están inhabilitadas en el bucket de registros. Si quieres obtener información para determinar la configuración de CMEK de un bucket de registros, consulta Verifica la habilitación de claves.
- El bucket de registros cumple con una de las siguientes condiciones:
- El bucket de registros se almacena en el mismo proyecto en el que se originaron los registros.
- Los registros se enrutaron hacia un proyecto y, luego, ese proyecto los almacenó en un bucket de registros que le pertenece.
Para ver si Error Reporting puede analizar tus registros, verifica que los almacenes en buckets en la región
global
, en la que los proyectos de Google Cloud de origen y de destino son iguales.Para ver una lista de los receptores que configuraste, ejecuta el siguiente comando:
gcloud logging sinks list
El comando muestra un resultado similar al siguiente:
NAME DESTINATION FILTER _Default logging.googleapis.com/projects/my-team-project/locations/global/buckets/_Default NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT LOG_ID("externalaudit.googleapis.com/activity") AND NOT LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT LOG_ID("externalaudit.googleapis.com/system_event") AND NOT LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT LOG_ID("externalaudit.googleapis.com/access_transparency") _Required logging.googleapis.com/projects/my-team-project/locations/global/buckets/_Required LOG_ID("cloudaudit.googleapis.com/activity") OR LOG_ID("externalaudit.googleapis.com/activity") OR LOG_ID("cloudaudit.googleapis.com/system_event") OR LOG_ID("externalaudit.googleapis.com/system_event") OR LOG_ID("cloudaudit.googleapis.com/access_transparency") OR LOG_ID("externalaudit.googleapis.com/access_transparency") logs-from-samples logging.googleapis.com/projects/my-team-project/locations/global/buckets/sample-bucket (empty filter) regional_logs logging.googleapis.com/projects/my-team-project/locations/europe-west1/buckets/bucket_for_regional_logs (empty filter) test-logs logging.googleapis.com/projects/team-b-project/locations/global/buckets/test-bucket (empty filter)
En este ejemplo, el proyecto de origen de los registros de Google Cloud es
my-team-project
. Estos fueron algunos de los resultados:- Error Reporting puede analizar los registros que enrutan los receptores
_Default
,_Required
ylogs-from-samples
porque enrutan los registros a buckets que están en la regiónglobal
dentro del mismo proyecto. - Error Reporting no puede analizar los registros almacenados en el bucket de registros llamado
test-logs
porque el receptor enmy-team-project
enruta los registros a un bucket de registros en un proyecto diferente. - Error Reporting no puede analizar los registros que enruta el receptor
regional_logs
porque los enruta a un bucket regional en la regióneurope-west1
.
- Las entradas de registro se almacenan en un bucket de registros en la ubicación
Asegúrate de tener Google Cloud CLI instalado.
Asegúrate de tener habilitado el componente
beta
para la CLI de gcloud.
Cuando usar los registros
En esta sección, se proporciona asistencia para solucionar problemas cuando tus datos de errores se escriben en buckets de Cloud Logging y en los que confías en Error Reporting para analizar de forma automática esos buckets de registros.
Genera una entrada de registro como ejemplo
Para confirmar la configuración de tu proyecto, puedes generar de manera programática una entrada de registro que Error Reporting recogerá con el siguiente comando gcloud
:
gcloud logging write --payload-type=json test-errors-log \
'{"serviceContext":
{"service": "manual-testing"},
"message": "Test Error\n at /test.js:42:42",
"context": {"httpRequest":
{"url": "/test","method": "GET","responseStatusCode": 500}}}'
A continuación, abre Error Reporting y confirma que ves el error creado recientemente.
Confirma el formato de entrada de registro
Navega a la página de Cloud Logging y busca una entrada de registro que contenga datos de excepción enviados desde tu aplicación.
Confirma que la entrada de registro utiliza el formato esperado.
Cuando usar una API de Error Reporting
Habilita la API
En el panel de navegación de la consola de Google Cloud, selecciona APIs y servicios, haz clic en Habilitar APIs y servicios y, luego, habilita la API de Error Reporting:
Ir a la configuración de la API de Error Reporting
Envía un error de prueba
Intenta enviar un error al servicio de forma manual.
Puedes informar un error de prueba a Error Reporting con el siguiente comando gcloud
:
gcloud beta error-reporting events report --service Manual --service-version test1 \
--message "java.lang.TestError: msg
at com.example.TestClass.test(TestClass.java:51)
at com.example.AnotherClass(AnotherClass.java:25)"
Puedes usar un comando cURL para probar tus llamadas a la API de REST. Reemplaza PROJECT_ID
y API_KEY
con los valores válidos antes de enviar el siguiente comando:
curl -X POST -H "Content-Type: application/json" \
-d '{"message":"java.lang.TestError: msg\n\tat com.example.TestClass.test(TestClass.java:51)\n\tat com.example.AnotherClass(AnotherClass.java:25)","serviceContext":{"service":"manual-testing"}}' \
https://clouderrorreporting.googleapis.com/v1beta1/projects/PROJECT_ID/events:report?key=API_KEY
Confirma la carga útil enviada
Asegúrate de que tu aplicación esté enviando datos de excepción a la API en el formato correcto y que contenga los atributos requeridos.