Partilhar via


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

Há muitos sistemas comerciais de Application Performance Management (APM) disponíveis para escolha. 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 visualizações e recursos de análise avançados.

1. Adicionando a distro 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 configurar o OpenTelemetry.

Este exemplo é baseado no passo a passo da 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 para o 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>

Nota

Substitua a versão pela mais recente disponível

2. Configurar o exportador

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

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

UseAzureMonitor() é a magia que adicionará as bibliotecas de instrumentação comuns e os exportadores do Application Insights. Você só precisa adicionar seu costume Meter e ActivitySource nomes ao registro.

A mesma inicialização OTel funciona para OTLP como para 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 ainda não for um cliente do Azure, pode criar uma conta gratuita em https://azure.microsoft.com/free/. Faça logon no Portal do Azure e selecione um recurso existente do Application Insights ou crie um novo com https://ms.portal.azure.com/#create/Microsoft.AppInsightso .

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

Cadeia de conexão no Portal do Azure

Se você estiver usando o Serviço de Aplicativo do Azure, essa cadeia de conexão será passada automaticamente para o aplicativo como uma variável de ambiente. Para outros serviços ou ao executar localmente, você precisa passá-lo usando a APPLICATIONINSIGHTS_CONNECTION_STRING variável de 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..."
}

Nota

Substitua o valor pelo da sua instância.

4. Examine seu aplicativo no Application Insights

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

Registos

Visualização de logs do App Insights

Métricas

Visualização de métricas do App Insights

Rastreamento distribuído

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