Exportation des métriques - AWS App Mesh

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exportation des métriques

Envoy émet de nombreuses statistiques à la fois sur son propre fonctionnement et sur diverses dimensions du trafic entrant et sortant. Pour en savoir plus sur les statistiques d'Envoy, consultez la section Statistiques de la documentation Envoy. Ces mesures sont disponibles via le/stats point de terminaison du port d'administration du proxy, qui est généralement9901.

Lestat préfixe sera différent selon que vous utilisez un ou plusieurs écouteurs. Vous trouverez ci-dessous quelques exemples illustrant les différences.

Avertissement

Si vous mettez à jour votre écouteur unique vers la fonctionnalité d'écoute multiple, vous risquez de subir un changement radical en raison du préfixe statistique mis à jour illustré dans le tableau suivant.

Nous vous suggérons d'utiliser Envoy Image1.22.2.1-prod ou une version ultérieure. Cela vous permet de voir des noms de métriques similaires dans votre point de terminaison Prometheus.

Écouteur unique (SL) /Statistiques existantes avec préfixe d'écouteur « ingress » Auditeurs multiples (ML) /Nouvelles statistiques avec « entrée ». <protocol>. <port>Préfixe « écouteur »

http.*ingress*.rds.rds_ingress_http_5555.version_text

http.*ingress.http.5555*.rds.rds_ingress_http_5555.version_text

http.*ingress.http.6666*.rds.rds_ingress_http_6666.version_text

listener.0.0.0.0_15000.http.*ingress*.downstream_rq_2xx

listener.0.0.0.0_15000.http.*ingress.http.5555*.downstream_rq_2xx

listener.0.0.0.0_15000.http.*ingress.http.6666*.downstream_rq_2xx

http.*ingress*.downstream_cx_length_ms

http.*ingress.http.5555*.downstream_cx_length_ms

http.*ingress.http.6666*.downstream_cx_length_ms

Pour plus d'informations sur le point de terminaison des statistiques, consultez la section Point de terminaison des statistiques dans la documentation Envoy. Pour plus d'informations sur l'interface d'administration, consultezActiver l'interface d'administration du proxy Envoy.

Prometheus pour App Mesh avec Amazon EKS

Prometheus est une boîte à outils de surveillance et d'alerte open source. L'une de ses capacités est de spécifier un format d'émission de métriques pouvant être consommées par d'autres systèmes. Pour plus d'informations sur Prometheus, consultez Présentation dans la documentation Prometheus. Envoy peut émettre ses métriques via son point de terminaison de statistiques en transmettant le paramètre/stats?format=prometheus.

Pour les clients qui utilisent Envoy image build v1.22.2.1-prod, deux dimensions supplémentaires indiquent les statistiques spécifiques au récepteur d'entrée :

  • appmesh.listener_protocol

  • appmesh.listener_port

Vous trouverez ci-dessous une comparaison entre les statistiques existantes de Prometheus et les nouvelles statistiques.

  • Statistiques existantes avec le préfixe d'écouteur « ingress »

    envoy_http_downstream_rq_xx{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_node="foodteller-vn",envoy_response_code_class="2",envoy_http_conn_manager_prefix="ingress"} 931433
  • Nouvelles statistiques avec « ingress ». <protocol>. <port>"+ Appmesh Envoy Image v1.22.2.1-prod ou version ultérieure

    envoy_http_downstream_rq_xx{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_node="foodteller-vn",envoy_response_code_class="2",appmesh_listener_protocol="http",appmesh_listener_port="5555",envoy_http_conn_manager_prefix="ingress"} 20
  • Nouvelles statistiques avec « ingress ». <protocol>. <port>« + Envoy Imagebuild personnalisé

    envoy_http_http_5555_downstream_rq_xx{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_node="foodteller-vn",envoy_response_code_class="2",envoy_http_conn_manager_prefix="ingress"} 15983

Pour plusieurs auditeurs, le clustercds_ingress_<mesh name>_<virtual gateway name>_self_redirect_<ingress_listener_port>_<protocol>_<port> spécial sera spécifique à l'auditeur.

  • Statistiques existantes avec le préfixe d'écouteur « ingress »

    envoy_cluster_assignment_stale{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_gateway="tellergateway-vg",Mesh="multiple-listeners-mesh",VirtualGateway="tellergateway-vg",envoy_cluster_name="cds_ingress_multiple-listeners-mesh_tellergateway-vg_self_redirect_http_15001"} 0
  • Nouvelles statistiques avec « ingress ». <protocol>. <port>»

    envoy_cluster_assignment_stale{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_gateway="tellergateway-vg",envoy_cluster_name="cds_ingress_multiple-listeners-mesh_tellergateway-vg_self_redirect_1111_http_15001"} 0 envoy_cluster_assignment_stale{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_gateway="tellergateway-vg",envoy_cluster_name="cds_ingress_multiple-listeners-mesh_tellergateway-vg_self_redirect_2222_http_15001"} 0

Installation de Prometheus

  1. Ajoutez le référentiel EKS à Helm :

    helm repo add eks https://aws.github.io/eks-charts
  2. Installation d'App Mesh Prometheus

    helm upgrade -i appmesh-prometheus eks/appmesh-prometheus \ --namespace appmesh-system

Exemple Prometheus

Voici un exemple de création d'un stockage persistantPersistentVolumeClaim pour Prometheus.

helm upgrade -i appmesh-prometheus eks/appmesh-prometheus \ --namespace appmesh-system \ --set retention=12h \ --set persistentVolumeClaim.claimName=prometheus

Procédure pas à pas pour utiliser Prometheus

Pour en savoir plus sur Prometheus et Prometheus avec Amazon EKS

CloudWatch pour App Mesh

Transmission de statistiques Envoy à CloudWatch partir d'Amazon EKS

Vous pouvez installer l' CloudWatch agent sur votre cluster et le configurer pour collecter un sous-ensemble de mesures à partir de vos proxys. Si vous ne possédez pas encore de cluster Amazon EKS, vous pouvez en créer un en suivant les étapes décrites dans Walkthrough : App Mesh with Amazon EKS activé GitHub. Vous pouvez installer un exemple d'application sur le cluster en suivant la même procédure pas à pas.

Pour définir les autorisations IAM appropriées pour votre cluster et installer l'agent, suivez les étapes décrites dans Installer l' CloudWatch agent avec Prometheus Metrics Collection. L'installation par défaut contient une configuration Prometheus Scrape qui extrait un sous-ensemble utile de statistiques Envoy. Pour de plus amples informations, consultez Métriques Prometheus pour App Mesh.

Pour créer un tableau de CloudWatch bord personnalisé App Mesh configuré pour afficher les mesures collectées par l'agent, suivez les étapes du didacticiel Visualisation de vos métriques Prometheus. Vos graphiques commenceront à être remplis avec les mesures correspondantes au fur et à mesure que le trafic entre dans l'application App Mesh.

Filtrage des métriques pour CloudWatch

L'extension App Mesh Metrics fournit un sous-ensemble de mesures utiles qui vous donnent un aperçu du comportement des ressources que vous définissez dans votre maillage. Étant donné que l' CloudWatchagent prend en charge l'extraction des métriques Prometheus, vous pouvez fournir une configuration de récupération pour sélectionner les métriques que vous souhaitez extraire d'Envoy et vers lesquelles vous souhaitez les envoyer CloudWatch.

Vous trouverez un exemple de capture de métriques à l'aide de Prometheus dans notre procédure pas à pas de l'extension Metrics.

CloudWatch Exemple

Vous trouverez un exemple de configuration CloudWatch dans notre référentielAWS d'échantillons.

Procédures pas à pas pour l'utilisation CloudWatch

Extension Metrics pour App Mesh

Envoy génère des centaines de mesures réparties en plusieurs dimensions différentes. Les statistiques ne sont pas simples dans la mesure où elles se rapportent à App Mesh. Dans le cas des services virtuels, il n'existe aucun mécanisme permettant de savoir avec certitude quel service virtuel communique avec un nœud virtuel ou une passerelle virtuelle donné.

L'extension App Mesh Metrics améliore les proxys Envoy exécutés dans votre maillage. Cette amélioration permet aux proxys d'émettre des mesures supplémentaires qui tiennent compte des ressources que vous définissez. Ce petit sous-ensemble de mesures supplémentaires vous permettra de mieux comprendre le comportement des ressources que vous avez définies dans App Mesh.

Pour activer l'extension App Mesh Metrics, définissez la variableAPPMESH_METRIC_EXTENSION_VERSION d'environnement sur1.

APPMESH_METRIC_EXTENSION_VERSION=1

Pour plus d'informations sur les variables de configuration Envoy, consultezVariables de configuration Envoy.

Métriques liées au trafic entrant

  • ActiveConnectionCount

    • envoy.appmesh.ActiveConnectionCount— Nombre de connexions TCP actives.

    • Dimensions : maille VirtualNode, VirtualGateway

  • NewConnectionCount

    • envoy.appmesh.NewConnectionCount— Nombre total de connexions TCP.

    • Dimensions : maille VirtualNode, VirtualGateway

  • ProcessedBytes

    • envoy.appmesh.ProcessedBytes— Nombre total d'octets TCP envoyés et reçus de clients en aval.

    • Dimensions : maille VirtualNode, VirtualGateway

  • RequestCount

    • envoy.appmesh.RequestCount— Le nombre de requêtes HTTP traitées.

    • Dimensions : maille VirtualNode, VirtualGateway

  • GrpcRequestCount

    • envoy.appmesh.GrpcRequestCount— Le nombre de demandes GPRC traitées.

    • Dimensions : maille VirtualNode, VirtualGateway

Métriques relatives au trafic sortant

Vous verrez apparaître différentes dimensions sur vos mesures sortantes selon qu'elles proviennent d'un nœud virtuel ou d'une passerelle virtuelle.

  • TargetProcessedBytes

    • envoy.appmesh.TargetProcessedBytes— Nombre total d'octets TCP envoyés et reçus de cibles en amont d'Envoy.

    • Dimensions :

      • Dimensions des nœuds virtuels : maillage VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensions de la passerelle virtuelle : maillage VirtualGateway, TargetVirtualService, TargetVirtualNode

  • HTTPCode_Target_2XX_Count

    • envoy.appmesh.HTTPCode_Target_2XX_Count— Nombre de requêtes HTTP adressées à une cible en amont d'Envoy qui ont donné lieu à une réponse HTTP 2xx.

    • Dimensions :

      • Dimensions des nœuds virtuels : maillage VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensions de la passerelle virtuelle : maillage VirtualGateway, TargetVirtualService, TargetVirtualNode

  • HTTPCode_Target_3XX_Count

    • envoy.appmesh.HTTPCode_Target_3XX_Count— Nombre de requêtes HTTP adressées à une cible en amont d'Envoy qui ont donné lieu à une réponse HTTP 3xx.

    • Dimensions :

      • Dimensions des nœuds virtuels : maillage VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensions de la passerelle virtuelle : maillage VirtualGateway, TargetVirtualService, TargetVirtualNode

  • HTTPCode_Target_4XX_Count

    • envoy.appmesh.HTTPCode_Target_4XX_Count— Nombre de requêtes HTTP adressées à une cible en amont d'Envoy qui ont donné lieu à une réponse HTTP 4xx.

    • Dimensions :

      • Dimensions des nœuds virtuels : maillage VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensions de la passerelle virtuelle : maillage VirtualGateway, TargetVirtualService, TargetVirtualNode

  • HTTPCode_Target_5XX_Count

    • envoy.appmesh.HTTPCode_Target_5XX_Count— Nombre de requêtes HTTP adressées à une cible en amont d'Envoy qui ont donné lieu à une réponse HTTP 5xx.

    • Dimensions :

      • Dimensions des nœuds virtuels : maillage VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensions de la passerelle virtuelle : maillage VirtualGateway, TargetVirtualService, TargetVirtualNode

  • RequestCountPerTarget

    • envoy.appmesh.RequestCountPerTarget— Le nombre de demandes envoyées à une cible en amont d'Envoy.

    • Dimensions :

      • Dimensions des nœuds virtuels : maillage VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensions de la passerelle virtuelle : maillage VirtualGateway, TargetVirtualService, TargetVirtualNode

  • TargetResponseTime

    • envoy.appmesh.TargetResponseTime— Le temps qui s'écoule entre le moment où une demande est adressée à une cible en amont d'Envoy et la réception de la réponse complète.

    • Dimensions :

      • Dimensions des nœuds virtuels : maillage VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensions de la passerelle virtuelle : maillage VirtualGateway, TargetVirtualService, TargetVirtualNode

Datadog pour App Mesh

Datadog est une application de surveillance et de sécurité destinée à la surveillance, aux mesures et à la journalisation de bout en bout des applications cloud. Datadog rend votre infrastructure, vos applications et les applications tierces totalement observables.

Installation de Datadog

En savoir plus sur Datadog