Diagnosticar exceções em seus aplicativos Web com o Application InsightsDiagnose exceptions in your web apps with Application Insights

Exceções em seu aplicativo Web ao vivo são relatadas pelo Application Insights.Exceptions in your live web app are reported by Application Insights. Você pode correlacionar solicitações com falha com exceções e outros eventos no cliente e no servidor, para poder diagnosticar as causas rapidamente.You can correlate failed requests with exceptions and other events at both the client and server, so that you can quickly diagnose the causes.

Configurar os relatórios de exceçãoSet up exception reporting

Diagnosticar exceções usando o Visual StudioDiagnosing exceptions using Visual Studio

Abra a solução do aplicativo no Visual Studio para ajudar com a depuração.Open the app solution in Visual Studio to help with debugging.

Execute o aplicativo, em seu servidor ou na máquina de desenvolvimento, usando F5.Run the app, either on your server or on your development machine by using F5.

Abra a janela Pesquisa do Application Insights no Visual Studio e configure-a para exibir eventos de seu aplicativo.Open the Application Insights Search window in Visual Studio, and set it to display events from your app. Durante a depuração, você pode fazer isso clicando no botão Application Insights.While you're debugging, you can do this just by clicking the Application Insights button.

Clique com o botão direito no projeto e escolha Application Insights, Abrir.

Observe que você pode filtrar o relatório para mostrar apenas as exceções.Notice that you can filter the report to show just exceptions.

Nenhuma exceção aparecendo? Consulte capturar exceções.No exceptions showing? See Capture exceptions.

Clique em um relatório de exceções para mostrar o rastreamento de pilha.Click an exception report to show its stack trace. Clique em uma referência de linha no rastreamento de pilha para abrir o arquivo de código relevante.Click a line reference in the stack trace, to open the relevant code file.

No código, observe que o CodeLens mostra dados sobre as exceções:In the code, notice that CodeLens shows data about the exceptions:

Notificação de exceções do CodeLens.

Como diagnosticar falhas usando o Portal do AzureDiagnosing failures using the Azure portal

O Application Insights vem com uma experiência APM coletada para lhe ajudar a diagnosticar falhas nos aplicativos monitorados.Application Insights comes with a curated APM experience to help you diagnose failures in your monitored applications. Para iniciar, clique na opção de falhas no menu de recurso do Application Insights localizado na seção Investigar.To start, click on the Failures option in the Application Insights resource menu located in the Investigate section. Você deve ver uma exibição de tela inteira que mostra as tendências de taxa de falha das solicitações, quantas delas estão falhando e quantos usuários são afetados.You should see a full-screen view that shows you the failure rate trends for your requests, how many of them are failing, and how many users are impacted. À direita, você verá algumas das distribuições mais úteis específicas para a operação com falha selecionada, incluindo os três principais códigos de resposta, os três principais tipos de exceção e os três principais tipos de dependência com falha.On the right, you'll see some of the most useful distributions specific to the selected failing operation, including top three response codes, top three exception types, and top three failing dependency types.

Exibição de falhas de triagem (guia operações)

Em um único clique, você pode examinar amostras representativas para cada um desses subconjuntos de operações.In a single click, you can then review representative samples for each of these subsets of operations. Em particular, para diagnosticar exceções, você pode clicar na contagem de uma exceção específica a ser apresentada com a guia detalhes da transação de ponta a ponta, como esta:In particular, to diagnose exceptions, you can click on the count of a particular exception to be presented with the End-to-end transaction details tab, such as this one:

Guia detalhes da transação de ponta a ponta

Como alternativa, em vez de examinar as exceções de uma operação com falha específica, você pode iniciar na exibição geral de exceções, alternando para a guia exceções na parte superior.Alternatively, instead of looking at exceptions of a specific failing operation, you can start from the overall view of exceptions, by switching to the Exceptions tab at the top. Aqui você pode ver todas as exceções coletadas para o aplicativo monitorado.Here you can see all the exceptions collected for your monitored app.

Nenhuma exceção aparecendo? Consulte capturar exceções.No exceptions showing? See Capture exceptions.

Dados personalizados de rastreamento e logCustom tracing and log data

Para obter dados de diagnóstico específicos do aplicativo, você pode inserir código para enviar seus próprios dados de telemetria.To get diagnostic data specific to your app, you can insert code to send your own telemetry data. Isso é exibido na pesquisa de diagnóstico junto com a solicitação, a exibição de página e outros dados coletados automaticamente.This displayed in diagnostic search alongside the request, page view, and other automatically collected data.

Você tem várias opções:You have several options:

  • TrackEvent() normalmente é usado para monitorar padrões de uso, mas os dados que ele envia também aparecem em Eventos Personalizados na pesquisa de diagnóstico.TrackEvent() is typically used for monitoring usage patterns, but the data it sends also appears under Custom Events in diagnostic search. Os eventos são nomeados e podem conter propriedades de cadeia de caracteres e métricas numéricas nas quais é possível filtrar pesquisas de diagnóstico.Events are named, and can carry string properties and numeric metrics on which you can filter your diagnostic searches.
  • TrackTrace() permite que você envie dados mais longos, como informações POST.TrackTrace() lets you send longer data such as POST information.
  • TrackException() envia rastreamentos de pilha.TrackException() sends stack traces. Mais sobre exceções.More about exceptions.
  • Se você já usa uma estrutura de registros, como Log4Net ou NLog poderá capturar esses logs e vê-los na pesquisa de diagnóstico junto com os dados de solicitação e exceção.If you already use a logging framework like Log4Net or NLog, you can capture those logs and see them in diagnostic search alongside request and exception data.

Para ver esses eventos, abra Pesquisar no menu à esquerda, selecione os tipos de eventode menu suspenso e, em seguida, escolha evento personalizado, rastreamento ou exceção.To see these events, open Search from the left menu, select the drop-down menu Event types, and then choose Custom Event, Trace, or Exception.

Detalhamento

Observação

Se o seu aplicativo gerar muita telemetria, o módulo de amostragem adaptável reduzirá automaticamente o volume enviado ao portal, enviando apenas uma fração representativa de eventos.If your app generates a lot of telemetry, the adaptive sampling module will automatically reduce the volume that is sent to the portal by sending only a representative fraction of events. Os eventos que fazem parte da mesma operação serão selecionados ou desmarcados como um grupo, para que você possa navegar entre os eventos relacionados.Events that are part of the same operation will be selected or deselected as a group, so that you can navigate between related events. Saiba mais sobre amostragem.Learn about sampling.

Como consultar dados POST de solicitaçãoHow to see request POST data

Os detalhes da solicitação não incluem os dados enviados ao seu aplicativo em uma chamada POST.Request details don't include the data sent to your app in a POST call. Para que esses dados sejam relatados:To have this data reported:

  • Instale o SDK no projeto do seu aplicativo.Install the SDK in your application project.
  • Insira o código no seu aplicativo para chamar Microsoft.ApplicationInsights.TrackTrace().Insert code in your application to call Microsoft.ApplicationInsights.TrackTrace(). Envie os dados de POST no parâmetro de mensagem.Send the POST data in the message parameter. Há um limite para o tamanho permitido, portanto você deve tentar enviar somente os dados essenciais.There is a limit to the permitted size, so you should try to send just the essential data.
  • Quando você investiga uma solicitação com falha, localize os rastreamentos associados.When you investigate a failed request, find the associated traces.

No início você não verá no portal todas as exceções que causam falhas em seu aplicativo.At first, you won't see in the portal all the exceptions that cause failures in your app. Você verá quaisquer exceções do navegador (se você estiver usando o SDK do JavaScript nas páginas da Web).You'll see any browser exceptions (if you're using the JavaScript SDK in your web pages). Mas a maioria das exceções de servidor são capturados pelo IIS e é preciso escrever um pouco de código para vê-los.But most server exceptions are caught by IIS and you have to write a bit of code to see them.

Você pode:You can:

  • Registrar as exceções explicitamente inserindo código em manipuladores de exceção para relatar as exceções.Log exceptions explicitly by inserting code in exception handlers to report the exceptions.
  • Capturar exceções automaticamente configurando sua estrutura do ASP.NET.Capture exceptions automatically by configuring your ASP.NET framework. As inclusões necessárias são diferentes para diferentes tipos de estrutura.The necessary additions are different for different types of framework.

Relatar exceções explicitamenteReporting exceptions explicitly

A maneira mais simples é inserir uma chamada a TrackException() em um manipulador de exceção.The simplest way is to insert a call to TrackException() in an exception handler.

    try
    { ...
    }
    catch (ex)
    {
      appInsights.trackException(ex, "handler loc",
        {Game: currentGame.Name,
         State: currentGame.State.ToString()});
    }
    var telemetry = new TelemetryClient();
    ...
    try
    { ...
    }
    catch (Exception ex)
    {
       // Set up some properties:
       var properties = new Dictionary <string, string>
         {{"Game", currentGame.Name}};

       var measurements = new Dictionary <string, double>
         {{"Users", currentGame.Users.Count}};

       // Send the exception telemetry:
       telemetry.TrackException(ex, properties, measurements);
    }
    Dim telemetry = New TelemetryClient
    ...
    Try
      ...
    Catch ex as Exception
      ' Set up some properties:
      Dim properties = New Dictionary (Of String, String)
      properties.Add("Game", currentGame.Name)

      Dim measurements = New Dictionary (Of String, Double)
      measurements.Add("Users", currentGame.Users.Count)

      ' Send the exception telemetry:
      telemetry.TrackException(ex, properties, measurements)
    End Try

Os parâmetros de propriedades e medidas são opcionais, mas são úteis para Filtrar e adicionar informações extras.The properties and measurements parameters are optional, but are useful for filtering and adding extra information. Por exemplo, se você tiver um aplicativo que pode executar vários jogos, será possível localizar todos os relatórios de exceção relacionados a um jogo específico.For example, if you have an app that can run several games, you could find all the exception reports related to a particular game. Você pode adicionar quantos itens desejar a cada dicionário.You can add as many items as you like to each dictionary.

Exceções de navegadorBrowser exceptions

A maioria das exceções de navegador são relatados.Most browser exceptions are reported.

Se sua página da Web incluir arquivos de script de redes de distribuição de conteúdo ou outros domínios, verifique se a marca do script tem o atributo crossorigin="anonymous" e se o servidor envia cabeçalhos CORS.If your web page includes script files from content delivery networks or other domains, ensure your script tag has the attribute crossorigin="anonymous", and that the server sends CORS headers. Isso permitirá que você obtenha um rastreamento de pilha e detalhes de exceções sem tratamento JavaScript desses recursos.This will allow you to get a stack trace and detail for unhandled JavaScript exceptions from these resources.

Reutilizar o cliente de telemetriaReuse your telemetry client

Observação

O TelemetryClient é recomendado para ser instanciado uma vez e reutilizado durante toda a vida útil de um aplicativo.TelemetryClient is recommended to be instantiated once and re-used throughout the life of an application.

Veja abaixo um exemplo que usa TelemetryClient corretamente.Below is an example using TelemetryClient correctly.

public class GoodController : ApiController
{
    // OK
    private static readonly TelemetryClient telemetryClient;

    static GoodController()
    {
        telemetryClient = new TelemetryClient();
    }
}

Formulários da WebWeb forms

Para formulários da web, o módulo HTTP poderá coletar as exceções quando não houver nenhum redirecionamento configurado com CustomErrors.For web forms, the HTTP Module will be able to collect the exceptions when there are no redirects configured with CustomErrors.

Mas se você tiver redirecionamentos ativos, adicione as seguintes linhas para a função Application_Error em Global.asax.cs.But if you have active redirects, add the following lines to the Application_Error function in Global.asax.cs. (Adicionar um arquivo Global.asax se você ainda não tiver um).(Add a Global.asax file if you don't already have one.)

    void Application_Error(object sender, EventArgs e)
    {
      if (HttpContext.Current.IsCustomErrorEnabled && Server.GetLastError () != null)
      {
         var ai = new TelemetryClient(); // or re-use an existing instance

         ai.TrackException(Server.GetLastError());
      }
    }

MVCMVC

Começar com o SDK do Application Insights Web versão 2.6 (beta3 e posterior), exceções de coleta sem tratamento do Application Insights lançadas automaticamente nos métodos de controladores MVC 5+.Starting with Application Insights Web SDK version 2.6 (beta3 and later), Application Insights collects unhandled exceptions thrown in the MVC 5+ controllers methods automatically. Se você já adicionou um manipulador personalizado para controlar essas exceções (conforme descrito nos exemplos a seguir), você pode remover para evitar o controle duplo de exceções.If you have previously added a custom handler to track such exceptions (as described in following examples), you may remove it to prevent double tracking of exceptions.

Há um número de casos que não podem lidar com os filtros de exceção.There are a number of cases that the exception filters cannot handle. Por exemplo:For example:

  • Exceções geradas por construtores de controlador.Exceptions thrown from controller constructors.
  • Exceções geradas por manipuladores de mensagens.Exceptions thrown from message handlers.
  • Exceções geradas durante o roteamento.Exceptions thrown during routing.
  • Exceções geradas durante a serialização de conteúdo da resposta.Exceptions thrown during response content serialization.
  • Exceção lançada durante a inicialização do aplicativo.Exception thrown during application start-up.
  • Exceção lançada em tarefas em segundo plano.Exception thrown in background tasks.

Todas as exceções tratadas pelo aplicativo ainda precisam ser controladas manualmente.All exceptions handled by application still need to be tracked manually. Exceções não tratadas provenientes de controladores geralmente resultam em resposta de "Erro interno do servidor" 500.Unhandled exceptions originating from controllers typically result in 500 "Internal Server Error" response. Se a resposta for criada manualmente como resultado de exceção tratada (ou nenhuma exceção), ele é rastreado em telemetria de solicitação correspondente com ResultCode 500, porém o SDK do Application Insights não poderá controlar a exceção correspondente.If such response is manually constructed as a result of handled exception (or no exception at all) it is tracked in corresponding request telemetry with ResultCode 500, however Application Insights SDK is unable to track corresponding exception.

Suporte de versões anterioresPrior versions support

Se você usa o MVC 4 (e versões anteriores) do Application Insights Web SDK 2.5 (e versões anteriores), consulte os exemplos a seguir para rastrear exceções.If you use MVC 4 (and prior) of Application Insights Web SDK 2.5 (and prior), refer to the following examples to track exceptions.

Se a configuração do CustomErrors é Off, as exceções estarão disponíveis para o módulo HTTP coletar.If the CustomErrors configuration is Off, then exceptions will be available for the HTTP Module to collect. No entanto, se for RemoteOnly (padrão), ou On, a exceção será desmarcada e não está disponível para o Application Insights coletar automaticamente.However, if it is RemoteOnly (default), or On, then the exception will be cleared and not available for Application Insights to automatically collect. Você pode corrigir isso substituindo a classe System. Web. Mvc. HandleErrorAttributee aplicando a classe substituída, conforme mostrado nas diferentes versões do MVC abaixo (origem do GitHub):You can fix that by overriding the System.Web.Mvc.HandleErrorAttribute class, and applying the overridden class as shown for the different MVC versions below (GitHub source):

    using System;
    using System.Web.Mvc;
    using Microsoft.ApplicationInsights;

    namespace MVC2App.Controllers
    {
      [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
      public class AiHandleErrorAttribute : HandleErrorAttribute
      {
        public override void OnException(ExceptionContext filterContext)
        {
            if (filterContext != null && filterContext.HttpContext != null && filterContext.Exception != null)
            {
                //If customError is Off, then AI HTTPModule will report the exception
                if (filterContext.HttpContext.IsCustomErrorEnabled)
                {   //or reuse instance (recommended!). see note above
                    var ai = new TelemetryClient();
                    ai.TrackException(filterContext.Exception);
                }
            }
            base.OnException(filterContext);
        }
      }
    }

MVC 2MVC 2

Substitua o atributo HandleError pelo novo atributo em seus controladores.Replace the HandleError attribute with your new attribute in your controllers.

    namespace MVC2App.Controllers
    {
        [AiHandleError]
        public class HomeController : Controller
        {
    ...

AmostraSample

MVC 3MVC 3

Registrar AiHandleErrorAttribute como um filtro global em Global.asax.cs:Register AiHandleErrorAttribute as a global filter in Global.asax.cs:

    public class MyMvcApplication : System.Web.HttpApplication
    {
      public static void RegisterGlobalFilters(GlobalFilterCollection filters)
      {
         filters.Add(new AiHandleErrorAttribute());
      }
     ...

AmostraSample

MVC 4, MVC5MVC 4, MVC5

Registre AiHandleErrorAttribute como um filtro global em FilterConfig.cs:Register AiHandleErrorAttribute as a global filter in FilterConfig.cs:

    public class FilterConfig
    {
      public static void RegisterGlobalFilters(GlobalFilterCollection filters)
      {
        // Default replaced with the override to track unhandled exceptions
        filters.Add(new AiHandleErrorAttribute());
      }
    }

AmostraSample

API WebWeb API

Começar com o SDK do Application Insights Web versão 2.6 (beta3 e posterior), exceções de coleta sem tratamento do Application Insights lançadas automaticamente nos métodos de controladores para WebAPI 2+.Starting with Application Insights Web SDK version 2.6 (beta3 and later), Application Insights collects unhandled exceptions thrown in the controller methods automatically for WebAPI 2+. Se você já adicionou um manipulador personalizado para controlar essas exceções (conforme descrito nos exemplos a seguir), você pode remover para evitar o controle duplo de exceções.If you have previously added a custom handler to track such exceptions (as described in following examples), you may remove it to prevent double tracking of exceptions.

Há um número de casos que não podem lidar com os filtros de exceção.There are a number of cases that the exception filters cannot handle. Por exemplo:For example:

  • Exceções geradas por construtores de controlador.Exceptions thrown from controller constructors.
  • Exceções geradas por manipuladores de mensagens.Exceptions thrown from message handlers.
  • Exceções geradas durante o roteamento.Exceptions thrown during routing.
  • Exceções geradas durante a serialização de conteúdo da resposta.Exceptions thrown during response content serialization.
  • Exceção lançada durante a inicialização do aplicativo.Exception thrown during application start-up.
  • Exceção lançada em tarefas em segundo plano.Exception thrown in background tasks.

Todas as exceções tratadas pelo aplicativo ainda precisam ser controladas manualmente.All exceptions handled by application still need to be tracked manually. Exceções não tratadas provenientes de controladores geralmente resultam em resposta de "Erro interno do servidor" 500.Unhandled exceptions originating from controllers typically result in 500 "Internal Server Error" response. Se a resposta for criada manualmente como resultado de exceção tratada (ou nenhuma exceção), ele é rastreado em uma telemetria de solicitação correspondente com ResultCode 500, porém o SDK do Application Insights não poderá controlar a exceção correspondente.If such response is manually constructed as a result of handled exception (or no exception at all) it is tracked in a corresponding request telemetry with ResultCode 500, however Application Insights SDK is unable to track corresponding exception.

Suporte de versões anterioresPrior versions support

Se você usa o WebAPI 1 (e versões anteriores) do Application Insights Web SDK 2.5 (e versões anteriores), consulte os exemplos a seguir para rastrear exceções.If you use WebAPI 1 (and prior) of Application Insights Web SDK 2.5 (and prior), refer to the following examples to track exceptions.

Web API 1.xWeb API 1.x

Substitua System.Web.Http.Filters.ExceptionFilterAttribute:Override System.Web.Http.Filters.ExceptionFilterAttribute:

    using System.Web.Http.Filters;
    using Microsoft.ApplicationInsights;

    namespace WebAPI.App_Start
    {
      public class AiExceptionFilterAttribute : ExceptionFilterAttribute
      {
        public override void OnException(HttpActionExecutedContext actionExecutedContext)
        {
            if (actionExecutedContext != null && actionExecutedContext.Exception != null)
            {  //or reuse instance (recommended!). see note above
                var ai = new TelemetryClient();
                ai.TrackException(actionExecutedContext.Exception);
            }
            base.OnException(actionExecutedContext);
        }
      }
    }

Você pode adicionar esse atributo substituído para controladores específicos ou adicioná-lo na configuração de filtros globais na classe WebApiConfig:You could add this overridden attribute to specific controllers, or add it to the global filter configuration in the WebApiConfig class:

    using System.Web.Http;
    using WebApi1.x.App_Start;

    namespace WebApi1.x
    {
      public static class WebApiConfig
      {
        public static void Register(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional });
            ...
            config.EnableSystemDiagnosticsTracing();

            // Capture exceptions for Application Insights:
            config.Filters.Add(new AiExceptionFilterAttribute());
        }
      }
    }

AmostraSample

Web API 2.xWeb API 2.x

Adicione uma implementação de IExceptionLogger:Add an implementation of IExceptionLogger:

    using System.Web.Http.ExceptionHandling;
    using Microsoft.ApplicationInsights;

    namespace ProductsAppPureWebAPI.App_Start
    {
      public class AiExceptionLogger : ExceptionLogger
      {
        public override void Log(ExceptionLoggerContext context)
        {
            if (context !=null && context.Exception != null)
            {//or reuse instance (recommended!). see note above
                var ai = new TelemetryClient();
                ai.TrackException(context.Exception);
            }
            base.Log(context);
        }
      }
    }

Adicione isso aos serviços no WebApiConfig:Add this to the services in WebApiConfig:

    using System.Web.Http;
    using System.Web.Http.ExceptionHandling;
    using ProductsAppPureWebAPI.App_Start;

    namespace WebApi2WithMVC
    {
      public static class WebApiConfig
      {
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
            config.Services.Add(typeof(IExceptionLogger), new AiExceptionLogger());
        }
      }
     }

AmostraSample

Como alternativas, você pode:As alternatives, you could:

  1. Substituir o ExceptionHandler apenas por uma implementação personalizada de IExceptionHandler.Replace the only ExceptionHandler with a custom implementation of IExceptionHandler. Isso é chamado apenas quando a estrutura ainda é capaz de escolher a mensagem de resposta para enviar (não quando a conexão é anulada, por exemplo)This is only called when the framework is still able to choose which response message to send (not when the connection is aborted for instance)
  2. Filtros de Exceção (como descrito na seção controladores acima da API Web 1.x) - não são chamados em todos os casos.Exception Filters (as described in the section on Web API 1.x controllers above) - not called in all cases.

WCFWCF

Adicione uma classe que estende o atributo e implementa IErrorHandler e IServiceBehavior.Add a class that extends Attribute and implements IErrorHandler and IServiceBehavior.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.ServiceModel.Description;
    using System.ServiceModel.Dispatcher;
    using System.Web;
    using Microsoft.ApplicationInsights;

    namespace WcfService4.ErrorHandling
    {
      public class AiLogExceptionAttribute : Attribute, IErrorHandler, IServiceBehavior
      {
        public void AddBindingParameters(ServiceDescription serviceDescription,
            System.ServiceModel.ServiceHostBase serviceHostBase,
            System.Collections.ObjectModel.Collection<ServiceEndpoint> endpoints,
            System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
        {
        }

        public void ApplyDispatchBehavior(ServiceDescription serviceDescription,
            System.ServiceModel.ServiceHostBase serviceHostBase)
        {
            foreach (ChannelDispatcher disp in serviceHostBase.ChannelDispatchers)
            {
                disp.ErrorHandlers.Add(this);
            }
        }

        public void Validate(ServiceDescription serviceDescription,
            System.ServiceModel.ServiceHostBase serviceHostBase)
        {
        }

        bool IErrorHandler.HandleError(Exception error)
        {//or reuse instance (recommended!). see note above
            var ai = new TelemetryClient();

            ai.TrackException(error);
            return false;
        }

        void IErrorHandler.ProvideFault(Exception error,
            System.ServiceModel.Channels.MessageVersion version,
            ref System.ServiceModel.Channels.Message fault)
        {
        }
      }
    }

Add the attribute to the service implementations:

    namespace WcfService4
    {
        [AiLogException]
        public class Service1 : IService1
        {
         ...

AmostraSample

Contadores de desempenho de exceçãoException performance counters

Se você instalou o Agente do Application Insights no seu servidor, poderá obter um gráfico da taxa de exceções, medida pelo .NET.If you have installed the Application Insights Agent on your server, you can get a chart of the exceptions rate, measured by .NET. Isso inclui exceções .NET tradas e sem tratamento.This includes both handled and unhandled .NET exceptions.

Abra uma guia do Gerenciador de métricas, adicione um novo gráfico e selecione taxa de exceção, listada em contadores de desempenho.Open a Metric Explorer tab, add a new chart, and select Exception rate, listed under Performance Counters.

O .NET Framework calcula a taxa contando o número de exceções em um intervalo e dividindo pelo comprimento do intervalo.The .NET framework calculates the rate by counting the number of exceptions in an interval and dividing by the length of the interval.

Isso é diferente da contagem 'Exceções' calculada pelo portal do Application Insights contando relatórios TrackException.This is different from the 'Exceptions' count calculated by the Application Insights portal counting TrackException reports. Os intervalos de amostragem são diferentes, e o SDK não envia relatórios TrackException a todas as exceções tratadas e sem tratamento.The sampling intervals are different, and the SDK doesn't send TrackException reports for all handled and unhandled exceptions.

Próximas etapasNext steps