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.
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.