Solución de problemas

Si los errores de tu aplicación no aparecen en Error Reporting, realiza los siguientes pasos para solucionar los problemas.

Antes de comenzar

  1. Verifica que las claves de encriptación administradas por el cliente (CMEK) estén inhabilitadas en tu bucket de registros.

    Cuando los registros están protegidos con CMEK, no están disponibles para Error Reporting y, por lo tanto, no se pueden identificar los grupos de errores. Error Reporting no está disponible para ninguno de los siguientes registros:

    • Los registros almacenados en un bucket de registros habilitado con CMEK
    • Registros almacenados en varios buckets de registros en los que al menos un bucket de registros está habilitado con CMEK
    • Los registros almacenados en cualquier bucket de registros de una organización, cuando una política a nivel de la organización requiere que se habiliten CMEK

    Si quieres obtener información para determinar la configuración de CMEK de un bucket de registros, consulta Verifica la habilitación de claves.

  2. Verificar que Error Reporting pueda analizar tus registros

    Error Reporting solo puede analizar entradas de registro almacenadas en buckets de Cloud Logging que se encuentren en la región global, en la que los proyectos de Google Cloud de origen y destino son iguales.

    Para ver si Error Reporting puede analizar tus registros, verifica que los almacenes en los buckets de la región global, en los 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 y logs-from-samples porque enrutan los registros a buckets que se encuentran en la región global dentro del mismo proyecto.
    • Error Reporting puede analizar los registros enrutados por los receptores de proyectos a proyectos diferentes a los del proyecto de origen. Como resultado, Error Reporting también puede analizar los registros enrutados por el receptor test-logs, que enruta los registros al proyecto team-b-project.
    • Error Reporting no puede analizar los registros que enruta el receptor regional_logs porque los enruta a un bucket regional en la región europe-west1.
  3. Asegúrate de tener Google Cloud CLI instalado.

  4. 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.