Configura Error Reporting para .NET

Habilita la biblioteca

Puedes enviar informes de errores a Error Reporting desde aplicaciones .NET mediante la biblioteca de Error Reporting para .NET.

Error Reporting está integrado a algunos servicios de Google Cloud, como 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 Platform 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. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir a la página del selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.

  4. Habilita las Error Reporting API .

    Habilita la API

Instala la biblioteca cliente

La biblioteca Error Reporting para .NET te permite supervisar y ver los errores que informan las aplicaciones .NET que se ejecutan en casi cualquier lugar.

Si deseas obtener más información sobre su instalación, lee la documentación de la biblioteca de Error Reporting para .NET. También puedes informar problemas mediante la Herramienta de seguimiento de errores.

Configura la biblioteca cliente

Puedes personalizar el comportamiento de la biblioteca de Error Reporting para .NET. Para hacerlo, consulta la documentación de referencia de la API de .NET.

Informa errores

Instala las bibliotecas de Cloud con los siguientes comandos:

Administrador de paquetes

PM> Install-Package Google.Cloud.Diagnostics.AspNetCore -Version 2.0.1

CLI de .NET

> dotnet add package Google.Cloud.Diagnostics.AspNetCore --version 2.0.1

Si utilizas el entorno flexible de App Engine consulta la sección del entorno flexible de App Engine.

Ejecuta en Google Cloud

El uso de la biblioteca de Error Reporting para .NET requiere la función de escritor de Error Reporting de la administración de identidades y accesos. La mayoría de las plataformas de computación de Google Cloud proporcionan esta función de forma predeterminada.

Puedes configurar Error Reporting para .NET en los siguientes entornos de Google Cloud.

Entorno flexible de App Engine

App Engine otorga la función de escritor de Error Reporting de forma predeterminada.

La biblioteca de Error Reporting para .NET 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. 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 acceder a los datos de errores y excepciones de la aplicación en Cloud Console.

Google Kubernetes Engine

En GKE debes agregar el permiso de acceso de cloud-platform cuando creas el clúster, como se muestra en el siguiente comando de ejemplo:

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

Compute Engine

Cuando uses las instancias de VM de Compute Engine, agrega el permiso de acceso cloud-platform a cada instancia. Si creas una instancia nueva a través de Google Cloud Console, puedes hacerlo en la sección Identidad y acceso a la API del panel Crear Instancia. Usa la cuenta de servicio predeterminada de Compute Engine o una cuenta de servicio diferente y selecciona Permitir acceso total a las API de Cloud en la sección Identidad y acceso a la API. Con cualquier cuenta de servicio que selecciones, asegúrate de que se le haya otorgado la función de escritor de Error Reporting en la sección IAM y administración de Cloud Console.

Ejecuta de forma local y en otros lugares

Si deseas usar la biblioteca de Error Reporting para .NET fuera de Google Cloud, incluso si la quieres ejecutar en tu propia estación de trabajo, en las computadoras del centro de datos o en las instancias de VM de otro proveedor de servicios en la nube, debes proporcionar tu ID del proyecto de Google Cloud y las credenciales adecuadas de cuenta de servicio directamente a la biblioteca de Error Reporting para .NET.

Puedes crear y obtener credenciales de cuentas de servicio de forma manual. Cuando especifiques el campo Función, usa la función de escritor de Error Reporting. Para obtener más información sobre las funciones de la administración de identidades y accesos, consulta la Guía de control de acceso.

Ve informes de errores

Después de la implementación, puedes ver los informes de errores en el panel de Error Reporting dentro de Cloud Console.

Ir al panel de Error Reporting

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

Configura Error Reporting para aplicaciones de .NET Core

Para usar la biblioteca cliente Google.Cloud.Diagnostics.AspNetCore, sigue estos pasos:

  1. Haz clic derecho en tu solución de Visual Studio y selecciona Administrar paquetes de Nuget para la solución.

  2. Selecciona la casilla de verificación Incluir lanzamiento anticipado.

  3. Busca y, luego, instala el paquete llamado Google.Cloud.Diagnostics.AspNetCore.

  4. Una vez que el cliente Google.Cloud.Diagnostics.AspNetCore esté instalado, agrega la siguiente directiva de uso para los archivos del código fuente de tu aplicación cuando desees personalizar la información de error que se envía a Error Reporting:

     using Google.Cloud.Diagnostics.AspNetCore;
    

Luego, completa los siguientes pasos para registrar informes de errores personalizados desde tu aplicación:

  1. Crea o edita el método ConfigureServices en el archivo Startup.cs de la aplicación y llama a services.AddGoogleExceptionLogging():

    services.AddGoogleExceptionLogging(options =>
    {
        options.ProjectId = "YOUR-GOOGLE-PROJECT-ID";
        options.ServiceName = "ShoppingCartService";
        options.Version = "0.01";
    });
    
  2. Edita el método Configure en el archivo Startup.cs de la aplicación y llama a app.UseGoogleExceptionLogging() antes de llamar a app.UseStaticFiles() y app.UseMvc().

    // Use before handling any requests to ensure all unhandled exceptions are reported.
    app.UseGoogleExceptionLogging();
    

En el siguiente ejemplo, se muestran los errores de registro con el fin de informar un evento de error personalizado para que Error Reporting lo transfiera:

throw new Exception("Generic exception for testing Stackdriver Error Reporting");