Python-Anwendungen für Error Reporting instrumentieren

Mithilfe der Error Reporting-Bibliothek für Python können Sie Fehlerberichte von Python-Anwendungen an Error Reporting senden. Mit der Error Reporting-Bibliothek für Python können Sie Fehlergruppen für die folgenden Fälle erstellen:

  • Ein Protokoll-Bucket, der Ihre Protokolleinträge enthält, hat vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK).
  • Der Log-Bucket erfüllt eine der folgenden Bedingungen:
    • Der Protokoll-Bucket wird im selben Projekt gespeichert, aus dem die Protokolleinträge stammen.
    • Die Logeinträge wurden an ein Projekt weitergeleitet und dann in einem zugehörigen Log-Bucket gespeichert.
  • Sie möchten benutzerdefinierte Fehlerereignisse melden.

Error Reporting ist in einige Google Cloud-Dienste wie Cloud Functions, App Engine, Compute Engine und Google Kubernetes Engine eingebunden. In Error Reporting sehen Sie die in Cloud Logging protokollierten Fehler der auf diesen Diensten ausgeführten Anwendungen. Weitere Informationen finden Sie auf dieser Seite im Abschnitt In Google Cloud ausführen.

Sie können Fehlerdaten auch mithilfe von Logging an Error Reporting senden. Informationen zu den Datenformatierungsanforderungen finden Sie unter Fehlermeldungen in Logging formatieren.

Hinweis

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Error Reporting API .

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Error Reporting API .

    Enable the API

  8. Bereiten Sie Ihre Umgebung für die Python-Entwicklung vor.

    Einrichtungsleitfaden für Python aufrufen

Clientbibliothek installieren

Mit der Error Reporting-Bibliothek für Python können Sie die von Python-Anwendungen gemeldeten Fehler im Blick behalten und abrufen. Dabei ist es in den meisten Fällen unerheblich, wo die Anwendungen ausgeführt werden.

  1. Instanziieren Sie eine virtuelle Umgebung und installieren Sie das Paket mit pip:

    pip install google-cloud-error-reporting --upgrade
    
  2. Importieren Sie die Bibliothek und instanziieren Sie einen Client, um mit der Meldung von Fehlern zu starten:

    Python

    Richten Sie zur Authentifizierung bei Error Reporting die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

    #!/usr/bin/env python
    #
    # Copyright 2022 Google, Inc.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #    http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    
    def report_exception():
        from google.cloud import error_reporting
    
        client = error_reporting.Client()
        try:
            raise Exception("Something went wrong")
        except Exception:
            client.report_exception()
    
    
    
    
    def report_manual_error():
        from google.cloud import error_reporting
    
        client = error_reporting.Client()
        client.report("An error has occurred.")
    
    
    
    
    if __name__ == "__main__":
        report_exception()
        report_manual_error()
    

Weitere Informationen zur Installation finden Sie in der Dokumentation der Error Reporting-Bibliothek für Python. Probleme können Sie über die Problemverfolgung melden.

Clientbibliothek konfigurieren

Das Verhalten der Error Reporting-Bibliothek für Python kann angepasst werden. Konfigurationsbeispiele finden Sie in der Dokumentation zur Clientbibliothek.

Apps in Google Cloud ausführen

Wenn Sie mit projects.events.report Fehlergruppen erstellen möchten, benötigt Ihr Dienstkonto die Rolle Error Reporting Writer (roles/errorreporting.writer).

Einigen Google Cloud-Diensten wird dem entsprechenden Dienstkonto automatisch die Rolle „Autor für Fehlerberichte“ (roles/errorreporting.writer) zugewiesen. Bei einigen Diensten müssen Sie diese Rolle jedoch dem entsprechenden Dienstkonto zuweisen.

Cloud Run und Cloud Run-Funktionen

Das von Cloud Run verwendete Standarddienstkonto hat die Berechtigungen der Rolle Error Reporting Writer (roles/errorreporting.writer).

Die Error Reporting-Bibliothek für Python kann verwendet werden, ohne dass Anmeldedaten explizit angegeben werden müssen.

Cloud Run ist für die automatische Verwendung von Error Reporting konfiguriert. Unverarbeitete JavaScript-Ausnahmen werden in Logging angezeigt und von Error Reporting verarbeitet, ohne dass dafür die Error Reporting-Bibliothek für Python angewendet werden muss.

Flexible App Engine-Umgebung

In der App Engine wird Ihrem Standarddienstkonto automatisch die Rolle Error Reporting-Autor (roles/errorreporting.writer) zugewiesen.

Die Error Reporting-Bibliothek für Python kann verwendet werden, ohne dass Anmeldedaten explizit angegeben werden müssen.

Error Reporting wird für Anwendungen in flexiblen App Engine-Umgebungen automatisch aktiviert. Es ist keine zusätzliche Einrichtung erforderlich.

Google Kubernetes Engine

So verwenden Sie Error Reporting mit der Google Kubernetes Engine:

  1. Dem Dienstkonto, das von Ihrem Container verwendet werden soll, muss die Rolle Error Reporting-Autor (roles/errorreporting.writer) zugewiesen sein.

    Sie können entweder das Compute Engine-Standarddienstkonto oder ein benutzerdefiniertes Dienstkonto verwenden.

    Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

  2. Erstellen Sie Ihren Cluster und gewähren Sie ihm den Zugriffsbereich cloud-platform.

    Im folgenden Beispiel wird mit dem Befehl „create“ der cloud-platform-Zugriffsbereich und ein Dienstkonto angegeben:

    gcloud container clusters create CLUSTER_NAME --service-account  SERVICE_ACCT_NAME --scopes=cloud-platform
    

Compute Engine

So verwenden Sie Error Reporting mit Compute Engine-VM-Instanzen:

  1. Dem Dienstkonto, das von Ihrer VM-Instanz verwendet werden soll, muss die Rolle Error Reporting-Autor (roles/errorreporting.writer) zugewiesen sein.

    Sie können entweder das Compute Engine-Standarddienstkonto oder ein benutzerdefiniertes Dienstkonto verwenden.

    Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

  2. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:

    Zu Seite VM-Instanzen

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine lautet.

  3. Wählen Sie die VM-Instanz aus, für die Sie den cloud-platform Zugriffsbereich erhalten möchten.

  4. Klicken Sie auf Beenden und dann auf Bearbeiten.

  5. Wählen Sie im Abschnitt Identität und API-Zugriff ein Dienstkonto mit der Rolle „Error Reporting-Autor“ (roles/errorreporting.writer) aus.

  6. Wählen Sie im Bereich Zugriffsbereiche die Option Uneingeschränkten Zugriff auf alle Cloud APIs zulassen aus und speichern Sie die Änderungen.

  7. Klicken Sie auf Starten/Fortsetzen.

Beispiel

Sie können einen Fehler auch manuell melden. Dazu rufen Sie die Methode report wie im folgenden Beispiel gezeigt auf:

Python

Richten Sie zur Authentifizierung bei Error Reporting die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung einrichten.

#!/usr/bin/env python
#
# Copyright 2022 Google, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


def report_exception():
    from google.cloud import error_reporting

    client = error_reporting.Client()
    try:
        raise Exception("Something went wrong")
    except Exception:
        client.report_exception()




def report_manual_error():
    from google.cloud import error_reporting

    client = error_reporting.Client()
    client.report("An error has occurred.")




if __name__ == "__main__":
    report_exception()
    report_manual_error()

Apps in einer lokalen Entwicklungsumgebung ausführen

Wenn Sie die Error Reporting-Bibliothek für Python in einer lokalen Entwicklungsumgebung verwenden möchten, z. B. um die Bibliothek auf Ihrem eigenen Workstation auszuführen, müssen Sie die Standardanmeldedaten der lokalen Anwendung angeben. Weitere Informationen finden Sie unter Bei Error Reporting authentifizieren.

Wenn Sie die Python Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

Weitere Informationen unter Set up authentication for a local development environment.

Die projects.events.report-Methode unterstützt auch API-Schlüssel. Wenn Sie API-Schlüssel für die Authentifizierung verwenden möchten, müssen Sie keine lokale Datei mit den Standardanmeldedaten für Anwendungen einrichten. Weitere Informationen unter Erstellen eines API-Schlüssels in der Dokumentation zur Google Cloud-Authentifizierung.

Fehlerberichte ansehen

Rufen Sie in der Google Cloud Console die Seite Fehlerberichte auf:

Error Reporting aufrufen

Sie können diese Seite auch über die Suchleiste finden.

Weitere Informationen finden Sie unter Fehler anzeigen.