Ative Azure Monitor OpenTelemetry para aplicações .NET, Node.js, Python e Java

Este artigo descreve como ativar e configurar a recolha de dados baseada na OpenTelemetry dentro do Azure Monitor Application Insights utilizando a Azure Monitor OpenTelemetry Distro. OpenTelemetry é o padrão de observabilidade CNCF de código aberto; a distribuição Azure Monitor OpenTelemetry é a distribuição da Microsoft desse standard, otimizada para Azure Monitor. A distribuição:

  • Fornece uma distribuição OpenTelemetry, que inclui suporte para funcionalidades específicas de Azure Monitor.
  • Permite a recolha automática de telemetria incluindo bibliotecas de instrumentação OpenTelemetry para recolher rastreios, métricas, registos e exceções.
  • Permite coletar telemetria personalizada .
  • Suporta Métricas ao Vivo para monitorizar e recolher telemetria de aplicações web em produção ao vivo.

Para mais informações sobre as vantagens de usar a Azure Monitor OpenTelemetry Distro, consulte Porque devo usar a Azure Monitor OpenTelemetry Distro.

Para saber mais sobre a recolha de dados usando o OpenTelemetry, consulte a visão geral do Application Insights ou o FAQ do OpenTelemetry.

Siga os passos deste artigo para instalar a distribuição, ligá-la ao seu recurso Application Insights e verificar se os dados de telemetria fluem para o Azure Monitor.

Gorjeta

Para uma visão conceptual das opções do OpenTelemetry no Azure Monitor — ingestão nativa de OTLP, a distribuição OpenTelemetry da Microsoft e experiências de observabilidade de ponta a ponta — consulte OpenTelemetry com Azure Monitor.

Status da versão do OpenTelemetry

As ofertas OpenTelemetry estão disponíveis para aplicações .NET, Node.js, Python e Java. Para obter um status de versão recurso por recurso, consulte as Perguntas frequentes.

Nota

Para Aplicações de Funções do Azure, veja Use OpenTelemetry com Funções do Azure.

Habilite o OpenTelemetry com o Application Insights

Siga as etapas nesta seção para instrumentar seu aplicativo com OpenTelemetry. Selecione um separador para obter instruções específicas do idioma.

A tabela seguinte resume os pacotes e comandos de instalação para cada linguagem suportada:

Linguagem Package Comando de Instalação
ASP.NET Core Azure.Monitor.OpenTelemetry.AspNetCore dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore
.NET Azure.Monitor.OpenTelemetry.Exporter dotnet add package Azure.Monitor.OpenTelemetry.Exporter
Java applicationinsights-agent-3.7.9.jar Descarregar de GitHub
Node.js @azure/monitor-opentelemetry npm install @azure/monitor-opentelemetry
Python azure-monitor-opentelemetry pip install azure-monitor-opentelemetry

Nota

O .NET cobre vários cenários, incluindo o clássico ASP.NET, aplicações de consola, Windows Forms (WinForms) e mais.

Pré-requisitos

Gorjeta

Se estiver a migrar a partir de SDKs antigos do Application Insights, consulte a nossa documentação de migração.

Instalar a biblioteca de cliente

Instale o pacote mais recente Azure.Monitor.OpenTelemetry.AspNetCoreNuGet:

dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore

Modificar a sua candidatura

Importa o namespace Azure.Monitor.OpenTelemetry.AspNetCore, adiciona OpenTelemetry e configura-o para usar Azure Monitor na tua classe program.cs:

// 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();

Copie a cadeia de ligação do seu recurso Application Insights

A cadeia de ligação é única e especifica para onde a Azure Monitor OpenTelemetry Distro envia a telemetria que recolhe.

Gorjeta

Se você ainda não tiver um recurso do Application Insights, crie um seguindo este guia. Recomendamos que você crie um novo recurso em vez de usar um existente.

Para copiar a cadeia de conexão:

  1. Vá para o painel Visão geral do recurso do Application Insights.
  2. Encontre a sua cadeia de conexão.
  3. Passe o cursor sobre a cadeia de ligação e selecione o ícone Copiar para a prancheta.

Captura de ecrã que mostra a visão geral do Application Insights e cadeia de ligação.

Cole a cadeia de conexão no seu ambiente

Para colar a sua cadeia de ligação, use um dos seguintes métodos:

Método Línguas suportadas Recomendado para
Variável de ambiente Todos Produção
Ficheiro de configuração (applicationinsights.json) Apenas Java Produção (Java)
Código ASP.NET Core, Node.js, Python Apenas desenvolvimento/teste local

Importante

Recomendamos definir a cadeia de ligação através do código apenas em ambientes locais de desenvolvimento e testes.

Para produção, use uma variável de ambiente ou ficheiro de configuração (apenas em Java).

  • Defina a cadeia de ligação Application Insights como variável de ambiente (recomendada para produção)

    Substitua <Your cadeia de ligação> no comando seguinte pela sua string de conexão.

    APPLICATIONINSIGHTS_CONNECTION_STRING=<Your connection string>
    
  • Defina a cadeia de ligação do Application Insights num ficheiro de configuração - Apenas Java

    Crie um arquivo de configuração chamado applicationinsights.json, e coloque-o no mesmo diretório que applicationinsights-agent-3.7.9.jar com o seguinte conteúdo:

    {
      "connectionString": "<Your connection string>"
    }
    

    Substitua <Your cadeia de ligação> no JSON anterior pelo seu cadeia de ligação único.

  • Defina a cadeia de ligação do Application Insights no código - Apenas ASP.NET Core, Node.js e Python

    Veja cadeia de ligação configuration para um exemplo de definição de cadeia de ligação via código.

Nota

Se definir a cadeia de ligação em vários lugares, ela é resolvida na seguinte ordem de precedência (de maior para mais baixa):

  1. Código
  2. Variável de ambiente
  3. Arquivo de configuração

Confirmar que os dados estão fluindo

Depois de configurar a distribuição OpenTelemetry do Azure Monitor e definir a cadeia de ligação, execute a sua aplicação e abra o recurso do Application Insights no portal do Azure para verificar se os rastreios, as métricas e os logs aparecem. Pode levar alguns minutos para que os dados apareçam.

Captura de tela da guia Visão geral do Application Insights com solicitações de servidor e tempo de resposta do servidor realçados.

O Application Insights agora está habilitado para seu aplicativo. As etapas a seguir são opcionais e permitem mais personalização.

Nota

Como parte da utilização da instrumentação Application Insights, recolhemos e enviamos dados de diagnóstico à Microsoft. Esses dados nos ajudam a executar e melhorar o Application Insights. Saiba mais nas Perguntas Frequentes de Insights de Aplicação.

Importante

Se você tiver dois ou mais serviços que emitem telemetria para o mesmo recurso do Application Insights, será necessário definir Nomes de Função na Nuvem para representá-los corretamente no Mapa do Aplicativo.

Resolução de problemas, feedback e suporte

Gorjeta

As secções seguintes estão disponíveis em todos os artigos da OpenTelemetry Distro.

Troubleshooting

Comentários do OpenTelemetry

Para fornecer comentários:

Suporte

Selecione um separador do idioma da sua escolha para descobrir opções de suporte.

  • Para questões de suporte do Azure, abra um ticket de suporte do Azure.
  • Para questões relacionadas com a OpenTelemetry, contacte diretamente a comunidade .NET OpenTelemetry.
  • Para uma lista de questões em aberto relacionadas com Azure Monitor Exporter, consulte a Página de Problemas GitHub.

Próximos passos