Si les erreurs de votre application n'apparaissent pas dans Error Reporting, procédez comme suit pour les résoudre.
Avant de commencer
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 d'un bucket de journaux, consultez la page Vérifier l'activation des clés.
- Le bucket de journaux remplit l'une des conditions suivantes :
- Le bucket de journaux est stocké dans le projet d'origine des journaux.
- Les journaux ont été acheminés vers un projet, qui les a ensuite stockés dans un bucket de journaux qui lui appartient.
Pour savoir si Error Reporting peut analyser vos journaux, vérifiez que vous les stockez dans des buckets dans la région
global
, où les projets Google Cloud 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 les récepteurs
_Default
,_Required
etlogs-from-samples
, car ils acheminent les journaux vers des buckets situés dans la régionglobal
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 demy-team-project
achemine les journaux vers un bucket de journaux d'un autre projet. - Error Reporting ne peut pas analyser les journaux acheminés par le récepteur
regional_logs
, car il les achemine vers un bucket régional dans la régioneurope-west1
.
- Les entrées de journal sont stockées dans un bucket de journaux à l'emplacement
Assurez-vous que Google Cloud CLI est installé.
Assurez-vous que le composant
beta
est activé pour la gcloud CLI.
Utilisation des journaux
Cette section fournit une assistance au dépannage lorsque vos données d'erreur sont écrites dans des 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 de manière automatisée. Celle-ci sera récupérée par Error Reporting à l'aide de la commande gcloud
suivante:
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
-
Activez l'API requise.
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
etAPI_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
Confirmer la charge utile envoyée
Assurez-vous que votre application envoie à l'API les données d'exception au format approprié, et qu'elles contiennent les attributs requis.