Compartilhar via


Exemplo: usar o OpenTelemetry com o Azure Monitor e o Application Insights

Existem muitos sistemas comerciais de gerenciamento de desempenho de aplicativos (APM) disponíveis para você escolher. No Azure, o principal produto de monitoramento de aplicativos é o Application Insights, que faz parte do Azure Monitor. Uma das vantagens de um produto APM integrado é que ele pode correlacionar as diferentes fontes de dados de observabilidade. O Application Insights tem exibições avançadas e recursos de análise.

1. Adicionando a distribuição do Application Insights

Para facilitar a experiência ASP.NET com o Azure Monitor, é fornecido um pacote wrapper (chamado de Distro no jargão OTel) que faz a maior parte do trabalho pesado de configuração do OpenTelemetry.

Este exemplo é baseado no passo a passo do OTLP. Siga as etapas de 1 a 5 para criar o código do aplicativo usando o exportador OTLP. Neste exemplo, estenderemos o código para enviar dados ao Application Insights.

Pegue o mesmo projeto da Etapa 5 e adicione o seguinte pacote NuGet:

<ItemGroup>
  <PackageReference Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.3.0-beta.1" />
</ItemGroup>

Observação

Substitua a versão pela mais recente disponível

2. Configure o exportador

Adicione o seguinte código de inicialização OTel antes builder.Build();de:

if (!string.IsNullOrEmpty(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"]))
{
    otel.UseAzureMonitor();
}

UseAzureMonitor() é a mágica que adicionará as bibliotecas de instrumentação comuns e exportadores no Application Insights. Você só precisa adicionar seus nomes Meter e ActivitySource personalizados ao registro.

A mesma inicialização do OTel funciona para OTLP e para o Application Insights, a diferença é quais exportadores você seleciona. Você pode usar ambos no mesmo aplicativo e selecionar entre eles definindo as variáveis de ambiente apropriadas.

3. Especifique a cadeia de conexão

Se você ainda não for um cliente do Azure, poderá criar uma conta gratuita em https://azure.microsoft.com/free/. Entre no Portal do Azure e selecione um recurso existente do Application Insights ou crie um novo acessando https://ms.portal.azure.com/#create/Microsoft.AppInsights.

O Application Insights identifica qual instância usar para armazenar e processar dados por meio de uma chave de instrumentação e uma cadeia de conexão encontradas no canto superior direito da interface do usuário do portal.

Protegendo sua cadeia de conexão no portal do Azure

Se você estiver usando um Serviço de Aplicativo do Azure, essa cadeia de conexão será automaticamente passada para o aplicativo como uma variável de ambiente. Para outros serviços ou ao executar localmente, você precisa passá-lo usando a variável de APPLICATIONINSIGHTS_CONNECTION_STRING ambiente ou em appsettings.json. Para executar localmente, é mais fácil adicionar o valor a appsettings.development.json:

"AzureMonitor": {
    "ConnectionString": "InstrumentationKey=12345678-abcd-abcd-abcd-12345678..."
}

Observação

Substitua o valor pelo da instância.

4. Examinar seu aplicativo no Application Insights

Quando você executar o aplicativo, a telemetria será enviada ao Application Insights. Agora você deve obter logs, métricas e rastreamentos distribuídos para seu aplicativo. Abra o recurso do Application Insights no Portal do Azure.

Logs

Visualização de logs do Apps Insights

Métricas

Visualização de métricas do Apps Insights

Rastreamento distribuído

Visualização de transações do App Insights