Exibir a telemetria com o Azure Monitor e ferramentas de terceiros
Seu aplicativo está coletando dados telemétricos e agora você precisa de uma maneira mais abrangente de exibi-los. Nesta unidade, você verá como exibir os dados telemétricos em várias ferramentas diferentes.
Monitorar e exibir dados de telemetria
Uma maneira comum de exibir dados telemétricos é usar o Prometheus e o Grafana juntos. O Prometheus é um sistema de monitoramento de código aberto que coleta métricas do seu aplicativo nativo da nuvem. O Grafana é uma ferramenta de visualização de código aberto que você usa para criar painéis para exibição das métricas coletadas pelo Prometheus.
Prometheus
A primeira etapa é adicionar um contêiner do Prometheus e configurá-lo para coletar os dados de cada microsserviço do seu aplicativo. Em seguida, adicione a biblioteca de clientes do Prometheus .NET para coletar as métricas do aplicativo.
A OpenTelemetry fornece um exportador para o Prometheus. Você pode adicionar esse exportador ao seu aplicativo incluindo o pacote OpenTelemetry.Exporter.Prometheus.AspNetCore
NuGet. Esse pacote exporta métricas para o Prometheus em um formato que ele possa entender. Você substitui o exportador do console atual pelo exportador do Prometheus.
Adicione os pontos de extremidade para todos os microsserviços em seu aplicativo. Por exemplo:
global:
scrape_interval: 1s
scrape_configs:
- job_name: 'products'
static_configs:
- targets: ['backend:8080']
- job_name: 'store'
static_configs:
- targets: ['frontend:8080']
Grafana
O Grafana é uma ferramenta de visualização de código aberto que você pode usar para criar painéis para visualizar as métricas coletadas pelo Prometheus. Você pode configurar o Grafana para se conectar ao Prometheus e exibir as métricas em um painel. Como antes, você adiciona um contêiner do Grafana ao seu aplicativo e o configura para se conectar ao Prometheus.
Você adiciona o Prometheus como uma fonte de dados ao Grafana em um arquivo YAML:
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus:9090
isDefault: true
access: proxy
editable: true
Habilitar o rastreamento distribuído
O OpenTelemetry tem suporte para o Jaeger e o Zipkin. Neste módulo, você usa o Zipkin, que é um sistema de rastreamento distribuído de código aberto. Ele ajuda a reunir os dados de tempo necessários para solucionar problemas de latência em arquiteturas de microsserviço. Ele gerencia a coleta e a pesquisa desses dados.
No seu projeto de diagnóstico, você precisa adicionar suporte ao Zipkin por meio do pacote OpenTelemetry.Exporter.Zipkin
NuGet. Em seguida, você adicionará código ao método AddObservability
para exportar dados para o Zipkin.
Aprofunde-se com o Application Insights
Há uma ferramenta que pode combinar a análise de métricas e a visualização do rastreamento distribuído e, em seguida, mesclá-la com dados de logs. O Application Insights é um serviço do APM (Gerenciamento de Desempenho de Aplicativo) extensível. Você pode usá-la para monitorar seu aplicativo Web em tempo real. O Application Insights detecta automaticamente anomalias de desempenho. Ele inclui ferramentas de análise avançadas para ajudar você a diagnosticar problemas e entender o que os usuários realmente fazem com seu aplicativo.
Como as ferramentas anteriores, você precisa adicionar um pacote NuGet à sua solução Azure.Monitor.OpenTelemetry.AspNetCore
e, em seguida, introduzir o Azure Monitor como um exportador para seu projeto de diagnóstico.