Configurer et afficher les métriques du réseau d’applications Azure Kubernetes (préversion)

Important

Les fonctionnalités d’évaluation AKS sont disponibles en libre-service et font l’objet d’un abonnement. Les versions d'essai sont fournies « en l’état » et « selon disponibilité », et elles sont exclues des contrats de niveau de service et de la garantie limitée. Les versions préliminaires AKS sont, dans la mesure du possible, partiellement couvertes par le service clientèle. Par conséquent, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :

Azure Kubernetes Application Network fournit des métriques complètes pour vos charges de travail et les composants du plan de données Azure Kubernetes Application Network (ZTunnel, Istio CNI et Waypoint) via les métriques Azure Monitor. Cet article explique comment configurer et afficher ces métriques dans Azure Monitor.

Limites

Les métriques du plan de contrôle ne sont actuellement pas prises en charge. Toutefois, les métriques de plan de données sont disponibles et vous pouvez les utiliser pour surveiller l’intégrité et les performances de vos charges de travail et des composants Azure Kubernetes Application Network.

Métriques du plan de données

Les métriques du plan de service de données incluent les métriques de vos charges de travail/applications et de l’espace de noms appnet-system. Azure Kubernetes Application Network fournit actuellement uniquement la prise en charge des métriques de plan de données.

Configurer les métriques du plan de données

Options de configuration de l’espace de travail pour les métriques du plan de données

Lorsque vous activez la collecte de métriques Prometheus pour les clusters membres Azure Kubernetes Application Network, vous disposez des options suivantes pour la configuration de l’espace de travail :

  • Utilisez un espace de travail Azure Monitor existant.
  • Omettez l’ID de ressource de l’espace de travail et utilisez l’espace de travail par défaut créé pour votre groupe de ressources.
  • Créez un espace de travail Azure Monitor.

Activer la collecte des métriques de plan de données

  1. Activez la collecte de métriques Prometheus sur votre cluster membre Azure Kubernetes Application Network en utilisant la commande az aks update avec le paramètre --azure-monitor-workspace-resource-id défini à l'ID de votre espace de travail existant. Si les métriques Azure Monitor sont déjà activées sur votre cluster membre, vous pouvez passer à l’étape suivante.

    az aks update --enable-azure-monitor-metrics \
      --name $CLUSTER_NAME \
      --resource-group $AKS_RG \
      --azure-monitor-workspace-resource-id $WORKSPACE_ID
    
  2. Créez et appliquez le ConfigMap suivant nommé dans l’espace de noms kube-system à l’aide de la commande kubectl apply. Ce ConfigMap permet d'extraire des données de Ztunnel, d'Istio CNI, de waypoint et de votre application ou vos charges de travail.

    kubectl apply -f - <<EOF
    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: ama-metrics-settings-configmap
      namespace: kube-system
    data:
      schema-version: v1
      config-version: ver1
      prometheus-collector-settings: |-
        cluster_alias = ""
        https_config = true
      default-scrape-settings-enabled: |-
        ztunnel = true
        istio-cni = true
      pod-annotation-based-scraping: |-
        podannotationnamespaceregex = ".*"
      default-targets-metrics-keep-list: |-
        ztunnel = ""
        istio-cni = ""
        minimalingestionprofile = true
      default-targets-scrape-interval-settings: |-
        ztunnel = "30s"
        istio-cni = "30s"
        podannotations = "30s"
      debug-mode: |-
        enabled = false
    EOF
    
  3. Ajoutez des annotations aux pods des applications que vous souhaitez collecter.

    • prometheus.io/scrape: "true" est nécessaire pour indiquer que le pod doit être inspecté.
    • prometheus.io/path est éventuellement utilisé pour indiquer le chemin d’accès où les métriques sont hébergées. S’il est omis, il est défini par défaut sur /metrics.
    • prometheus.io/port est éventuellement utilisé pour indiquer le port où les métriques sont hébergées. S’il est omis, Prometheus utilise les ports déclarés du conteneur à partir de la spécification du pod. Pour les conteneurs sans ports déclarés, Prometheus crée une cible sans port (IP uniquement), qui nécessite une configuration appropriée de réétiquetage pour fonctionner avec les annotations de port. Il est recommandé de spécifier explicitement le port afin de garantir une collecte fiable.

    L’exemple suivant définit des annotations pour un pod qui héberge des métriques à l’adresse <pod IP>:15020/metrics

    prometheus.io/scrape: "true"
    prometheus.io/port: "15020"
    prometheus.io/path: "/metrics"
    

    Le replicaSet des métriques AMA peut prendre quelques minutes pour charger cette configuration.

Afficher les métriques du plan de données

  1. Accédez à votre espace de travail Azure Monitor dans le portail Azure pour interroger les métriques à l’aide de PromQL.

  2. Générez du trafic, puis sélectionnez des requêtes dans les métriques exposées pour afficher les métriques. Par exemple, vous pouvez exécuter la requête suivante pour afficher le nombre total de requêtes gérées par un point de route :

    # ztunnel
    istio_xds_connection_terminations_total
    
    # waypoint
    istio_requests_total
    
    # istio-cni
    istio_cni_install_ready
    

    La capture d’écran suivante montre les résultats des exemples de requêtes :

    Capture d’écran des résultats des requêtes pour afficher le nombre total de requêtes gérées par un point de route.

Liste des métriques exposées

Composant Métriques exposées
ZTunnel istio_build
istio_xds_connection_terminations_total
istio_xds_message_total
istio_xds_message_bytes_total
istio_tcp_connections_opened_total
istio_tcp_connections_closed_total
istio_tcp_received_bytes_total
istio_tcp_sent_bytes_total
istio_on_demand_dns
istio_dns_requests_total
istio_dns_upstream_requests
istio_dns_upstream_failures
istio_dns_upstream_request_duration_seconds
workload_manager_active_proxy_count
workload_manager_pending_proxy_count
workload_manager_proxies_started_total
workload_manager_proxies_stopped_total
Istio CNI istio_cni_install_ready
istio_cni_installs_total
nodeagent_reconcile_events_total
ztunnel_connected
Waypoint istio_build
istio_request_bytes_bucket
istio_request_bytes_count
istio_request_bytes_sum
istio_request_duration_milliseconds_bucket
istio_request_duration_milliseconds_count
istio_request_duration_milliseconds_sum
istio_requests_total
istio_response_bytes_bucket
istio_response_bytes_count
istio_response_bytes_sum

Accéder directement aux métriques depuis les proxies waypoint

Outre les métriques de demande/réponse Istio, les proxys waypoint émettent également des métriques Envoy.

  • Pour trouver une liste complète des métriques émises par waypoint, vous pouvez transférer le port vers un proxy waypoint dans votre espace de noms et répertorier les métriques à l’aide des commandes suivantes :

    # Port-forward to waypoint proxy
    kubectl port-forward -n <namespace> deployment/waypoint 15020:15020 &
    
    # List metrics exposed by waypoint
    curl http://localhost:15020/stats/prometheus | grep -v '^#' | grep -v '^$' | awk -F'{' '{print $1}' | sort -u
    

Visualiser les métriques avec Grafana dans le portail Azure

  1. Importez les tableaux de bord de la communauté Istio.

  2. Générez le trafic pour votre cluster membre, puis accédez à votre espace de travail Azure Monitor dans le portail Azure.

  3. Sélectionnez Tableaux de bord de surveillance>avec Grafana.

    Les captures d’écran suivantes montrent des exemples d’importation du tableau de bord Istio Ztunnel :

    Capture d’écran montrant l’option Importer le tableau de bord dans l’espace de travail Azure Monitor dans le portail Azure.

    Capture d’écran montrant les options de révision pour l’importation du tableau de bord Ztunnel dans le portail Azure.

    Capture d’écran montrant les visualisations de tableau de bord Ztunnel dans un tableau de bord Grafana dans le portail Azure.

Si vous souhaitez configurer Azure Managed Grafana au lieu de Tableaux de bord avec Grafana, consultez Créer un espace de travail Azure Managed Grafana à l’aide d’Azure CLI.

Pour plus d’informations sur l’observabilité et la surveillance du réseau d’applications Azure Kubernetes, consultez les articles suivants :