Eine abgestürzte App mithilfe von Error Reporting auf Fehler prüfen

Error Reporting bietet einen zentralen Ort, um Fehlerbedingungen von allen Anwendungen und Diensten in einem Google Cloud-Projekt und von Amazon Elastic Compute Cloud-Anwendungen (EC2) zu überwachen.

Themen in diesem Leitfaden:

  1. Simulieren Sie einen Fehler von einem Dienst in einem Google Cloud-Projekt.

  2. Wie Sie Error Reporting nutzen, um Fehler aufzurufen und den Fehlerstatus zu ändern. So sehen Teammitglieder, dass ein Problem behoben wird.

  3. Wie Sie Benachrichtigungen einrichten, um über neue Fehler informiert zu werden.


Klicken Sie auf Anleitung, um die Schritt-für-Schritt-Anleitung für diese Aufgabe direkt in der Google Cloud Console auszuführen:

Anleitung


Hinweise

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  5. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  6. Öffnen Sie eine Cloud Shell für Ihr Google Cloud-Projekt. Während des Starts wird die Meldung Verbindung wird aufgebaut angezeigt.

    Öffnen Sie Cloud Shell.

Fehler simulieren

  1. Führen Sie das folgende Skript in Cloud Shell aus, um elf Beispielfehler zu generieren:

      COUNTER=0
      while [  $COUNTER -lt 11 ]; do
          gcloud beta error-reporting events report --service tutorial --service-version v$((COUNTER/10+1)) \
              --message "java.lang.RuntimeException: Error rendering template $COUNTER
                at com.example.TestClass.test(TestClass.java:51)
                at com.example.AnotherClass(AnotherClass.java:25)
                at javax.servlet.http.HttpServlet.service (HttpServlet.java:617)
                at javax.servlet.http.HttpServlet.service (HttpServlet.java:717)"
          if [ $COUNTER -eq 10 ]; then
            echo "All sample errors reported."
          fi
          let COUNTER=COUNTER+1
      done
    

    Wenn das Skript alle Fehler generiert hat, wird die folgende Zeile ausgegeben:

    All sample errors reported.

Fehler in Error Reporting ansehen

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Error Reporting und dann Ihr Google Cloud-Projekt aus:

    Zu Error Reporting

    Im Error Reporting-Dashboard finden Sie eine Übersichtsliste aller Fehler sowie der Häufigkeit ihres Auftretens. Wenn die automatische Aktualisierung aktiviert ist, wird die Fehlerliste von Error Reporting automatisch alle 10 Sekunden neu geladen.

    Der folgende Screenshot zeigt eine Beispielseite für Fehlerberichte:

    Grafik: Benutzeroberfläche mit der Fehlerliste.

  2. Klicken Sie auf den Fehlernamen, um die Seite mit den Fehlerdetails aufzurufen, die alle verfügbaren Informationen zu einem Fehler enthält. Wenn Duet AI im Projekt aktiviert ist, können Sie Duet AI verwenden, um Vorschläge zur Fehlerbehebung zu erhalten.

Benachrichtigungen konfigurieren

Sie können sich von Error Reporting benachrichtigen lassen, wenn ein neuer Fehlertyp auftritt. Sie erhalten keine Benachrichtigung, wenn ein bereits bekannter Fehler ein weiteres Mal auftritt:

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Error Reporting und dann Ihr Google Cloud-Projekt aus:

    Zu Error Reporting

  2. Klicken Sie zum Aktivieren von E-Mail-Benachrichtigungen auf das Dreipunkt-Menü  und wählen Sie Benachrichtigungen über neue Fehler für Projekt aktivieren aus der Drop-down-Liste aus.

  3. Klicken Sie zum Generieren neuer Fehlertypen auf Cloud Shell aktivierenSchaltfläche zum Aktivieren von Cloud Shell und führen Sie das folgende Skript aus:

      COUNTER=0
      while [ $COUNTER -lt 3 ]; do
            gcloud beta error-reporting events report --service tutorial --service-version v1 \
                --message "java.lang.ArrayIndexOutOfBoundsException: $COUNTER
                  at com.example.AppController.createUser(AppController.java:42)
                  at com.example.User(User.java:31)
                  at javax.servlet.http.HttpServlet.service (HttpServlet.java:617)
                  at javax.servlet.http.HttpServlet.service (HttpServlet.java:717)"
          if [ $COUNTER -eq 10 ]; then
            echo "All sample errors reported."
          fi
          let COUNTER=COUNTER+1
      done
    

    Wenn das Skript alle Fehler generiert hat, wird die folgende Zeile ausgegeben:

    All sample errors reported.

  4. Suchen Sie in Ihren E-Mails nach einer Nachricht von „Stackdriver-Benachrichtigungen“.

Fehlermeldungen aus einer App Engine-Anwendung generieren

Die Beispielnachrichten, die Sie von den Skripts generiert haben, simulieren Fehlerbedingungen in Error Reporting vollständig. Wenn Sie jedoch Fehler aus einem echten Dienst generieren möchten, der in Ihrem Google Cloud-Projekt ausgeführt wird, führen Sie die Schritte in diesem Abschnitt aus.

App bereitstellen

So laden Sie eine Anwendung in App Engine herunter und stellen sie bereit:

  1. Laden Sie die Anwendung aus dem GitHub-Projekt python-docs-samples herunter und konfigurieren Sie diese:

    1. Klonen Sie das Projekt in Ihre Cloud Shell:

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      

      Git gibt eine Meldung wie die folgende zurück:

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      Cloning into 'python-docs-samples'...
      
    2. Erstellen Sie eine isolierte Python-Umgebung und aktivieren Sie diese:

      cd python-docs-samples/appengine/standard_python3/hello_world
      virtualenv env -p python3
      source env/bin/activate
      
    3. Installieren Sie die Abhängigkeiten:

      pip install -r requirements.txt
      
  2. Überprüfen Sie, ob die Anwendung erfolgreich installiert und konfiguriert wurde:

    1. Führen Sie die Anwendung aus:

      python main.py
      
    2. Zeigen Sie die Anwendung auf einer lokalen Webseite an. Klicken Sie dazu auf den Link in Cloud Shell. Auf der Webseite wird Hello World! angezeigt.

    3. Beenden Sie die Anwendung. Geben Sie dazu in Cloud Shell Ctrl-C ein.

  3. Laden Sie Ihre Anwendung in App Engine hoch:

    gcloud app deploy
    

    Wählen Sie eine Bereitstellungsregion in Ihrer Nähe aus, wenn Sie dazu aufgefordert werden. Geben Sie Y ein, wenn Sie gefragt werden, ob Sie fortfahren möchten. Nach wenigen Augenblicken ist der Upload abgeschlossen.

  4. Zeigen Sie Ihre Anwendung in einem Browser an. Führen Sie dazu den folgenden Befehl in Cloud Shell aus:

    gcloud app browse
    

    Wenn die Google Cloud CLI Ihren Browser nicht finden kann, werden mit dem vorherigen Befehl eine Fehlermeldung und ein Link angezeigt. Klicken Sie auf den angezeigten Link. Die Meldung Hello, World! wird im Browser angezeigt.

Fehler generieren

So erstellen Sie einen Fehler, der von Error Reporting erfasst und angezeigt wird:

  1. Bearbeiten Sie main.py und ändern Sie

    return 'Hello World!
    

    in

    return 'Hello World!' + 1000
    

    Diese Änderung verursacht eine Python-Ausnahme vom Typ TypeError, da das Verketten eines Strings und einer Ganzzahl nicht zulässig ist.

  2. Laden Sie die geänderte Anwendung in App Engine hoch:

    gcloud app deploy
    
  3. Kehren Sie zu dem Browsertab mit der laufenden Anwendung zurück und aktualisieren Sie die Seite. Durch die Änderung wird anstelle von Hello, World! eine Fehlermeldung angezeigt:

    Internal Server Error
    The server encountered an internal error and was unable to complete your
    request. Either the server is overloaded or there is an error in the
    application.
    

    Wenn diese Nachricht nicht angezeigt wird, warten Sie eine Minute und aktualisieren Sie die Seite ein weiteres Mal. Es kann einige Augenblicke dauern, bis die neue Version aktiviert wird.

Fehler in Error Reporting ansehen

Folgen Sie der Anleitung im vorherigen Abschnitt Fehler in Error Reporting aufrufen, um sich den Fehler anzusehen.

Bereinigen

Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden.

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Nächste Schritte