Dépannage

Si les erreurs de votre application n'apparaissent pas dans Error Reporting, puis procédez comme suit pour résoudre le problème.

Avant de commencer

  1. Vérifiez qu'Error Reporting peut analyser vos journaux.

    Error Reporting est un service global basé sur Cloud Logging qui peut analyser les entrées de journal lorsque toutes les conditions suivantes sont remplies:

    • Les entrées de journal sont stockées dans un bucket de journaux à l'emplacement global.
    • Les clés de chiffrement gérées par le client (CMEK) sont désactivées dans le bucket de journaux. Pour savoir comment déterminer la configuration CMEK pour un bucket de journaux, consultez Vérifier l'activation des clés
    • Le bucket de journaux remplit l'une des conditions suivantes: <ph type="x-smartling-placeholder">
        </ph>
      • Le bucket de journaux est stocké dans le projet où les journaux d'origine.
      • Les journaux ont été acheminés vers un projet, qui les a ensuite stockés dans un bucket de journaux qui lui appartient.

    Pour voir si Error Reporting peut analyser vos journaux, vérifiez que vous stockent vos journaux dans des buckets de la région global où les serveurs sources et de destination sont identiques.

    Pour afficher la liste des récepteurs que vous avez configurés, exécutez la commande suivante:

    gcloud logging sinks list
    

    La commande renvoie un résultat semblable à celui-ci:

    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)
    

    Dans cet exemple, le projet Google Cloud source des journaux est my-team-project. En conséquence :

    • Error Reporting peut analyser les journaux acheminés par _Default, les récepteurs _Required et logs-from-samples, car ils acheminent les journaux aux buckets situés dans la région global au sein du même projet.
    • Error Reporting ne peut pas analyser les journaux stockés dans le bucket de journaux nommé test-logs, car le récepteur de my-team-project achemine les journaux dans un bucket de journaux d'un autre projet.
    • Error Reporting ne peut pas analyser les journaux acheminés par regional_logs lavabo car il achemine les journaux vers un bucket régional dans la région europe-west1.
  2. Assurez-vous de disposer du Google Cloud CLI installée ;

  3. Assurez-vous de disposer du Composant beta activé pour la gcloud CLI.

Utilisation des journaux

Cette section fournit une aide au dépannage lorsque les données d'erreur sont écrites aux buckets Cloud Logging et que vous utilisez Error Reporting pour analyser automatiquement ces buckets de journaux.

Générer un exemple d'entrée de journal

Pour confirmer les paramètres de votre projet, vous pouvez générer une entrée de journal par programmation qui sera récupérée par Error Reporting avec les 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}}}'

Ouvrez ensuite Error Reporting, puis vérifiez que vous voyez l'erreur tout juste créée.

Confirmer le format d'entrée de journal

Accédez à la page Cloud Logging, puis recherchez une entrée de journal contenant les données d'exceptions envoyées par votre application.

Vérifiez que l'entrée de journal utilise le format attendu.

Utilisation de l'API Error Reporting

  1. Activez l'API requise.

    Activer l'API

  2. Envoyer une erreur de test

    Essayez d'envoyer manuellement une erreur au service.

    Vous pouvez signaler une erreur de test à Error Reporting à l'aide de la commande gcloud suivante :

    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)"
    

    Vous pouvez exécuter une commande cURL pour tester vos appels d'API REST. Remplacez PROJECT_ID et API_KEY par des valeurs valides avant d'envoyer la commande suivante :

    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. Confirmer la charge utile envoyée

    Assurez-vous que votre application envoie des données d'exception à l'API dans le format correct, et qu'il contient les attributs obligatoires.