Monitoramento de aplicativos baseados em .NET e .NET Core
Monitore suas aplicações .NET e .NET Core com os recursos de instrumentação automática e rastreamento distribuído do Instana.
Para aplicativos do .NET Framework, consulte a seção “Monitoramento” em .NET Framework.
Visão geral
- Instrumentação automática : sem necessidade de alterações no código com o ` AutoTrace `
- Rastreamento distribuído : visibilidade de ponta a ponta em todos os seus serviços
- Métricas de desempenho : CPU, memória, bloqueios de threads e muito mais
- AutoProfile : Análise contínua de desempenho para otimização
- OpenTelemetry Suporte : Integração com implementações existentes do OTel
Como funciona o monitoramento d.NET
Crie qualquer aplicativo com o .NET 5.0 e versões posteriores ou use um já existente. Instale o agente do Instana no seu ambiente. O agente detecta o processo .NET e carrega o sensor .NET. Ele coleta automaticamente métricas de desempenho e dados de integridade das suas aplicações do .NET Core.
É necessário configurar explicitamente o rastreamento d.NET s para capturar dados detalhados de rastreamento das solicitações que passam pela sua aplicação e pelos serviços conectados. O Tracing acompanha o percurso de cada solicitação pela sua aplicação, mostrando quanto tempo cada etapa leva e onde ocorrem os problemas.
Você pode configurar o rastreamento por meio das seguintes abordagens:
- AutoTrace : Configuração automática por meio do agente
- Rastreamento manual : instalação explícita do pacote ` NuGet `
Para mais informações, consulte Abordagens de instrumentação.
Quando o rastreamento está ativado, o ` Instana ` ativa o `.NET Tracer`, que captura rastreamentos utilizando um ou ambos os seguintes métodos de instrumentação:
- Reescrita de IL : O ` Instana ` se conecta ao processo `.NET ` e reescreve o código da Linguagem Intermediária (IL) selecionado em tempo de execução para inserir lógica de rastreamento.
- Instrumentação orientada a eventos : o Instana monitora eventos e dados de ActivitySource emitidos pelas bibliotecas compatíveis e converte esses eventos em traços distribuídos sem reescrever o código IL. Para obter mais informações, consulte Configuração da instrumentação orientada a eventos.
Tanto os sensores quanto os traçadores trabalham em conjunto para proporcionar uma observabilidade completa. Para conhecer as versões mais recentes do Sensor e do Tracer, consulte .NET Core (Sensor), .NET e .NET Core (Tracer).
Pré-requisitos
Certifique-se de que os seguintes pré-requisitos sejam atendidos:
Requisitos de hardware do sistema:
- RAM: 8 GB ou mais de memória disponível
- CPU: 4 ou mais núcleos de CPU para um desempenho ideal
- Espaço em disco: 100 MB para logs de rastreamento e arquivos temporários
Instana O agente está instalado : o agente do host deve estar em execução na sua infraestrutura.
Conectividade de rede : Sua aplicação .NET deve conseguir se conectar ao agente Instana. Para obter mais informações, consulte Requisitos de rede.
Compatível com o ambiente de execução do `.NET `
- .NET 5.0 ou posterior
- .NET Core 2.x e 3.x (obsoleto)
Para mais detalhes, consulte as informações de suporte.
Informações de suporte
Para verificar se o Instana é compatível com sua configuração atual, consulte os ambientes de execução, bibliotecas e frameworks compatíveis com o .NET.
Configurando o monitorament.NET
Para configurar o monitorament.NET, execute as seguintes tarefas nesta ordem:
Passo 1: Compreender as abordagens de instrumentação
Você pode configurar o rastreamento para suas aplicações do .NET de forma automática ou manual, dependendo do seu ambiente.
Se o seu ambiente for compatível com o AutoTrace,, o Instana instrumenta automaticamente sua aplicação .NET. No entanto, se o recurso " AutoTrace " não for compatível, você deverá usar o rastreamento manual.
AutoTrace
Instana AutoTrace oferece instrumentação automática sem a necessidade de alterar o código. Com essa abordagem, não é necessária nenhuma configuração ou ajuste manual. Instana detecta, instrumenta e rastreia automaticamente os componentes da sua aplicação para você.
Para configurar o rastreamento d.NET o automaticamente, habilite o rastreamento no arquivo de configuração do agente. O agente detecta os processos d.NET e e injeta automaticamente o rastreamento nos processos d.NET e. Não são necessários pacotes do ` NuGet ` nem modificações no código.
O agente cria um arquivo instana_dotnet_global_env.sh de ambiente global que contém as variáveis de ambiente necessárias para o rastreamento d.NET.
Instana começa imediatamente a gerar spans para as solicitações recebidas, e então você pode visualizar os rastreamentos na interface do usuário do Instana.
Traçado manual
O rastreamento manual envolve a utilização de pacotes d NuGet. Com essa abordagem, você tem mais controle sobre o que é rastreado, mas ela requer configuração e ajustes adicionais.
COMPlus_EnableDiagnostics DOTNET_EnableDiagnostics como 1. Se estiverem desativadas, o reescritor de IL não poderá se conectar ao processo e, portanto, as chamadas não poderão ser reescritas e os rastreamentos não poderão ser gerados.Para configurar manualmente o rastreamento d.NET, siga estas etapas:
Adicione os seguintes pacotes Instana NuGet ao seu projeto. Esses pacotes adicionam lógica de rastreamento e permitem a instrumentação em tempo de execução.
Instana.Tracing.CoreInstana.Tracing.Core.Rewriter
Nota:Escolha a variante correta do pacote Rewriter para sua plataforma de destino ( Windows, Linux ou Alpine Linux ).Configure as variáveis de ambiente a seguir:
CORECLR_ENABLE_PROFILINGCORECLR_PROFILER_PATHCORECLR_PROFILERDOTNET_STARTUP_HOOKS
Implemente sua aplicação com as bibliotecas de rastreamento incluídas.
O traçado manual é ideal nos seguintes casos:
- Aplicativos independentes
- Ambientes em que o ` AutoTrace ` não está disponível
Etapa 2: Selecionar o guia de configuração específico para a plataforma
Selecione o guia adequado ao seu ambiente de implantação:
| Ambiente de Implementação | Guia do |
|---|---|
| Funções do AWS Lambda | Configurando o rastreamento d.NET no AWS Lambda |
| Azure App Services | Configurando o rastreamento d.NET no Azure App Services |
| Azure Container Apps | Configurando o rastreamento d.NET em aplicativos em contêineres d Azure |
| Azure Functions | Configurando o rastreamento d.NET no Azure Functions |
| Cloud Foundry plataforma | Configurando o rastreamento d.NET no Cloud Foundry |
| Contêineres do Docker | Configurando o rastreamento d.NET no Docker |
| Aplicativos web hospedados no IIS | Configurando o rastreamento d.NET s no IIS |
| Clusters do Kubernetes | Configurando o rastreamento d.NET no Kubernetes |
| Standard Linux ou Alpine Linux | Configurando o rastreamento d.NET em Linux ou Alpine Linux |
| Windows serviços ou processos independentes | Configurando o rastreamento d.NET no Windows |
| z/OS | Configurando o rastreamento d.NET no z/OS |
Etapa 3: Configurar recursos adicionais (opcional)
Depois de configurar o monitoramento básico, você pode definir os seguintes recursos opcionais adicionais para aprimorar as capacidades de monitoramento do .NET :
- Kafka Cabeçalhos de correlação de rastreamento : Configure os formatos dos cabeçalhos para o rastreamento d Kafka.
- Ignorar processos : controle quais processos são monitorados usando uma lista de permissões ou uma lista de restrições.
- Lista de processos permitidos : monitorar apenas processos específicos.
- Filtragem de intervalos : Reduza o volume de dados filtrando intervalos específicos.
- AutoProfile : Ativar a análise contínua de desempenho para otimização do desempenho.
- Rastreamento personalizado : adicione intervalos personalizados usando o SDK do .NET.
- Instrumentação orientada a eventos : Capture dados de telemetria por meio de eventos d ActivitySource.
- HTTP 4xx Relatórios de erros por código de status : Oferecer suporte à classificação opcional de respostas do tipo “ HTTP ” 4xx como erros em intervalos de saída.
Para obter instruções detalhadas sobre a configuração, consulte “Configurando recursos adicionais ”.
Integração com o OpenTelemetry
Instana fornece componentes adicionais do .NET para integração com o OpenTelemetry.
Visualização de métricas e rastreamentos
Depois de configurar o monitoramento, você poderá visualizar as métricas e os rastreamentos relacionados às aplicações d.NET s na interface do usuário do Instana.
Para visualizar as métricas, siga estas etapas:
- No menu de navegação da interface do usuário do Instana, selecione Infraestrutura.
- Clique em um host monitorado específico.
Você pode acessar um painel do host com todas as métricas coletadas e os processos monitorados.
Para visualizar os traços, siga estas etapas:
- No menu de navegação da interface do usuário do Instana, clique em Aplicativos.
- No painel de aplicativos, selecione um aplicativo ou serviço do .NET.
- No painel de aplicativos ou serviços, clique em Analisar chamadas.
- No painel do Analytics, selecione “Chamadas” ou “Rastreamentos” no menu “Aplicativos ”.
Os guias a seguir fornecem instruções detalhadas sobre como visualizar os dados das suas aplicações:
Ativando métricas no Linux
No Linux, implante seu aplicativo com o pacote Instana.Tracing.CoreNuGet 1.1.34 ou uma versão posterior. Defina a seguinte variável de ambiente:
DOTNET_STARTUP_HOOKS=[path-to-your-app]/Instana.Tracing.Core.dll
Para confirmar se o pacote foi carregado com sucesso, procure a seguinte linha na saída do seu aplicativo:
INSTANA Agent for .NET Core applications installed. Running on
É possível usar o mesmo pacote para o rastreio
Dados de configuração
| Configuração rastreada | Descrição |
|---|---|
| Nome | Nome do aplicativo |
| Versão | Versão do tempo de execução do CLR |
| Argumentos | Fundamentos do pedido |
Métricas de desempenho
| Métrica | Descrição |
|---|---|
| Atividade de GC | Mostra com que frequência e por quanto tempo o coletor de lixo do mecanismo de memória dinâmica (.NET ) é executado |
| Uso de memória | Informa a quantidade de memória que o aplicativo está utilizando |
| Bloqueios de encadeamento | Indica quando os threads estão bloqueados aguardando bloqueios |
| Contenção | Mede a disputa entre threads por recursos compartilhados |
| Exceções | Exibe o número e os tipos de exceções de tempo de execução |
Assinaturas de funcionamento
Instana avalia continuamente os indicadores de integridade em relação às métricas recebidas e notifica problemas ou incidentes com base no impacto sobre os usuários.
Os eventos integrados acionam problemas ou incidentes com base em assinaturas de integridade com falha nas entidades, enquanto os eventos personalizados acionam problemas ou incidentes com base nos limites de uma métrica específica de qualquer entidade.
Para obter informações sobre eventos integrados do .NET, consulte a Referência de eventos integrados.
Desativando o rastreamento
Para desativar o rastreamento em aplicativos do tipo “.NET ”, siga estas etapas:
Atualize o arquivo de configuração: abra o arquivo do agente
configuration.yaml(*instanaAgentDir*/etc/instana/configuration.yaml) e defina o sinalizador de rastreamento `.NET ` comoenabled: false.O exemplo a seguir mostra o arquivo ` configuration.yaml ` com o rastreamento `.NET ` desativado:
# netcore Tracing com.instana.plugin.netcore: tracing: enabled: falseReinicie o agente do Instana para que a configuração atualizada seja aplicada.
Reinicie o processo do host.
Problemas Conhecidos e Limitações
Consulte os problemas conhecidos e as limitações do rastreamento do `.NET `:
Application Insights para monitoramento do ASP.NET Core e do Instana .NET Core
Devido a algumas limitações do Application Insights para o ASP.NET Core, é possível que você observe dados incompletos ou ausentes no Application Insights quando o monitoramento do Instana .NET Core for executado em paralelo.
Se você deseja usar o Application Insights e o Instana simultaneamente, é necessário desativar a propagação do contexto de rastreamento do W3C, desativando a injeção do cabeçalho W3C pelo Instana.
Para impedir que o ` Instana ` insira cabeçalhos ` W3C `, defina a seguinte variável de ambiente:
INSTANA_W3C_DISABLE_INJECT_HEADERS=1
Limitações da instrumentação na versão de biblioteca
Instana com o sensor .NET Core, 1.0.90 e .NET; a versão do Tracer 1.315.1 (13 de março de 2026) restringe a instrumentação às versões de bibliotecas explicitamente listadas na seção “Bibliotecas e frameworks compatíveis para rastreamento ”. As versões não compatíveis não são monitoradas.
Para garantir suporte contínuo, atualize para as versões compatíveis. Para obter mais detalhes e opções de solução alternativa, consulte a nota técnica.
Métricas limitadas no nível do IIS para aplicativos do.NET e 5 e versões posteriores executados em No Managed Code pools de aplicativos
Ao hospedar aplicativos d.NET e 5 ou versões posteriores (incluindo o.NET e 6, 7, 8 e versões posteriores) no IIS, o pool de aplicativos deve ser configurado para ser executado com No Managed Code. Neste modo, o Instana não consegue coletar métricas no nível do IIS.
Quando um pool de aplicativos do IIS está definido como No Managed Code, o Instana não consegue coletar as seguintes métricas no nível do IIS:
- Nomes dos pools de aplicativos
w3wp.exemétricas de processo- Dados de monitoramento no nível do processo de trabalho
Essa limitação é inerente à forma como o IIS hospeda aplicativos do..NET. 5 e versões posteriores. A instrumentação e o rastreamento no nível da aplicação continuam funcionando conforme o esperado, mas as métricas no nível do IIS não estão disponíveis.
Se você precisar de métricas no nível do IIS, considere usar aplicativos do..NET Framework e 4 ou versões anteriores, que oferecem suporte a pools de aplicativos de código gerenciado.
Resolução de problemas no monitoramento d.NET
Se você encontrar problemas com o monitoramento ou rastreamento d.NET, proceda da seguinte forma para solucionar o problema:
Passos comuns para a resolução de problemas
Se você não encontrar rastreamentos ou métricas na interface do usuário do Instana, siga estas etapas gerais de solução de problemas:
Verifique os pré-requisitos:
- Verifique se a versão do seu runtime do .NET é compatível (.NET5.0 ou posterior)
- Verifique se o agente do Instana está em execução e acessível
- Verifique a conectividade de rede entre seu aplicativo e o agente
Verifique as variáveis de ambiente:
- Verifique se todas as variáveis de ambiente necessárias estão definidas corretamente
- Certifique-se de que os caminhos sejam válidos e acessíveis
- Verifique se os nomes das variáveis estão escritos corretamente
Verifique a inicialização do IL-Rewriter:
- Verifique os logs do aplicativo em busca de mensagens de inicialização do IL-Rewriter
- Certifique-se de que
CORECLR_ENABLE_PROFILING,CORECLR_PROFILER_PATH, eCORECLR_PROFILERestejam configurados corretamente
Ativar diagnósticos:
- Se você usar o rastreamento que depende do reescritor de IL do Instana, defina
COMPlus_EnableDiagnosticseDOTNET_EnableDiagnosticscomo1 - Sem o diagnóstico ativado, o IL-Rewriter não consegue se conectar ao processo
- Se você usar o rastreamento que depende do reescritor de IL do Instana, defina
Verifique a configuração de rastreamento:
- Verifique se o rastreamento está ativado no arquivo do agente
configuration.yaml - Reinicie o agente e o aplicativo após as alterações na configuração
- Verifique se o rastreamento está ativado no arquivo do agente
Para obter informações detalhadas sobre cenários de solução de problemas específicos para cada plataforma e procedimentos de coleta de logs, consulte o guia de solução de problemas correspondente na seção a seguir.
Guias de solução de problemas específicos para cada plataforma
| Ambiente de Implementação | Guia de Resolução de Problemas |
|---|---|
| Funções do AWS Lambda | Solução de problemas com o rastreamento do `.NET ` no ` AWS Lambda ` |
| Azure | Solução de problemas com o rastreamento do `.NET ` no ` Azure ` |
| Contêineres do Docker | Solução de problemas com o rastreamento do `.NET ` no ` Docker ` |
| Aplicativos web hospedados no IIS | Solução de problemas no rastreamento do `.NET ` no IIS |
| Clusters do Kubernetes | Solução de problemas com o rastreamento do `.NET ` no ` Kubernetes ` |
| Standard Linux ou Alpine Linux | Solução de problemas com o rastreamento do .NET nos sites Linux ou Alpine Linux |
| Windows serviços ou processos independentes | Solução de problemas com o rastreamento do `.NET ` no ` Windows ` |
| z/OS | Solução de problemas com o rastreamento do `.NET ` no ` z/OS ` |