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 exibi-los. Nesta unidade, você verá como exibir dados de telemetria em muitas ferramentas diferentes.

Monitorar e exibir dados de telemetria

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

Prometeu

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

Captura de tela que mostra o aplicativo Prometheus configurado mostrando a integridade do aplicativo eShopLite.

A OpenTelemetry fornece um exportador para Prometheus. Você pode adicionar este exportador ao seu aplicativo ao incluir o pacote NuGet OpenTelemetry.Exporter.Prometheus.AspNetCore. Esse pacote exporta métricas para o Prometheus em um formato que ele pode entender. Você substitui o atual exportador de console pelo exportador Prometheus.

Você adiciona os endpoints 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 software livre que você pode usar para criar painéis para exibir 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.

Captura de tela que mostra um painel ASP.NET no Grafana.

Adicione 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 Jaeger e Zipkin. Neste módulo, você usa o Zipkin, que é um sistema de rastreamento distribuído de software livre. Ele ajuda a coletar 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.

Captura de tela que mostra o Zipkin apresentando as dependências Store do aplicativo eShopLite enviando solicitações para o serviço Products.

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

Vá mais fundo com o Application Insights

Há uma ferramenta que pode examinar as métricas, exibir o rastreamento distribuído e, em seguida, mesclá-lo com dados dos logs. O Application Insights é um serviço extensível de Gerenciamento de Desempenho de Aplicativos (APM). Você pode usá-lo para monitorar seu aplicativo Web dinâmico. O Application Insights detecta automaticamente as 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.

Captura de tela que mostra o Application Insights mostrando a integridade do aplicativo eShopLite.

Assim como as ferramentas anteriores, você precisa adicionar um pacote NuGet à sua solução Azure.Monitor.OpenTelemetry.AspNetCoree, em seguida, introduzir o Azure Monitor como um exportador para seu projeto de diagnóstico.