Strumenti per le app Python per Error Reporting

Puoi inviare report sugli errori a Error Reporting dalle applicazioni Python utilizzando la libreria Error Reporting per Python.

Error Reporting è integrato con alcuni servizi Google Cloud, come App Engine, Compute Engine e Google Kubernetes Engine. Error Reporting visualizza gli errori registrati in Cloud Logging dalle applicazioni in esecuzione su questi servizi. Per ulteriori informazioni, vai a In esecuzione su Google Cloud Platform in questa pagina.

Puoi anche inviare i dati sugli errori a Error Reporting utilizzando Logging. Per informazioni sui requisiti di formattazione dei dati, consulta Formattazione dei messaggi di errore in Logging.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Attiva Error Reporting API .

    Abilita l'API

  5. Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  7. Attiva Error Reporting API .

    Abilita l'API

  8. Prepara l'ambiente per lo sviluppo in Python.

    Vai alla guida alla configurazione di Python

Installazione della libreria client

La libreria di Error Reporting per Python consente di monitorare e visualizzare gli errori segnalati dalle applicazioni Python in esecuzione praticamente ovunque.

  1. Crea un ambiente virtuale e usa pip per installare il pacchetto:

    pip install google-cloud-error-reporting --upgrade
    
  2. Importa la libreria e crea un'istanza di client per iniziare a segnalare gli errori:

    Python

    Per l'autenticazione in Error Reporting, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta la pagina Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per ulteriori informazioni sull'installazione, consulta la documentazione relativa alla libreria di Error Reporting per Python. Puoi anche segnalare i problemi utilizzando lo strumento Issue Tracker.

Configurazione della libreria client

Puoi personalizzare il comportamento della libreria di Error Reporting per Python. Consulta la documentazione della libreria client per esempi di configurazione.

Segnalare errori

Puoi segnalare manualmente un errore chiamando il metodo report, come mostrato nell'esempio seguente:

Python

Per l'autenticazione in Error Reporting, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta la pagina Configurare l'autenticazione per un ambiente di sviluppo locale.

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

In esecuzione su Google Cloud

Per utilizzare la libreria di Error Reporting per Python è necessario il ruolo Writer di Error Reporting di Identity and Access Management. La maggior parte delle piattaforme di computing di Google Cloud offre questo ruolo per impostazione predefinita.

Puoi configurare Error Reporting per Python nei seguenti ambienti Google Cloud.

Ambiente flessibile di App Engine

App Engine concede il ruolo Writer Error Reporting per impostazione predefinita.

La libreria di Error Reporting per Python può essere utilizzata senza dover fornire esplicitamente le credenziali.

Error Reporting è abilitato automaticamente per le applicazioni nell'ambiente flessibile di App Engine. Non è richiesta alcuna ulteriore configurazione.

Google Kubernetes Engine

Su GKE, devi aggiungere l'ambito di accesso cloud-platform quando crei il cluster, come mostra il seguente comando di esempio:

gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform

Compute Engine

Quando utilizzi istanze VM di Compute Engine, aggiungi l'ambito di accesso cloud-platform a ogni istanza. Quando crei una nuova istanza tramite la console Google Cloud, puoi farlo nella sezione Identità e accesso API del riquadro Crea istanza. Utilizza l'account di servizio predefinito di Compute Engine o un altro account di servizio a tua scelta e seleziona Consenti l'accesso completo a tutte le API Cloud nella sezione Identità e accesso API. Qualunque account di servizio selezionato, assicurati che gli sia stato concesso il ruolo Writer Error Reporting nella sezione IAM e amministrazione della console Google Cloud.

Esecuzione localmente e altrove

Per utilizzare la libreria di Error Reporting per Python al di fuori di Google Cloud, inclusa l'esecuzione della libreria sulla tua workstation, sui computer del tuo data center o sulle istanze VM di un altro cloud provider, devi fornire l'ID progetto Google Cloud e le credenziali dell'account di servizio appropriate direttamente nella libreria di Error Reporting per Python.

Puoi creare e ottenere manualmente le credenziali dell'account di servizio. Quando specifichi il campo Ruolo, utilizza il ruolo Writer di Error Reporting. Per ulteriori informazioni sui ruoli di Identity and Access Management, vai a Guida al controllo dell'accesso.

Visualizzazione dei rapporti degli errori

Nella console Google Cloud, seleziona Error Reporting oppure fai clic sul pulsante seguente e seleziona un progetto:

Vai a Error Reporting

Per ulteriori informazioni, consulta la sezione Visualizzazione degli errori.