Instrumenta apps de C# para Error Reporting

El conjunto de bibliotecas de Google.Cloud.Diagnostics te permite enviar eventos de error directamente desde tus aplicaciones en C# a Error Reporting para que puedas diagnosticar y supervisar las fallas del tiempo de ejecución. Instrumentar tu aplicación con la biblioteca te permite informar eventos de error personalizados y capturar errores incluso cuando tus buckets de registros usan claves de encriptación administradas por el cliente (CMEK).

En el caso de las aplicaciones que se ejecutan en servicios Google Cloud integrados, incluidas las funciones de Cloud Run, App Engine, Compute Engine y Google Kubernetes Engine, Error Reporting también puede inferir eventos de error automáticamente desde Cloud Logging sin el conjunto de bibliotecas de Google.Cloud.Diagnostics. Para que Error Reporting infiera eventos de error a partir de los registros, las entradas de registro deben cumplir con los requisitos de formato de error y almacenarse en un bucket de registros que no sea de CMEK y que pertenezca al proyecto de origen o al proyecto de destino al que se enrutaron los registros.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Error Reporting API , if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Error Reporting API , if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

Instala la biblioteca cliente

El conjunto de bibliotecas de Google.Cloud.Diagnostics te permite supervisar y ver los eventos de error que informan las aplicaciones en C# que se ejecutan en casi cualquier lugar.

  1. Para las aplicaciones que se orientan a ASP.NET Core 3 o versiones posteriores, usa la biblioteca Google.Cloud.Diagnostics.AspNetCore3. Puedes instalar esta biblioteca desde NuGet.
  2. Para las aplicaciones que se orientan a versiones anteriores de ASP.NET Core, usa la biblioteca Google.Cloud.Diagnostics.AspNetCore. Puedes instalar esta biblioteca desde NuGet.
  3. Para las aplicaciones que se orientan a frameworks que no son de ASP.NET Core, usa la biblioteca Google.Cloud.Diagnostics.Common. Puedes instalar esta biblioteca desde NuGet.

Para obtener más información sobre la instalación, lee la documentación del conjunto de bibliotecas de Google.Cloud.Diagnostics. También puedes informar problemas con el seguimiento de problemas.

Configura la biblioteca cliente

Para obtener más información y ejemplos, consulta los siguientes recursos:

  • Documentación de Google.Cloud.Diagnostics.AspNetCore3
  • Documentación de Google.Cloud.Diagnostics.AspNetCore
  • Documentación de Google.Cloud.Diagnostics.Common
  • 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 Google Cloud servicios otorgan automáticamente el rol de Writer de Error Reporting (roles/errorreporting.writer) a la cuenta de servicio correspondiente. Sin embargo, debes otorgar este rol a la cuenta de servicio adecuada para algunos servicios.

    Cloud Run y Cloud Run Functions

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

    El conjunto de bibliotecas de Google.Cloud.Diagnostics se puede usar sin necesidad de proporcionar credenciales de forma explícita.

    Cloud Run está configurado para usar Error Reporting automáticamente. Las excepciones de JavaScript no controladas aparecerán en Logging y Error Reporting las procesará sin necesidad de usar el conjunto de bibliotecas de Google.Cloud.Diagnostics.

    Entorno flexible de App Engine

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

    El conjunto de bibliotecas de Google.Cloud.Diagnostics se puede usar sin necesidad de proporcionar credenciales de forma explícita.

    Error Reporting se habilita de forma automática en las aplicaciones del entorno flexible de App Engine. No se requiere ninguna configuración adicional. Los mensajes que se escriben desde App Engine hacia stderr se analizan y, si se descubre que contienen un seguimiento de pila, se muestran en Error Reporting.

    Consulta Visualiza errores para obtener instrucciones sobre cómo ver los datos de errores y excepciones para tu aplicación en la consola deGoogle Cloud .

    Google Kubernetes Engine

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

    1. Asegúrate de que a la cuenta de servicio que usará tu contenedor 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. Crea tu clúster y otórgale el permiso de acceso cloud-platform.

      Por ejemplo, el siguiente comando create 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 que deseas que reciba el permiso 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 obtener más información y ejemplos, consulta los siguientes recursos:

  • Documentación de Google.Cloud.Diagnostics.AspNetCore3
  • Documentación de Google.Cloud.Diagnostics.AspNetCore
  • Documentación de Google.Cloud.Diagnostics.Common
  • Ejecuta apps en un entorno de desarrollo local

    Para usar el conjunto de bibliotecas de Google.Cloud.Diagnostics en un entorno de desarrollo local, como ejecutar la biblioteca en tu propia estación de trabajo, debes proporcionar tu conjunto de bibliotecas de Google.Cloud.Diagnostics con las credenciales predeterminadas de la aplicación local. Para obtener más información, consulta Cómo autenticarse en Error Reporting.

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

    1. Instala Google Cloud CLI.

    2. Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.

    3. Si usas una shell local, crea credenciales de autenticación locales para tu cuenta de usuario:

      gcloud auth application-default login

      No es necesario que lo hagas si usas Cloud Shell.

      Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.

    Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    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 .

    Cómo ver grupos 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 ver y filtrar grupos de errores.