Instrumenta apps de Python para Error Reporting

Puedes enviar informes de errores a Error Reporting desde aplicaciones de Python mediante la biblioteca de Error Reporting para Python. Usa la biblioteca de Error Reporting para Python para crear grupos de errores en los siguientes casos:

  • Un bucket de registros que contiene tus entradas de registro tiene claves de encriptación administradas por el cliente (CMEK).
  • El bucket de registros satisface una de las siguientes opciones:
    • El bucket de registros se almacena en el mismo proyecto en el que se originaron las entradas de registro.
    • Las entradas de registro se enrutaron a un proyecto y, luego, ese proyecto las almacenó en un bucket de registros que le pertenece.
  • Quieres informar eventos de error personalizados.

Error Reporting está integrado en algunos servicios de Google Cloud, como Cloud Functions y App Engine, Compute Engine y Google Kubernetes Engine. Error Reporting muestra los errores que registran las aplicaciones que se ejecutan en esos servicios en Cloud Logging. Para obtener más información, ve a Ejecuta en Google Cloud en esta página.

También puedes enviar datos de errores a Error Reporting mediante Logging. Para obtener información sobre los requisitos de formato de datos, consulta Dale formato a los mensajes de error en Logging.

Antes de comenzar

  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. Prepara tu entorno para el desarrollo en Python.

    Ir a la guía de configuración de Python

Instala la biblioteca cliente

La biblioteca de Error Reporting para Python te permite supervisar y ver errores informados por las aplicaciones de Python que se ejecutan prácticamente en cualquier sitio.

  1. Crea una instancia para un entorno virtual y usa pip a fin de instalar el paquete:

    pip install google-cloud-error-reporting --upgrade
    
  2. Importa la biblioteca y crea una instancia de cliente para comenzar a informar errores:

    Python

    Para autenticarte en Error Reporting, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

A fin de obtener más información sobre la instalación, lee la documentación de la biblioteca de Error Reporting para Python. También puedes informar problemas con el seguimiento de problemas.

Configura la biblioteca cliente

Puedes personalizar el comportamiento de la biblioteca de Error Reporting para Python. Consulta la documentación de la biblioteca cliente para obtener ejemplos de configuración.

Ejecuta apps en Google Cloud

Para crear grupos de errores con projects.events.report, tu cuenta de servicio requiere el rol de escritor de Error Reporting (roles/errorreporting.writer).

Algunos servicios de Google Cloud otorgan automáticamente el rol de escritor de informes de errores (roles/errorreporting.writer) a la cuenta de servicio adecuada. Sin embargo, debes otorgar este rol a la cuenta de servicio adecuada para algunos servicios.

Cloud Run y funciones de Cloud Run

La cuenta de servicio predeterminada que usa Cloud Run tiene los permisos del rol de escritor de Error Reporting (roles/errorreporting.writer).

La biblioteca de Error Reporting para Python se puede usar sin necesidad de proporcionar credenciales de forma explícita.

Cloud Run está configurado para usar Error Reporting de forma automática. Las excepciones de JavaScript no administradas aparecerán en Logging y Error Reporting las procesará sin la necesidad de usar la biblioteca de Error Reporting para Python.

Entorno flexible de App Engine

App Engine otorga el rol de escritor de Error Reporting (roles/errorreporting.writer) a tu cuenta de servicio predeterminada automáticamente.

La biblioteca de Error Reporting para Python se puede usar sin necesidad de proporcionar credenciales de forma explícita.

Error Reporting se habilita de manera automática para las aplicaciones del entorno flexible de App Engine. No se requiere ninguna configuración adicional.

Google Kubernetes Engine

Para usar Error Reporting con Google Kubernetes Engine, haz lo siguiente:

  1. Asegúrate de que la cuenta de servicio que usará tu contenedor tenga el rol de escritor de Error Reporting (roles/errorreporting.writer).

    Puedes usar la cuenta de servicio predeterminada de Compute Engine o una cuenta de servicio personalizada.

    Para obtener información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

  2. Crea tu clúster y bríndale el nivel de acceso cloud-platform.

    Por ejemplo, el siguiente comando de creación especifica el permiso de acceso cloud-platform y una cuenta de servicio:

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

Compute Engine

Para usar Error Reporting con instancias de VM de Compute Engine, haz lo siguiente:

  1. Asegúrate de que a la cuenta de servicio que usará tu instancia de VM se le haya otorgado el rol de escritor de Error Reporting (roles/errorreporting.writer).

    Puedes usar la cuenta de servicio predeterminada de Compute Engine o una cuenta de servicio personalizada.

    Para obtener información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

  2. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Compute Engine.

  3. Selecciona la instancia de VM a la que deseas que se le asigne el alcance de acceso cloud-platform.

  4. Haz clic en Detener y, luego, en Editar.

  5. En la sección Identidad y acceso a la API, selecciona una cuenta de servicio que tenga el rol de escritor de Error Reporting (roles/errorreporting.writer).

  6. En la sección Permisos de acceso, selecciona Permitir el acceso total a todas las APIs de Cloud y, luego, guarda los cambios.

  7. Haz clic en Iniciar/Reanudar.

Ejemplo

Para informar un error de forma manual, llama al método report, como se muestra en el siguiente ejemplo:

Python

Para autenticarte en Error Reporting, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación.

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

Ejecuta apps en un entorno de desarrollo local

Para usar la biblioteca de Error Reporting para Python en un entorno de desarrollo local, como ejecutar la biblioteca en tu propia estación de trabajo, debes proporcionarle a la biblioteca de Error Reporting para Python las credenciales predeterminadas de la aplicación local. Para obtener más información, consulta Cómo autenticar en Error Reporting.

Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

  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.

Para obtener más información, consulta Set up authentication for a local development environment.

El método projects.events.report también admite claves de API. Si deseas usar claves de API para la autenticación, no necesitas configurar un archivo local de credenciales predeterminadas de la aplicación. Para obtener más información, consulta Crea una clave de API en la documentación de autenticación de Google Cloud.

Ve informes de errores

En la consola de Google Cloud, ve a la página Error Reporting.

Ir a Error Reporting

También puedes usar la barra de búsqueda para encontrar esta página.

Para obtener más información, consulta Cómo visualizar errores.