Solución de problemas

Si los errores de tu aplicación no aparecen en Error Reporting, y, luego, sigue estos pasos para solucionar el problema.

Antes de comenzar

  1. Verifica que Error Reporting pueda analizar tus registros.

    Error Reporting es un servicio global compilado en Cloud Logging y puede analizar entradas de registro cuando todo lo siguiente es verdadero:

    • 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 deseas obtener información sobre cómo determinar la configuración de CMEK para un bucket de registros, consulta Verifica la habilitación de la clave.
    • 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 originó.
      • Los registros se enrutan a un proyecto y, luego, ese proyecto los almacenó en un bucket de registros de su propiedad.

    Para ver si Error Reporting puede analizar tus registros, verifica almacenan tus registros en buckets en la región global, en la que la fuente y proyectos de Google Cloud de destino son los mismos.

    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 enrutados por _Default, los receptores _Required y logs-from-samples porque están enrutando registros a buckets que se encuentran en la región global dentro del mismo proyecto.
    • Error Reporting no puede analizar los registros almacenados en el bucket de registros llamado test-logs porque el receptor en my-team-project enruta los registros a un bucket de registros en un proyecto diferente.
    • Error Reporting no puede analizar los registros enrutados por regional_logs lavabo porque enruta los registros a un bucket regional en la región europe-west1.
  2. Asegúrate de tener las Google Cloud CLI está instalado.

  3. Asegúrate de tener las Se habilitó el componente beta para la CLI de gcloud.

Cuando usar los registros

En esta sección, se proporciona asistencia para la solución de problemas cuando se escriben tus datos de error. a buckets de Cloud Logging y confías en Error Reporting para analizarlos automáticamente.

Genera una entrada de registro como ejemplo

Para confirmar la configuración de tu proyecto, puedes generar una entrada de registro de manera programática. que Error Reporting recogerá con los siguientes 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

  1. Habilita la API necesaria.

    Habilita la API

  2. 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
    
  3. Confirma la carga útil enviada

    Asegúrate de que tu aplicación envíe datos de excepción a la API en la formato correcto y que contiene los atributos obligatorios.