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. Verwenden Sie die Error Reporting-Bibliothek für Python, um Fehlergruppen für die folgenden Fälle zu erstellen:

  • Ihr Log-Bucket hat vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK).
  • Ihre Log-Buckets befinden sich nicht in der Region global.
  • Sie möchten benutzerdefinierte Fehlerereignisse melden.

Error Reporting ist in einige Google Cloud-Dienste wie 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 unter In Google Cloud ausführen Seite.

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

    Go to project selector

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

  4. Error Reporting API aktivieren.

    Aktivieren Sie die API

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

    Go to project selector

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

  7. Error Reporting API aktivieren.

    Aktivieren Sie die 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, die nahezu überall ausgeführt werden können.

  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 Standardanmeldedaten für Anwendungen ein, um sich bei Error Reporting zu authentifizieren. 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.

Anwendungen in Google Cloud ausführen

Um Fehlergruppen mithilfe der projects.events.report, Ihr Dienstkonto benötigt die Rolle „Error Reporting-Autor“ (roles/errorreporting.writer):

Einige Google Cloud-Dienste gewähren automatisch Rolle „Error Reporting-Autor“ (roles/errorreporting.writer) der entsprechenden Dienstkonto. Sie müssen diese Rolle jedoch dem entsprechenden Dienst für einige Dienste.

Flexible App Engine-Umgebung

App Engine gewährt den Rolle „Error Reporting-Autor“ (roles/errorreporting.writer) automatisch mit Ihrem Standarddienstkonto verknüpft.

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

Um Error Reporting mit Google Kubernetes Engine zu verwenden, Gehen Sie so vor:

  1. Prüfen Sie, ob das von Ihrem Container zu verwendende Dienstkonto gewährte Rolle „Error Reporting-Autor“ (roles/errorreporting.writer):

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

    Informationen zum Gewähren von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten

  2. Cluster erstellen und dem Cluster die cloud-platform Zugriffsbereich.

    Der folgende Befehl zum Erstellen gibt beispielsweise die cloud-platform an. Zugriffsbereich und ein Dienstkonto:

    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: Gehen Sie so vor:

  1. Prüfen Sie, ob das von Ihrer VM-Instanz zu verwendende Dienstkonto gewährte Rolle „Error Reporting-Autor“ (roles/errorreporting.writer):

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

    Informationen zum Gewähren 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, die Sie erhalten möchten. cloud-platform Zugriffsbereich.

  4. Klicken Sie auf Beenden und dann auf Bearbeiten.

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

  6. Gehen Sie im Abschnitt Zugriffsbereiche so vor: Wählen Sie Uneingeschränkten Zugriff auf alle Cloud APIs zulassen aus und speichern Sie Ihre Ä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 Standardanmeldedaten für Anwendungen ein, um sich bei Error Reporting zu authentifizieren. Weitere Informationen finden Sie unter Richten Sie die Authentifizierung ein.

#!/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()

Anwendungen in einer lokalen Entwicklungsumgebung ausführen

So verwenden Sie die Error Reporting-Bibliothek für Python in einer lokalen Entwicklungsumgebung: wie das Ausführen der Bibliothek auf Ihrer eigenen Workstation, müssen Sie Ihre Error Reporting-Bibliothek für Python mit den Standardanmeldedaten für Anwendungen. 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. Installieren Sie die Google Cloud CLI.
  2. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  3. Erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Google-Konto:

    gcloud auth application-default login

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 Error Reporting auf:

Error Reporting aufrufen

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

Weitere Informationen finden Sie unter Fehler anzeigen.