Exibir a telemetria com o Azure Monitor e ferramentas de terceiros

Concluído

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.

Screenshot that shows the configured Prometheus app showing the health of the eShopLite app.

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.

Screenshot that shows an ASP.NET dashboard in Grafana.

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.

Screenshot that shows Zipkin showing the dependencies of the eShopLite app Store sending requests to the Products service.

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.

Screenshot that shows Application Insights showing the health of the eShopLite app.

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.