Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Monitor ASM instances with a self-managed Prometheus instance

Dernière mise à jour :Aug 11, 2026

Lorsque vous exécutez Service Mesh (ASM) avec des proxies sidecar Envoy, ces derniers génèrent des métriques de trafic détaillées. Toutefois, un backend de surveillance est nécessaire pour les collecter et les visualiser. Ce guide explique comment déployer une instance Prometheus autonome dans votre cluster ACK afin d'extraire les métriques des sidecars Envoy depuis ASM, puis visualiser les données dans Grafana.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

Étape 1 : Configurer Prometheus pour extraire les métriques Envoy

Ajoutez une tâche d'extraction à la configuration de l'opérateur Prometheus dans votre cluster ACK afin que Prometheus détecte et collecte les métriques de tous les proxies sidecar Envoy.

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom du cluster à gérer, puis sélectionnez Applications > Helm dans le volet de navigation de gauche.

  3. Sur la page Helm, localisez ack-prometheus-operator et cliquez sur Update dans la colonne Actions.

  4. Dans le panneau Update Release, repérez le champ additionalScrapeConfigs dans l'éditeur YAML et ajoutez la tâche d'extraction suivante. Cliquez sur OK pour appliquer la modification.

    Conseil : Le fichier YAML étant volumineux, appuyez sur Ctrl+F et recherchez additionalScrapeConfigs pour trouver rapidement le champ.

    Le tableau suivant décrit chaque champ de configuration :

    Paramètre Objectif
    job_name: 'envoy-stats' Attribue un nom à la tâche d'extraction pour l'identifier dans Prometheus
    metrics_path: /stats/prometheus Indique le point de terminaison des statistiques Envoy
    kubernetes_sd_configs avec role: pod Détecte automatiquement tous les pods du cluster
    regex: '.*-envoy-prom' Filtre les pods disposant d'un port Prometheus Envoy
    replacement: $1:15090 Redirige l'extraction vers le port 15090 de chaque pod
    labeldrop Supprime les étiquettes de pod Kubernetes inutiles des métriques
    Étiquettes namespace et pod_name Conserve l'espace de noms et l'identité du pod pour les requêtes de métriques
    additionalScrapeConfigs:
    # Scrape config for envoy stats
    - job_name: 'envoy-stats'
      metrics_path: /stats/prometheus
      kubernetes_sd_configs:
      - role: pod
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_container_port_name]
        action: keep
        regex: '.*-envoy-prom'
      - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
        action: replace
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:15090
        target_label: __address__
      - action: labeldrop
        regex: __meta_kubernetes_pod_label_(.+)
      - source_labels: [__meta_kubernetes_namespace]
        action: replace
        target_label: namespace
      - source_labels: [__meta_kubernetes_pod_name]
        action: replace
        target_label: pod_name

Étape 2 : Activer la collecte de métriques Prometheus dans ASM

Activez la collecte de métriques côté ASM afin que les sidecars Envoy exposent le point de terminaison des métriques. Pour obtenir des instructions, consultez la rubrique Collecter des métriques vers Managed Service for Prometheus.

Étape 3 : Générer des données de surveillance

Envoyez des requêtes aux services du plan de données afin que les proxies Envoy produisent des données de métriques. Cet exemple utilise l'application exemple Bookinfo.

  1. Déployez Bookinfo si ce n'est pas déjà fait. Pour obtenir des instructions, consultez la rubrique Prise en main.

  2. Ouvrez Productpage dans un navigateur et actualisez la page plusieurs fois pour générer du trafic.

    Monitoring data

Vérifier les résultats

Vérifier la collecte de métriques du proxy Envoy

Exécutez les commandes suivantes pour interroger le point de terminaison des statistiques Envoy sur un pod exemple. La présence de données de métriques Istio dans la sortie confirme que les proxies Envoy collectent bien les métriques. Une sortie vide indique que la collecte de métriques ne fonctionne pas.

details=$(kubectl get pod -l app=details -o jsonpath={.items..metadata.name})
kubectl exec $details -c istio-proxy -- curl -s localhost:15090/stats/prometheus | grep istio

Afficher les métriques dans Prometheus

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom du cluster à gérer, puis sélectionnez Network > Services dans le volet de navigation de gauche.

  3. Sur la page Services, cliquez sur le point de terminaison public de Prometheus dans la colonne External IP.

  4. Sur la page Prometheus, saisissez istio_requests_total dans la zone de recherche et cliquez sur Execute. Les résultats de la requête affichent les métriques de requêtes collectées depuis les proxies Envoy.

    Prometheus metrics

Afficher le tableau de bord Grafana

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom du cluster à gérer, puis sélectionnez Network > Services dans le volet de navigation de gauche.

  3. Sur la page Services, cliquez sur le point de terminaison public de Grafana dans la colonne External IP.

  4. Sur la page Grafana, sélectionnez Istio Workload Dashboard dans le coin supérieur gauche. Le tableau de bord affiche les métriques au niveau de la charge de travail, telles que les taux de requêtes, les latences et les taux d'erreur pour l'ensemble des services de votre mesh.

    Grafana Istio Workload Dashboard