Falls Ihre Anwendungsfehler nicht in Error Reporting angezeigt werden, gehen Sie zur Fehlerbehebung wie unten beschrieben vor.
Hinweise
Prüfen Sie, ob Error Reporting Ihre Logeinträge analysieren kann.
Error Reporting ist ein globaler Dienst, der auf Cloud Logging basiert und Logeinträge analysieren kann, wenn alle folgenden Bedingungen erfüllt sind:
- Assured Workloads ist deaktiviert. Weitere Informationen finden Sie unter Übersicht über Assured Workloads.
- Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) sind für alle Log-Buckets deaktiviert, in denen der Logeintrag gespeichert wird. In Error Reporting können keine Logeinträge in Log-Buckets mit aktiviertem CMEK gespeichert werden. Informationen dazu, wie Sie die CMEK-Konfiguration für einen Log-Bucket ermitteln, finden Sie unter Schlüsselaktivierung prüfen.
- Der Log-Bucket erfüllt eine der folgenden Bedingungen:
- Der Log-Bucket wird im selben Projekt gespeichert, aus dem die Logeinträge stammen.
- Die Logeinträge wurden an ein Projekt weitergeleitet und dieses Projekt hat die Logeinträge dann in einem eigenen Log-Bucket gespeichert.
Führen Sie den folgenden Befehl aus, um eine Liste der von Ihnen konfigurierten Senken aufzurufen:
gcloud logging sinks list
Die Ausgabe des Befehls sieht in etwa so aus:
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)
In diesem Beispiel lautet das Google Cloud -Quellprojekt der Logeinträge
my-team-project
. Deshalb gilt Folgendes:- Error Reporting kann die Logeinträge analysieren, die von den Senken
_Default
,_Required
undlogs-from-samples
weitergeleitet werden, da der Log-Bucket vom selben Projekt gespeichert wird, das die Logeinträge weiterleitet. - Error Reporting kann die Logeinträge, die im Log-Bucket mit dem Namen
test-logs
gespeichert sind, nicht analysieren, da die Senke inmy-team-project
die Logeinträge an einen Log-Bucket in einem anderen Projekt weiterleitet.
Prüfen Sie, ob die Google Cloud CLI installiert ist.
Prüfen Sie, ob die
beta
-Komponente für die gcloud CLI aktiviert ist.
Beim Verwenden von Logs
In diesem Abschnitt finden Sie Unterstützung bei der Fehlerbehebung, wenn Ihre Fehlerdaten in Cloud Logging-Buckets geschrieben werden und Sie sich darauf verlassen, dass Error Reporting diese Log-Buckets automatisch analysiert.
Beispiel-Logeintrag generieren
Wenn Sie Ihre Projekteinstellungen bestätigen möchten, können Sie einen Logeintrag programmatisch generieren, der von Error Reporting erfasst wird. Verwenden Sie dazu den folgenden gcloud
-Befehl:
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}}}'
Öffnen Sie dann Error Reporting und bestätigen Sie, dass der gerade erstellte Fehler angezeigt wird.
Format des Logeintrags bestätigen
Rufen Sie die Cloud Logging-Seite auf und suchen Sie nach einem Logeintrag, der von Ihrer Anwendung gesendete Ausnahmedaten enthält.
Vergewissern Sie sich, dass der Log-Eintrag dem erwarteten Format entspricht.
Beim Verwenden der Error Reporting-API
-
Enable the required API.
Testfehler senden
Versuchen Sie, manuell einen Fehler an den Dienst zu senden.
Sie können einen Testfehler an Error Reporting mithilfe des folgenden
gcloud
-Befehls melden: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)"
Sie können einen cURL-Befehl verwenden, um Ihre REST API-Aufrufe zu testen. Ersetzen Sie
PROJECT_ID
undAPI_KEY
mit Ihren gültigen Werten, bevor Sie den folgenden Befehl senden: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
Gesendete Nutzlast bestätigen
Achten Sie darauf, dass Ihre Anwendung Ausnahmedaten im richtigen Format an die API sendet und dass diese die erforderlichen Attribute enthalten.
Ein Stacktrace wird protokolliert, aber nicht von Error Reporting erkannt
Sie protokollieren einen Fehler mit dem Feld message
eines jsonPayload
und erwarten, dass Error Reporting den Fehler erfasst. Die Fehlerdaten werden jedoch nicht erfasst.
Versuchen Sie Folgendes, um diesen Fehler zu beheben:
Achten Sie darauf, dass
jsonPayload
kein Feldstack_trace
oderexception
enthält. Wenn diese Felder vorhanden sind, wird das Feldmessage
nicht ausgewertet.Achten Sie darauf, dass die Struktur des Stacktrace einem der unterstützten Formate für Programmiersprachen entspricht. Der Stacktrace wird von Error Reporting nicht erfasst, wenn ein nicht unterstütztes Format verwendet wird.
Weitere Informationen finden Sie unter Formatierungsfehler in Logs.