Que ferramentas de diagnóstico estão disponíveis em .NET Core?
Artigo
O software nem sempre se comporta como seria de esperar, mas .NET Core tem ferramentas e APIs que o ajudarão a diagnosticar estes problemas de forma rápida e eficaz.
Este artigo ajuda-o a encontrar as várias ferramentas de que necessita.
Debuggers
Os depurggers permitem-lhe interagir com o seu programa. Fazer uma pausa, executar, examinar e retomar dá-lhe uma visão do comportamento do seu código. Um depurante é uma boa escolha para diagnosticar problemas funcionais que podem ser facilmente reproduzidos.
Teste de unidades
O teste unitário é um componente fundamental da integração contínua e implantação de software de alta qualidade. Os testes de unidade são concebidos para lhe dar um aviso precoce quando quebra algo.
Instrumentação para a observabilidade
.NET suporta técnicas de instrumentação padrão da indústria utilizando métricas, troncos e vestígios distribuídos. Instrumentação é um código que é adicionado a um projeto de software para registar o que está a fazer. Estas informações podem então ser recolhidas em ficheiros, bases de dados ou na memória e analisadas para entender como um programa de software está a funcionar. Isto é frequentemente utilizado em ambientes de produção para monitorizar os problemas e diagnosticá-los. O tempo de execução .NET tem instrumentação incorporada que pode ser opcionalmente ativada e APIs que permitem adicionar instrumentação personalizada especializada para a sua aplicação.
Métricas
As métricas são medições numéricas registadas ao longo do tempo para monitorizar o desempenho da aplicação e a saúde. As métricas são frequentemente usadas para gerar alertas quando potenciais problemas são detetados. As métricas têm uma sobrecarga de desempenho muito baixa e muitos serviços configuram-nos como telemetria sempre ligado.
Registos
O registo madeireira é uma técnica em que o código é instrumentado para produzir um registo, um registo de eventos interessantes que ocorreram durante o programa em execução. Muitas vezes, um conjunto de eventos de log é configurado por padrão e a exploração madeireira mais extensa pode ser ativada a pedido para diagnosticar problemas específicos. A sobrecarga de desempenho é variável dependendo da quantidade de dados que estão a ser registados.
Vestígios distribuídos
O Rastreio Distribuído é uma forma especializada de registo que o ajuda a localizar falhas e problemas de desempenho dentro de aplicações distribuídas por várias máquinas ou processos. Esta técnica acompanha os pedidos através de uma aplicação que correlaciona o trabalho realizado por diferentes componentes de aplicação e separando-o de outros trabalhos que a aplicação pode estar a fazer para pedidos simultâneos. É possível rastrear todos os pedidos e a amostragem pode ser opcionalmente utilizada para vincular a sobrecarga de desempenho.
Despejos
Uma lixeira é um ficheiro que contém uma imagem instantânea do processo no momento da criação. Estes podem ser úteis para examinar o estado do seu pedido para fins de depuragem.
Símbolos
Os símbolos são um mapeamento entre o código-fonte e o binário produzido pelo compilador. Estes são geralmente usados por depurados .NET para resolver números de linha de origem, nomes variáveis locais e outros tipos de informação de diagnóstico.
Recolher diagnósticos em contentores
As mesmas ferramentas de diagnóstico que são utilizadas em ambientes Linux não-contentorizados também podem ser usadas para recolher diagnósticos em recipientes. São necessárias algumas alterações de utilização para garantir que as ferramentas funcionam num recipiente Docker.
.NET Ferramentas globais de diagnóstico de diagnóstico
pontos de pontonet
dotnet-counters é uma ferramenta de monitorização do desempenho para monitorização de saúde de primeiro nível e investigação de desempenho. Observa os valores de contador de desempenho publicados através da EventCounter API. Por exemplo, pode monitorizar rapidamente coisas como a utilização do CPU ou a taxa de exceções que estão a ser lançadas na sua aplicação .NET Core.
dotnet-dump
A ferramenta de despejo de dotnet é uma forma de recolher e analisar Windows e as lixeiras do núcleo de Linux sem um depurado nativo.
dotnet-gcdump
A ferramenta dotnet-gcdump é uma forma de recolher depósitos de GC (Garbage Collector) de processos ao vivo .NET.
dotnet-trace
.NET Core inclui o que é chamado de através do qual os EventPipe dados de diagnóstico são expostos. A ferramenta dotnet-trace permite-lhe consumir dados de perfis interessantes da sua aplicação que podem ajudar em cenários onde você precisa de raiz causar aplicações a correr devagar.
dotnet-stack
A ferramenta dotnet-stack permite-lhe imprimir rapidamente as pilhas geridas para todos os fios num processo de execução .NET.
dotnet-símbolo
dotnet-symbol descarrega ficheiros (símbolos, DAC/DBI, ficheiros de anfitrião, etc.) necessários para abrir uma lixeira ou minidump. Utilize esta ferramenta se precisar de símbolos e módulos para depurar um ficheiro de despejo capturado numa máquina diferente.
PerfCollect é um script de bash que você pode usar para recolher vestígios com perf e LTTng para uma análise de desempenho mais aprofundada de aplicações .NET em execução nas distribuições do Linux.
Utilize o Web App Down, o Crash Monitoring e o Ask Genie para a solução de problemas. Use essas ferramentas para monitorar a disponibilidade de aplicativos e plataformas, identificar exceções não tratadas, capturar despejos de memória e pilha de chamadas e encontrar áreas de investigação e diagnóstico.
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.