Usando o painel do .NET Aspire
Depois de gravar os dados de telemetria, você precisa de uma maneira de examiná-los. Com o .NET Aspire, o painel fornece ferramentas avançadas para investigar telemetria e diagnosticar problemas.
Imagine que trabalha para um retalhista de equipamento exterior. Você está usando o OpenTelemetry em seu aplicativo nativo da nuvem do .NET Aspire . Agora você deseja examinar os dados que a telemetria emite para decidir se pode usá-los para melhorar o desempenho.
Nesta unidade, você verá como o painel do .NET Aspire exibe dados de telemetria.
Telemetria no painel do .NET Aspire
Quando você inicia um aplicativo criado com o .NET Aspire em seu computador de desenvolvimento e os contêineres que executam cada integração, o .NET inicia o painel do .NET Aspire . Esta interface web tem cinco seções, quatro das quais exibem telemetria:
- Recursos: lista os contêineres, projetos e executáveis que compõem todo o seu aplicativo nativo da nuvem. Use os links na coluna Pontos de extremidade para se conectar a cada microsserviço.
- Console: Exibe o texto enviado para a saída padrão da integração especificada.
- Logs estruturados: Exibe informações enviadas para registradores OpenTelemetry .
- Rastreamentos: exibe um rastreamento para cada solicitação recebida por qualquer microsserviço no aplicativo.
- Métricas: Exibe gráficos configuráveis de domínio de tempo que mostram como as métricas escolhidas variam.
Logs no painel
Os eventos registrados descrevem o que acontece quando seu aplicativo é iniciado e executado. Você pode ver dois tipos de informações registradas no painel: logs de console e logs estruturados.
Logs do console
Os logs do console exibem o texto que seu aplicativo enviou para a saída padrão. Um programa de linha de comando exibiria tal texto como linhas no console, mas os microsserviços e serviços de suporte não têm lugar intrínseco para exibir a saída padrão. O .NET Aspire ajuda fornecendo a página de logs do Console no painel.
Ao abrir a página, você deve primeiro selecionar uma integração de origem, como um dos seus microsserviços. A ferramenta exibe toda a saída padrão dessa fonte na janela principal com alguma formatação. Por exemplo, os eventos de informação são mostrados em verde, enquanto as falhas são mostradas em vermelho.
Os logs do console são simplesmente linhas de texto. São fáceis de criar e emitir por aplicações, mas são difíceis de ler para humanos e difíceis de processar para fins de análise porque carecem de estrutura.
Registos estruturados
Em vez de texto simples, os logs estruturados preservam as mensagens registradas com seus parâmetros de modelo e mensagem. Essa estrutura facilita a filtragem de eventos que são irrelevantes para que você possa detalhar para solucionar um problema específico. Em um ambiente de produção, os logs podem ser persistentes, indexados e, em seguida, consultados como um banco de dados. Dessa forma, você pode executar análises avançadas sobre os dados que eles contêm.
Nota
Os logs estruturados também são frequentemente chamados de logs semânticos.
Em seu código, envie um evento para os logs estruturados usando um objeto OpenTelemetry ILogger
:
logger.Info("{shopitem} added to basket by {user}", "Ski goggles", "Kenny");
No painel do .NET, a página Logs estruturados mostra eventos de todos os recursos do seu aplicativo. Para fazer uma busca detalhada, selecione o recurso que você está solucionando problemas e use as caixas Filtrar e Nível para exibir apenas eventos relevantes.
Rastreamentos distribuídos no painel
Um rastreamento é um registro que descreve como uma solicitação foi processada e retornada ao chamador. Cada rastreamento pode envolver chamadas para várias integrações em seu aplicativo. Por exemplo, quando um usuário solicita a página da Web do catálogo de produtos, o microsserviço da interface do usuário da Web pode receber a solicitação, que pode chamar o microsserviço de autenticação, o microsserviço de catálogo e o cache Redis, antes de retornar uma página da Web para o usuário.
Cada rastreamento é composto por extensão, como a chamada para o microsserviço de catálogo. O sistema registra cada span com seu tempo e informações pai, para que você possa ver qual integração responde rapidamente e qual causa atrasos. Mais detalhes estão disponíveis para cada vão.
Semelhante aos logs estruturados, você pode selecionar a origem e aplicar filtros para detalhar e localizar rastreamentos para o problema específico que está interessado em diagnosticar.
Métricas no painel
As métricas são valores que variam ao longo do tempo, registrados por uma integração do seu aplicativo. Por exemplo, as métricas podem registrar a duração de uma solicitação e resposta ou uma contagem das conexões ativas com seu microsserviço de catálogo. Algumas métricas são incorporadas ao .NET, algumas vêm com as bibliotecas do SDK do OpenTelemetry e os desenvolvedores podem adicionar métricas personalizadas do OpenTelemetry que são exclusivas para sua integração.
O painel do .NET Aspire inclui a seção Métricas, que você pode usar para investigar e exibir como as métricas variam ao longo do tempo.
Por exemplo, a métrica http.server.ative_requests exibe o número de solicitações que estão sendo processadas a qualquer momento:
A métrica http.server.request.duration exibe o quão responsivo o aplicativo é a qualquer momento:
Em cada gráfico, você pode especificar filtros para direcionar o gráfico. Por exemplo, este gráfico mostra a métrica de duração da solicitação para solicitações para a rota da página inicial: