Afficher les données de télémétrie avec Azure Monitor et les outils tiers

Effectué

Votre application collecte des données de télémétrie et vous avez maintenant besoin d’un moyen plus complet de l’afficher. Dans cette unité, vous allez voir comment afficher les données de télémétrie dans de nombreux outils différents.

Surveiller et afficher les données de télémétrie

Un moyen courant d’afficher les données de télémétrie consiste à utiliser Prometheus et Grafana ensemble. Prometheus est un système de surveillance open source qui collecte des métriques à partir de votre application native cloud. Grafana est un outil de visualisation open source que vous utilisez pour créer des tableaux de bord pour afficher les métriques collectées par Prometheus.

Prométhée

La première étape consiste à ajouter un conteneur Prometheus et à le configurer pour collecter des données à partir de chaque microservice de votre application. Vous ajoutez ensuite la bibliothèque cliente Prometheus .NET pour collecter des métriques à partir de l’application.

Capture d’écran montrant l’application Prometheus configurée montrant l’intégrité de l’application eShopLite.

OpenTelemetry fournit un exportateur pour Prometheus. Vous pouvez ajouter cet exportateur à votre application en incluant le OpenTelemetry.Exporter.Prometheus.AspNetCore package NuGet. Ce package exporte les métriques vers Prometheus dans un format qu’il peut comprendre. Vous remplacez l’exportateur de console actuel par l’exportateur Prometheus.

Vous ajoutez les points de terminaison pour tous les microservices de votre application. Par exemple:

global:
  scrape_interval: 1s

scrape_configs:
  - job_name: 'products'
    static_configs:
      - targets: ['backend:8080']
  - job_name: 'store'
    static_configs:
      - targets: ['frontend:8080']

Grafana

Grafana est un outil de visualisation open source que vous pouvez utiliser pour créer des tableaux de bord pour afficher les métriques collectées par Prometheus. Vous pouvez configurer Grafana pour vous connecter à Prometheus et afficher les métriques dans un tableau de bord. Comme précédemment, vous ajoutez un conteneur Grafana à votre application et configurez-le pour vous connecter à Prometheus.

Capture d’écran montrant un tableau de bord ASP.NET dans Grafana.

Vous ajoutez Prometheus en tant que source de données à Grafana dans un fichier YAML :

apiVersion: 1

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

Activer le suivi distribué

OpenTelemetry prend en charge Jaeger et Zipkin. Dans ce module, vous utilisez Zipkin, qui est un système de suivi distribué open source. Il permet de collecter les données de minutage nécessaires pour résoudre les problèmes de latence dans les architectures de microservice. Il gère à la fois la collection et la recherche de ces données.

Capture d’écran montrant Zipkin montrant les dépendances de l’app Store eShopLite envoyant des demandes au service Products.

Dans votre projet de diagnostics, vous devez ajouter la prise en charge de Zipkin via le OpenTelemetry.Exporter.Zipkin package NuGet. Vous ajoutez ensuite du code à la AddObservability méthode pour exporter des données vers Zipkin.

Aller plus loin avec Application Insights

Il existe un outil qui peut combiner l’examen des métriques et l’affichage du suivi distribué, puis le fusionner avec des données à partir de journaux. Application Insights est un service APM (Application Performance Management) extensible. Vous pouvez l’utiliser pour surveiller votre application web active. Application Insights détecte automatiquement les anomalies de performances. Il intègre de puissants outils d’analyse pour vous aider à diagnostiquer les problèmes et à comprendre ce que font les utilisateurs avec votre application.

Capture d’écran d'Application Insights indiquant l’état de santé de l’application eShopLite.

Comme les outils précédents, vous devez ajouter un package NuGet à votre solution Azure.Monitor.OpenTelemetry.AspNetCore, puis introduire Azure Monitor en tant qu’exportateur dans votre projet de diagnostics.