Si los errores de tu aplicación no aparecen en Error Reporting, sigue los siguientes pasos para solucionar los problemas.
Antes de comenzar
Verifica que Error Reporting pueda analizar tus entradas de registro.
Error Reporting es un servicio global compilado en Cloud Logging y puede analizar entradas de registro cuando se cumplen todas las siguientes condiciones:
- Las cargas de trabajo de Assured Workloads están inhabilitadas. Para obtener más información, consulta la descripción general de Assured Workloads.
- La opción Claves de encriptación administradas por el cliente (CMEK) está inhabilitada en todos los buckets de registro que almacenan la entrada de registro. Si deseas obtener información para determinar la configuración de CMEK de un bucket de registros, consulta Cómo verificar la habilitación de claves.
- El bucket de registros satisface una de las siguientes opciones:
- El bucket de registros se almacena en el mismo proyecto en el que se originaron las entradas de registro.
- Las entradas de registro se enrutaron a un proyecto y, luego, ese proyecto las almacenó en un bucket de registros que le pertenece.
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 Google Cloud de origen de las entradas de registro es
my-team-project
. Estos fueron algunos de los resultados:- Error Reporting puede analizar las entradas de registro que enrutan los receptores
_Default
,_Required
ylogs-from-samples
, ya que el bucket de registros lo almacena el mismo proyecto que enruta las entradas de registro. - Error Reporting no puede analizar las entradas de registro almacenadas en el bucket de registro llamado
test-logs
porque el receptor enmy-team-project
enruta las entradas de registro a un bucket de registros en un proyecto diferente.
Asegúrate de tener Google Cloud CLI instalada.
Asegúrate de que el componente
beta
esté habilitado 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 dependes de Error Reporting para analizar automáticamente esos buckets de registro.
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 detectará 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
-
Enable the required API.
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
yAPI_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.
Se registra un seguimiento de pila, pero Error Reporting no lo reconoce.
Registras un error con el campo message
de un jsonPayload
y esperas que
Error Reporting lo capture. Sin embargo, no se capturan los datos de error.
Para resolver este error, prueba lo siguiente:
Asegúrate de que
jsonPayload
no incluya un campostack_trace
niexception
. Cuando esos campos están presentes, no se evalúa el campomessage
.Asegúrate de que la estructura del seguimiento de pila esté en uno de los formatos de lenguaje de programación compatibles. Error Reporting no captura el seguimiento de pila cuando se usa un formato no compatible.
Para obtener más información, consulta Errores de formato en los registros.