Exibir telemetria com o Azure Monitor e ferramentas de terceiros

Concluído

Seu aplicativo está coletando dados de telemetria e agora você precisa de uma maneira mais abrangente de visualizá-los. Nesta unidade, você verá como visualizar dados de telemetria em muitas ferramentas diferentes.

Monitorar e visualizar dados de telemetria

Uma maneira comum de visualizar dados de telemetria é usar Prometheus e Grafana juntos. O Prometheus é um sistema de monitoramento de código aberto que coleta métricas de seu aplicativo nativo da nuvem. Grafana é uma ferramenta de visualização de código aberto que você usa para criar painéis para visualizar as métricas coletadas pelo Prometheus.

Prometheus

A primeira etapa é adicionar um contêiner Prometheus e configurá-lo para coletar dados de cada microsserviço em seu aplicativo. Em seguida, você adiciona a biblioteca de cliente Prometheus .NET para coletar métricas do aplicativo.

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

OpenTelemetry fornece um exportador para Prometheus. Você pode adicionar esse exportador ao seu aplicativo incluindo o OpenTelemetry.Exporter.Prometheus.AspNetCore pacote NuGet. Este pacote exporta métricas para o Prometheus em um formato que ele pode entender. Substitua o exportador de console atual pelo exportador Prometheus.

Você adiciona 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

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 Grafana ao seu aplicativo e o configura para se conectar ao Prometheus.

Screenshot that shows an ASP.NET dashboard in Grafana.

Você adiciona Prometheus como uma fonte de dados para Grafana em um arquivo YAML:

apiVersion: 1

datasources:
- name: Prometheus
  type: prometheus
  url: http://prometheus:9090 
  isDefault: true
  access: proxy
  editable: true

Habilitar rastreamento distribuído

OpenTelemetry tem suporte para Jaeger e 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ços. 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.

Em seu projeto de diagnóstico, você precisa adicionar suporte para Zipkin por meio do OpenTelemetry.Exporter.Zipkin pacote NuGet. Em seguida, adicione código AddObservability ao método para exportar dados para Zipkin.

Aprofunde-se com o Application Insights

Há uma ferramenta que pode combinar a visualização de métricas e a visualização de rastreamento distribuído e, em seguida, mesclá-la com dados de logs. O Application Insights é um serviço de Gestão de Desempenho de Aplicações (APM) extensível. Você pode usá-lo para monitorar seu aplicativo web ao vivo. O Application Insights deteta automaticamente anomalias de desempenho. Ele inclui poderosas ferramentas de análise para ajudá-lo 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, apresentar o Azure Monitor como um exportador para seu projeto de diagnóstico.