Exibir telemetria com o Azure Monitor e ferramentas de terceiros
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.
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.
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.
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.
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.