Fehler beheben

Falls Ihre Anwendungsfehler nicht in Error Reporting angezeigt werden, und führen Sie dann die folgenden Schritte zur Fehlerbehebung aus.

Hinweise

  1. Prüfen, ob Error Reporting Ihre Logeinträge analysieren kann

    Error Reporting ist ein globaler Dienst, Cloud Logging und kann Logeinträge analysieren, wenn alle der folgenden Bedingungen erfüllt sind:

    • Assured Workloads sind deaktiviert. Weitere Informationen finden Sie unter Übersicht über Assured Workloads.
    • Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) ist für alle Log-Buckets deaktiviert, in denen der Logeintrag gespeichert ist. Informationen zur Ermitteln Sie die CMEK-Konfiguration für einen Log-Bucket, siehe Prüfen Sie die Aktivierung des Schlüssels.
    • Der Log-Bucket erfüllt eine der folgenden Anforderungen: <ph type="x-smartling-placeholder">
        </ph>
      • Der Log-Bucket wird in dem Projekt gespeichert, aus dem die Logeinträge stammen.
      • Die Logeinträge wurden an ein Projekt weitergeleitet, das dann in diesem Projekt gespeichert wurde in einem Log-Bucket, der ihm gehört.
    Wenn Sie Ihre Logeinträge in Log-Buckets mit aktiviertem CMEK speichern, können Sie Error Reporting. Sie müssen jedoch den Error Reporting-Client verwenden, oder der Error Reporting API. Weitere Informationen finden Sie in der Übersicht über die Error Reporting API und Error Reporting-Client Bibliotheken.

    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 ist das Google Cloud-Quellprojekt der Logeinträge my-team-project Deshalb gilt Folgendes:

    • Error Reporting kann die vom _Default, Senken _Required und logs-from-samples, da der Log-Bucket die im selben Projekt gespeichert sind, das die Logeinträge weiterleitet.
    • Error Reporting kann die im Log gespeicherten Logeinträge nicht analysieren Bucket mit dem Namen test-logs, da die Senke in my-team-project den Traffic Logeinträge in einen Log-Bucket in einem anderen Projekt.
  2. Stellen Sie sicher, dass Sie Die Google Cloud CLI ist installiert.

  3. Stellen Sie sicher, dass Sie Die beta-Komponente ist für die gcloud CLI aktiviert.

Beim Verwenden von Logs

Dieser Abschnitt bietet Unterstützung bei der Fehlerbehebung, wenn Ihre Fehlerdaten geschrieben werden an Cloud Logging-Buckets senden und Error Reporting um diese Log-Buckets automatisch zu analysieren.

Beispiel-Logeintrag generieren

Zum Bestätigen Ihrer Projekteinstellungen können Sie programmatisch einen Logeintrag generieren die von Error Reporting erfasst werden, mit dem 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

  1. Aktivieren Sie die erforderliche API.

    Aktivieren Sie die API

  2. 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 und API_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
    
  3. Gesendete Nutzlast bestätigen

    Achten Sie darauf, dass Ihre Anwendung Ausnahmedaten an die API im richtigen Format haben und die erforderlichen Attribute enthält.