En este documento, se describen situaciones comunes de solución de problemas para Error Reporting.
No se muestran los eventos de error enviados a la API de Error Reporting
Envías eventos de errores a tu proyecto de Google Cloud con la API de Error Reporting. Sin embargo, esos eventos no se muestran en la página Error Reporting.
Para solucionar este problema, haz lo siguiente:
Asegúrate de que la API de Error Reporting esté habilitada.
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.Abre Cloud Shell y usa Google Cloud CLI para verificar que puedes enviar eventos de error a tu proyecto:
Ejecuta el comando siguiente:
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)"Ve a la página Error Reporting y verifica que muestre un error titulado
TestError: msg.Ve a la página Explorador de registros y busca
TestErroren tus entradas de registro. La entrada de registro se crea automáticamente.
Verifica que tu aplicación envíe el evento de error al extremo
reporty que la aplicación dé formato al cuerpo de la solicitud como un objetoReportedErrorEvent. También debes verificar que se estén creando entradas de registro. Cuando usas la API de Error Reporting, se generan automáticamente entradas de registro con mensajes de error con el formato correcto y se escriben en Cloud Logging. Estas entradas de registro se escriben en un registro cuyologNametiene el siguiente formato:projects/PROJECT_ID/clouderrorreporting.googleapis.com%2Freported_errors
Se muestran eventos de error, pero la API de Error Reporting está inhabilitada
Inhabilitaste la API de Error Reporting. Sin embargo, la página Error Reporting de la consola de Google Cloud muestra eventos de error.
Se prevé que esto suceda. Los eventos de error se crean en respuesta a las llamadas a la API de Error Reporting que se realizan al extremo report.
Sin embargo, los eventos de error también se infieren cuando Error Reporting puede analizar tus datos de registro.
Los eventos de error no se infieren a partir de los datos de registro
Esperas que Error Reporting analice tus datos de registro y deduzca eventos de error. Sin embargo, la página Error Reporting no muestra ningún evento de error, aunque las entradas de registro registran datos de errores.
Para resolver esta situación, haz lo siguiente:
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.
- Las claves de encriptación administradas por el cliente (CMEK) están inhabilitadas en todos los buckets de registros que almacenan la entrada de registro. Error Reporting no puede almacenar entradas de registro en buckets de registros que tienen habilitada la CMEK. Para obtener información sobre cómo determinar la configuración de CMEK de un bucket de registros, consulta Verifica la habilitación de la clave.
- El bucket de registros satisface una de las siguientes condiciones:
- 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 listEl 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 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,_Requiredylogs-from-samplesporque el bucket de registros se almacena en el mismo proyecto que enruta las entradas de registro. - Error Reporting no puede analizar las entradas de registro almacenadas en el bucket de registros llamado
test-logsporque el receptor enmy-team-projectenruta las entradas de registro a un bucket de registros en un proyecto diferente.
Usa Google Cloud CLI para verificar que puedes escribir entradas de registro que generen un evento de error.
Ejecuta el comando siguiente:
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}}}'Ve a la página Explorador de registros y busca
Test Erroren tus entradas de registro.Accede al Explorador de registros.
Gcloud CLI genera esta entrada de registro. Si la entrada de registro no está vinculada a un grupo de errores, espera aproximadamente un minuto y actualiza la página. Los eventos de error se detectan después de que se ingiere una entrada de registro.
Ve a la página Error Reporting y verifica que se muestre un error titulado
Test Error.
Ve a la página del Explorador de registros y verifica que tu aplicación escriba entradas de registro con el formato esperado.
Accede al Explorador de registros.
Busca una entrada de registro que contenga datos de excepción enviados desde tu aplicación y verifica el formato. Si el formato no es correcto, actualiza tu aplicación.
Una entrada de registro contiene un seguimiento de pila, pero no se crea ningún evento de error
Generas una entrada de registro cuyo campo message contiene un seguimiento de pila.
Sin embargo, en la página Error Reporting no se muestra un evento de error correspondiente.
Para resolver este error, prueba lo siguiente:
Asegúrate de que el objeto
jsonPayloadno incluya un campostack_traceoexception. Cuando esos campos están presentes, no se evalúa el campomessage.Asegúrate de que la estructura del registro de seguimiento de pila esté en uno de los formatos de lenguaje de programación admitidos. Error Reporting no captura el seguimiento de pila cuando se usa un formato no compatible.
Para obtener más información, consulta Cómo dar formato a una entrada de registro para informar eventos de error.