Telemetria com Application InsightsTelemetry with Application Insights

Application insights é uma plataforma de diagnóstico sem servidor que permite aos desenvolvedores detectar, fazer triagem e diagnosticar problemas em aplicativos Web, aplicativos móveis, aplicativos de área de trabalho e microservices.Application Insights is a serverless diagnostics platform that enables developers to detect, triage, and diagnose issues in web apps, mobile apps, desktop apps, and microservices. Você pode ativar Application Insights para aplicativos de funções simplesmente invertendo uma opção no Portal.You can turn on Application Insights for function apps simply by flipping a switch in the portal. O Application Insights fornece todos esses recursos sem a necessidade de configurar um servidor ou configurar seu próprio banco de dados.Application Insights provides all of these capabilities without you having to configure a server or set up your own database. Todos os recursos de Application Insights são fornecidos como um serviço que se integra automaticamente aos seus aplicativos.All of Application Insights' capabilities are provided as a service that automatically integrates with your apps.

Logotipo de Application Insights

Adicionar Application Insights a aplicativos existentes é tão fácil quanto adicionar uma chave de instrumentação às configurações do seu aplicativo.Adding Application Insights to existing apps is as easy as adding an instrumentation key to your application's settings. Com Application Insights você pode:With Application Insights you can:

  • Crie gráficos personalizados e alertas com base em métricas, como o número de invocações de função, o tempo necessário para executar uma função e exceçõesCreate custom charts and alerts based on metrics such as number of function invocations, the time it takes to run a function, and exceptions
  • Analisar falhas e exceções de servidorAnalyze failures and server exceptions
  • Detalhar o desempenho por operação e medir o tempo necessário para chamar dependências de terceirosDrill into performance by operation and measure the time it takes to call third-party dependencies
  • Monitore o uso da CPU, a memória e as taxas em todos os servidores que hospedam seus aplicativos de funçõesMonitor CPU usage, memory, and rates across all servers that host your function apps
  • Exibir uma transmissão ao vivo de métricas, incluindo contagem de solicitações e latência para seus aplicativos de funçõesView a live stream of metrics including request count and latency for your function apps
  • Use a análise para pesquisar, consultar e criar gráficos personalizados sobre seus dados de funçãoUse Analytics to search, query, and create custom charts over your function data

Gerenciador de métricas

Além da telemetria interna, também é possível gerar telemetria personalizada.In addition to built-in telemetry, it's also possible to generate custom telemetry. O trecho de código a seguir cria um cliente de telemetria personalizado usando a chave de instrumentação definida para o aplicativo de funções:The following code snippet creates a custom telemetry client using the instrumentation key set for the function app:

public static TelemetryClient telemetry = new TelemetryClient()
{
    InstrumentationKey = Environment.GetEnvironmentVariable("APPINSIGHTS_INSTRUMENTATIONKEY")
};

O código a seguir mede quanto tempo leva para inserir uma nova linha em uma instância de armazenamento de tabela do Azure :The following code measures how long it takes to insert a new row into an Azure Table Storage instance:

var operation = TableOperation.Insert(entry);
var startTime = DateTime.UtcNow;
var timer = System.Diagnostics.Stopwatch.StartNew();
await table.ExecuteAsync(operation);
telemetry.TrackDependency("AzureTableStorageInsert", "Insert", startTime, timer.Elapsed, true);

O grafo de desempenho resultante é mostrado:The resulting performance graph is shown:

Telemetria personalizada

A telemetria personalizada revela que o tempo médio para inserir uma nova linha é de 32,6 milissegundos.The custom telemetry reveals the average time to insert a new row is 32.6 milliseconds.

O Application Insights fornece uma maneira poderosa e conveniente de registrar em log a telemetria detalhada sobre seus aplicativos sem servidor.Application Insights provides a powerful, convenient way to log detailed telemetry about your serverless applications. Você tem controle total sobre o nível de rastreamento e registro em log que é fornecido.You have full control over the level of tracing and logging that is provided. Você pode acompanhar estatísticas personalizadas, como eventos, dependências e exibição de página.You can track custom statistics such as events, dependencies, and page view. Por fim, a poderosa análise permite que você escreva consultas que façam perguntas importantes e gere gráficos e ideias avançadas.Finally, the powerful analytics enable you to write queries that ask important questions and generate charts and advanced insights.

Para obter mais informações, consulte monitorar Azure Functions.For more information, see Monitor Azure Functions.