Abgestürzte App mit 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:
Wie Sie Dienstfehler in einem Google Cloud-Projekt simulieren.
Wie Sie Error Reporting nutzen, um Fehler aufzurufen und den Fehlerstatus zu ändern. So sehen Teammitglieder, dass ein Problem behoben wird.
Wie Sie Benachrichtigungen einrichten, um über neue Fehler informiert zu werden.
Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt in der Google Cloud Console aufzurufen.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Öffnen Sie eine Cloud Shell für Ihr Google Cloud-Projekt. Während des Starts wird die Meldung Verbindung wird aufgebaut angezeigt.
Fehler simulieren
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
-
Rufen Sie in der Google Cloud Console die Seite Fehlerberichte auf:
Sie können diese Seite auch über die Suchleiste finden.
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 die Fehlermeldung:
Klicken Sie auf den Fehlernamen, um die Seite mit den Fehlerdetails aufzurufen. Sie enthält alle verfügbaren Fehlerinformationen. Wenn Gemini im Projekt aktiviert ist, können Sie Vorschläge zur Fehlerbehebung 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:
-
Rufen Sie in der Google Cloud Console die Seite Fehlerberichte auf:
Sie können diese Seite auch über die Suchleiste finden.
Klicken Sie zum Aktivieren von E-Mail-Benachrichtigungen auf das Dreipunkt-Menü more_vert und wählen Sie Benachrichtigungen über neue Fehler für Projekt aktivieren aus der Drop-down-Liste aus.
Klicken Sie zum Generieren neuer Fehlertypen auf Cloud Shell aktivieren 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.
Suchen Sie in Ihren E-Mails nach einer Nachricht von „Stackdriver-Benachrichtigungen“.
Fehlermeldungen aus einer App Engine-Anwendung generieren
Die aus den Skripts generierten Beispielnachrichten simulieren die Fehlerbedingungen in Error Reporting. Wenn Sie Fehler aus einem echten Dienst generieren möchten, der in Ihrem Google Cloud-Projekt ausgeführt wird, folgen Sie der Anleitung in diesem Abschnitt.
App bereitstellen
So laden Sie eine Anwendung in App Engine herunter und stellen sie bereit:
Laden Sie die Anwendung aus dem GitHub-Projekt python-docs-samples herunter und konfigurieren Sie diese:
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'...
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
Installieren Sie die Abhängigkeiten:
pip install -r requirements.txt
Überprüfen Sie, ob die Anwendung erfolgreich installiert und konfiguriert wurde:
Führen Sie die Anwendung aus:
python main.py
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.Beenden Sie die Anwendung. Geben Sie dazu in Cloud Shell
Ctrl-C
ein.
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.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 durch den 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:
Bearbeiten Sie
main.py
und ändern Siereturn '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.Laden Sie die geänderte Anwendung in App Engine hoch:
gcloud app deploy
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 in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.