Habilitar o OpenTelemetry do Azure Monitor para aplicativos .NET, Node.js, Python e Java
Artigo
Este artigo descreve como habilitar e configurar a coleta de dados baseada em OpenTelemetry no Application Insights. Distribuições do OpenTelemetry do Azure Monitor:
As ofertas do OpenTelemetry estão disponíveis para aplicativos .NET, Node.js, Python e Java. Para obter um status de versão de recurso por recurso, confira as Perguntas frequentes.
Habilitar o OpenTelemetry com o Application Insights
Siga as etapas nesta seção para instrumentar seu aplicativo com o OpenTelemetry. Selecione uma guia para instruções específicas a um idioma.
Observação
O .NET aborda vários cenários, incluindo ASP.NET clássico, aplicativos de console, Windows Forms (WinForms) e muito mais.
Se você não depende de nenhuma propriedade listada na tabela sem suporte, o shim do ApplicationInsights será o caminho mais fácil para avançar quando estiver mais no beta.
Se você depende dessas propriedades, prossiga com a Distribuição OpenTelemetry do Azure Monitor. Forneceremos um guia de migração em breve.
Dica
Se você estiver migrando da API Clássica do Application Insights, consulte nossa documentação de migração.
Se você estiver atualizando de uma versão 3.x anterior, poderá ser afetado pela alteração de padrões ou por pequenas diferenças nos dados que coletamos. Para obter mais informações, consulte a seção de migração nas notas sobre a versão.
3.5.0, 3.4.0, 3.3.0, 3.2.0 e 3.1.0
Importe o Azure.Monitor.OpenTelemetry.AspNetCore namespace, adicione o OpenTelemetry e configure-o para usar o Azure Monitor em sua program.cs classe:
C#
// Import the Azure.Monitor.OpenTelemetry.AspNetCore namespace.using Azure.Monitor.OpenTelemetry.AspNetCore;
var builder = WebApplication.CreateBuilder(args);
// Add OpenTelemetry and configure it to use Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor();
var app = builder.Build();
app.Run();
Adicione o Exportador do Azure Monitor a cada sinal do OpenTelemetry na classe do program.cs:
C#
// Create a new tracer provider builder and add an Azure Monitor trace exporter to the tracer provider builder.// It is important to keep the TracerProvider instance active throughout the process lifetime.// See https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/trace#tracerprovider-managementvar tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddAzureMonitorTraceExporter();
// Add an Azure Monitor metric exporter to the metrics provider builder.// It is important to keep the MetricsProvider instance active throughout the process lifetime.// See https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/metrics#meterprovider-managementvar metricsProvider = Sdk.CreateMeterProviderBuilder()
.AddAzureMonitorMetricExporter();
// Create a new logger factory.// It is important to keep the LoggerFactory instance active throughout the process lifetime.// See https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/logs#logger-managementvar loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry(logging =>
{
logging.AddAzureMonitorLogExporter();
});
});
A instrumentação automática é habilitada por meio de alterações de configuração.
Nenhuma alteração de código é necessária.
Aponte a JVM (Máquina Virtual Java) para o arquivo jar adicionando -javaagent:"path/to/applicationinsights-agent-3.7.0.jar" aos argumentos JVM do aplicativo.
Observação
A amostragem é habilitada por padrão a uma taxa de cinco solicitações por segundo, auxiliando no gerenciamento de custos. Os dados telemétricos podem estar ausentes em cenários que excedem essa taxa. Para obter mais informações sobre como modificar a configuração da amostragem, consulte substituições de amostragem.
A instrumentação automática é habilitada por meio de alterações de configuração.
Nenhuma alteração de código é necessária.
TypeScript
// Import the `useAzureMonitor()` function from the `@azure/monitor-opentelemetry` package.const { useAzureMonitor } = require("@azure/monitor-opentelemetry");
// Call the `useAzureMonitor()` function to configure OpenTelemetry to use Azure Monitor.
useAzureMonitor();
Python
import logging
# Import the `configure_azure_monitor()` function from the# `azure.monitor.opentelemetry` package.from azure.monitor.opentelemetry import configure_azure_monitor
# Configure OpenTelemetry to use Azure Monitor with the # APPLICATIONINSIGHTS_CONNECTION_STRING environment variable.
configure_azure_monitor(
logger_name="<your_logger_namespace>", # Set the namespace for the logger in which you would like to collect telemetry for if you are collecting logging telemetry. This is imperative so you do not collect logging telemetry from the SDK itself.
)
logger = logging.getLogger("<your_logger_namespace>") # Logging telemetry will be collected from logging calls made with this logger and all of it's children loggers.
Copiar a cadeia de conexão do seu recurso do Application Insights
A cadeia de conexão é exclusiva e especifica para onde as Distribuições do OpenTelemetry do Azure Monitor enviam a telemetria coletada.
Dica
Se você ainda não tem um recurso do Application Insights, crie um seguindo este guia. Recomendamos que você crie um novo recurso em vez de usar um recurso existente.
Para copiar a cadeia de conexão:
Acesse o painel Visão geral do recurso Application Insights.
Encontre sua cadeia de conexão.
Passe o mouse sobre a cadeia de conexão e selecione o ícone Copiar para a área de transferência.
Cole a cadeia de conexão em seu ambiente
Para colar sua cadeia de conexão, selecione uma das opções a seguir:
Importante
Recomendamos definir a cadeia de conexão por meio de código somente em ambientes de desenvolvimento e teste locais.
Para produção, use uma variável de ambiente ou arquivo de configuração (somente Java).
Definir por meio de variável de ambiente - recomendado
Substitua <Your connection string> no comando a seguir por sua cadeia de conexão.
Definir por meio de arquivo de configuração - somente Java
Crie um arquivo de configuração chamado applicationinsights.json e coloque-o no mesmo diretório que applicationinsights-agent-3.7.0.jar com o seguinte conteúdo:
Se você definir a cadeia de conexão em vários locais, a variável de ambiente será priorizada na seguinte ordem:
Código
Variável de ambiente
Arquivo de configuração
Confirmar se os dados estão fluindo
Abra o seu aplicativo e, em seguida, abra o Application Insights no portal do Azure. Pode levar alguns minutos para os dados aparecerem.
Agora, o Application Insights está habilitado para seu aplicativo. As etapas a seguir são opcionais e permitem uma personalização adicional.
Importante
Se você tem dois ou mais serviços que emitem telemetria para o mesmo recurso do Application Insights, precisa definir Nomes de Função de Nuvem para representá-los corretamente no Mapa do Aplicativo.
Como parte do uso da instrumentação do Application Insights, coletamos e enviamos dados de diagnóstico para a Microsoft. Esses dados nos ajudam a executar e a aprimorar o Application Insights. Para saber mais, confira Statsbeat no Azure Application Insights.
Aplicativos de exemplo
Os aplicativos de exemplo do OpenTelemetry do Azure Monitor estão disponíveis para todos os idiomas com suporte:
Saiba mais sobre observabilidade e como implementá-la em um aplicativo nativo de nuvem. Use os pacotes OpenTelemetry para gerar logs, métricas e dados de rastreamento e analisar os dados no Application Insights e em aplicativos de terceiros.
Crie soluções de ponta a ponta no Microsoft Azure para criar Funções do Azure, implementar e gerenciar aplicativos Web, desenvolver soluções utilizando o Armazenamento do Microsoft Azure e muito mais.