Une fois la collecte des métriques Prometheus activée dans Alibaba Cloud Service Mesh (ASM), Envoy génère des métriques de surveillance par défaut. ASM prend en charge les métriques personnalisées pour produire sélectivement des données de surveillance au niveau du maillage, du namespace ou de la charge de travail. Cette rubrique explique comment personnaliser les métriques de surveillance dans Alibaba Cloud Service Mesh (ASM).
Prérequis
Le cluster est ajouté à l'instance ASM. Pour plus d'informations, consultez la section Ajouter un cluster à une instance ASM.
Contexte
Istio génère des métriques de surveillance par défaut. Chaque métrique inclut des tags. Voici la liste des métriques générées par Istio :
-
Pour le trafic HTTP, HTTP/2 et gRPC, Istio génère les métriques suivantes :
Request Count (istio_requests_total): This is a COUNTER incremented for every request handled by an Istio proxy. Request Duration (istio_request_duration_milliseconds): This is a DISTRIBUTION which measures the duration of requests. Request Size (istio_request_bytes): This is a DISTRIBUTION which measures HTTP request body sizes. Response Size (istio_response_bytes): This is a DISTRIBUTION which measures HTTP response body sizes. gRPC Request Message Count (istio_request_messages_total): This is a COUNTER incremented for every gRPC message sent from a client. gRPC Response Message Count (istio_response_messages_total): This is a COUNTER incremented for every gRPC message sent from a server. -
Pour le trafic TCP, Istio génère les métriques suivantes :
Tcp Bytes Sent (istio_tcp_sent_bytes_total): This is a COUNTER which measures the size of total bytes sent during response in case of a TCP connection. Tcp Bytes Received (istio_tcp_received_bytes_total): This is a COUNTER which measures the size of total bytes received during request in case of a TCP connection. Tcp Connections Opened (istio_tcp_connections_opened_total): This is a COUNTER incremented for every opened connection. Tcp Connections Closed (istio_tcp_connections_closed_total): This is a COUNTER incremented for every closed connection.
Chaque métrique comprend des tags. La liste suivante présente les tags inclus par défaut avec chaque métrique Istio :
DefaultStatTags=["reporter","source_namespace","source_workload","source_workload_namespace","source_principal","source_app","source_version","source_app","source_version","source_cluster","destination_namespace","destination_principal","destination_app","destination_version","destination_service","destination_service_name","destination_service_namespace","destination_port","destination_cluster","request_protocol","request_operation","response_flags","grpc_response_status","connection_security_policy","source_canonical_service","destination_canonical_service","source_canonical_revision","destination_canonical_revision"]
Description des tags
|
Tag |
Description |
|
reporter |
L'émetteur de la requête. La valeur du tag varie selon l'émetteur :
|
|
source_workload |
Le nom de la charge de travail source. Si aucune valeur n'est collectée, la valeur du tag est |
|
source_workload_namespace |
Le namespace de la charge de travail source. Si aucune valeur n'est collectée, la valeur du tag est |
|
source_principal |
L'identité principale homologue de la source du trafic. Cette valeur de tag est disponible uniquement si la vérification de l'identité homologue est configurée. |
|
source_app |
Identifie l'application source en fonction du libellé d'application de la charge de travail source. Si aucune valeur n'est collectée, la valeur du tag est |
|
source_version |
La version de la charge de travail source. Si aucune valeur n'est collectée, la valeur du tag est |
|
source_cluster |
Le cluster de la charge de travail source. |
|
destination_namespace |
Le namespace de la charge de travail de destination. Si aucune valeur n'est collectée, la valeur du tag est |
|
destination_workload |
Le nom de la charge de travail de destination. Si aucune valeur n'est collectée, la valeur du tag est |
|
destination_workload_namespace |
Le namespace de la charge de travail de destination. Si aucune valeur n'est collectée, la valeur du tag est |
|
destination_principal |
L'identité principale homologue de la destination de la communication. Cette valeur de tag est disponible uniquement si la vérification de l'identité homologue est configurée. |
|
destination_app |
Identifie l'application de destination en fonction du libellé d'application de la charge de travail de destination. Si aucune valeur n'est collectée, la valeur du tag est |
|
destination_version |
La version de la charge de travail de destination. Si aucune valeur n'est collectée, la valeur du tag est |
|
destination_service |
L'hôte du service de destination qui traite les requêtes entrantes. |
|
destination_service_name |
Le nom du service de destination. |
|
destination_service_namespace |
Le namespace du service de destination. |
|
destination_port |
Le port de destination. |
|
destination_cluster |
Le cluster de la charge de travail de destination. |
|
request_protocol |
Le protocole de la requête. |
|
request_operation |
L'opération de la requête. |
|
response_flags |
Détails supplémentaires concernant la réponse ou la connexion depuis le proxy. |
|
grpc_response_status |
Le statut de retour gRPC. |
|
connection_security_policy |
La politique d'authentification pour le service demandé. |
Procédure
Version de l'instance ASM antérieure à 1.15.3.65
-
Facultatif : Activez la surveillance Prometheus.
RemarqueSi vous avez déjà activé la surveillance Prometheus, ignorez cette étape.
Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez .
Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez .
Sur la page Basic Information, cliquez sur Settings dans le coin supérieur droit.
Dans le panneau Settings Update, sélectionnez Enable Prometheus Metric Collection, choisissez une méthode d'activation selon vos besoins, puis cliquez sur OK.
-
Personnalisez les métriques.
Dans le volet de navigation de gauche de la page Mesh Management, choisissez , puis cliquez sur Create.
-
Sur la page Create, configurez les paramètres, puis cliquez sur Create.
Élément de configuration
Description
Match Label
Définissez Name sur le nom du libellé et Value sur le nom de l'application. ASM fait correspondre l'application en fonction de cette configuration. Les métriques personnalisées s'appliquent uniquement à cette application.
inboundSidecar
Cliquez sur inboundSidecar, puis sur Add Metrics pour configurer des tags personnalisés pour le trafic entrant.
-
Metric Name : Laissez vide pour appliquer à toutes les métriques.
-
Metric Dimension : Cliquez sur Add Dimension pour configurer le Tag et l'Expression.
-
Tags_to_remove : Spécifiez les tags à supprimer des dimensions de métrique.
outboundSidecar
Cliquez sur outboundSidecar, puis sur Add Metrics pour configurer des tags personnalisés pour le trafic sortant.
-
Metric Name : Laissez vide pour appliquer à toutes les métriques.
-
Metric Dimension : Cliquez sur Add Dimension pour configurer le Tag et l'Expression.
-
Tags_to_remove : Spécifiez les tags à supprimer des dimensions de métrique.
gateway
Cliquez sur gateway, puis sur Add Metrics pour configurer des tags personnalisés pour la passerelle.
-
Metric Name : Laissez vide pour appliquer à toutes les métriques.
-
Metric Dimension : Cliquez sur Add Dimension pour configurer le Tag et l'Expression.
-
Tags_to_remove : Spécifiez les tags à supprimer des dimensions de métrique.
RemarqueSi vous configurez uniquement inboundSidecar sans configurer outboundSidecar ni gateway, les tags personnalisés s'appliquent uniquement au trafic entrant. Le trafic sortant et les passerelles continuent d'utiliser la méthode de génération de métriques par défaut.
-
Version de l'instance ASM 1.15.3.65 ou ultérieure mais antérieure à 1.17.2.35
ASM a mis à niveau la page Customized Metrics d'origine vers la nouvelle page Monitoring metrics, offrant une interface utilisateur plus intuitive pour améliorer l'efficacité de votre configuration. Cette fonctionnalité nécessite une version d'instance ASM v1.15.3.65-g97cc18dd-aliyun ou ultérieure. Pour plus d'informations sur la mise à niveau de votre instance, consultez la section Mettre à niveau une instance ASM.
Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez .
Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez .
-
Sur la page Monitoring metrics, cliquez sur l'onglet Metric setting et configurez les métriques Global ou custom selon vos besoins.
-
Configurer les métriques globales
ASM fournit plusieurs métriques globales par défaut, toutes activées par défaut. Vous pouvez activer ou désactiver des métriques spécifiques ou modifier leurs dimensions selon vos besoins. Pour plus d'informations sur les métriques, consultez la section Descriptions des métriques.
Action
Description
Activer ou désactiver les métriques globales
-
Activer les métriques globales : Cliquez sur l'onglet Global, à droite de la métrique cible, sélectionnez Client-side metrics ou Server-side metrics dans la colonne Enabled, puis cliquez sur preserve.
-
Désactiver les métriques globales : Cliquez sur l'onglet Global, à droite de la métrique cible, décochez la case Client-side metrics ou Server-side metrics dans la colonne Enabled, puis cliquez sur preserve.
Modifier les dimensions des métriques
-
Cliquez sur l'onglet Global. À droite de la métrique cible, cliquez sur CLIENT-side Metric ou SERVER-side Metric, puis sur Edit dimension.
-
Dans la boîte de dialogue Customize CLIENT dimension configuration, sélectionnez les dimensions cibles selon vos besoins, cliquez sur Confirm, puis sur preserve.
Les métriques globales incluent ALL_METRICS, REQUEST_COUNT, REQUEST_DURATION, REQUEST_SIZE et RESPONSE_SIZE. Par défaut, elles sont activées côté CLIENT et côté SERVER. ALL_METRICS exclut par défaut les dimensions
source_appetsource_version. -
-
Configurer les métriques personnalisées
Cliquez sur l'onglet custom, cliquez sur Create, configurez les paramètres, puis cliquez sur Create en bas de la page. Pour plus d'informations sur les métriques, consultez la section Descriptions des métriques.
Élément de configuration
Description
Namespaces
Sélectionnez le namespace où les métriques de surveillance personnalisées prennent effet.
Name
Saisissez un nom pour le tag personnalisé.
Workload selection
Cliquez sur Add Matching Label pour configurer le nom du libellé et le nom de la charge de travail. ASM fait correspondre l'application en fonction de cette configuration. Les métriques personnalisées s'appliquent uniquement à cette application.
Metric setting
ASM fournit plusieurs métriques globales par défaut, toutes activées par défaut. Vous pouvez activer ou désactiver des métriques spécifiques ou modifier leurs dimensions.
-
Activer ou désactiver les métriques globales :
-
Activer les métriques globales : À droite de la métrique cible, sélectionnez Client-side metrics ou Server-side metrics dans la colonne Enabled.
-
Désactiver les métriques globales : À droite de la métrique cible, décochez Enabled dans la colonne Client-side metrics ou Server-side metrics.
-
-
Modifier les dimensions :
-
À droite de la métrique cible, cliquez sur CLIENT-side Metric ou SERVER-side Metric, puis sur Edit dimension.
-
Dans la boîte de dialogue Customize CLIENT dimension configuration, sélectionnez les dimensions cibles selon vos besoins, puis cliquez sur Confirm.
-
Les métriques par défaut incluent ALL_METRICS, REQUEST_COUNT et REQUEST_DURATION. Pour arrêter la génération et la collecte de métriques, cliquez sur Disable Monitoring Metric Generation and Collection dans le coin supérieur droit.
-
-
Vous pouvez utiliser des sélecteurs pour configurer les métriques d'une seule charge de travail au sein d'un namespace. Les sélecteurs permettent la sélection de charges de travail basée sur des libellés.
-
Les configurations suivantes sont invalides au sein du même namespace :
Utilisation de sélecteurs pour créer plusieurs métriques personnalisées (CR Telemetry) pour la même charge de travail.
Création de plusieurs métriques personnalisées sans spécifier de sélecteur.
Pour plus d'informations, consultez la section Sélection de charge de travail.
Version de l'instance ASM 1.17.2.35 ou ultérieure
Pour plus d'informations, consultez la section Configuration de l'observabilité.
Descriptions des métriques
Le tableau suivant décrit les métriques de surveillance ASM. Pour plus d'informations, consultez la section MetricSelector.IstioMetric.
Les passerelles ASM ne prennent en charge l'exportation que des métriques côté CLIENT. Les sidecars peuvent exporter des métriques côté CLIENT et côté SERVER.
**Métrique**
|
**Description**
|
**Nom de la métrique Prometheus**
| | --- | --- | --- | |
**ALL_METRICS**
|
Représente toutes les métriques Istio par défaut.
|
-
| |
**REQUEST_COUNT**
|
Un compteur pour les requêtes d'application générées pour le trafic HTTP, HTTP/2 et gRPC.
|
**istio_requests_total**
| |
**REQUEST_DURATION**
|
Un histogramme des durées de requête générées pour le trafic HTTP, HTTP/2 et gRPC.
|
**istio_request_duration_milliseconds**
| |
**REQUEST_SIZE**
|
Un histogramme des tailles de corps de requête générées pour le trafic HTTP, HTTP/2 et gRPC.
|
**istio_request_bytes**
| |
**RESPONSE_SIZE**
|
Un histogramme des tailles de corps de réponse générées pour le trafic HTTP, HTTP/2 et gRPC.
|
**istio_response_bytes**
| |
**TCP_OPENED_CONNECTIONS**
|
Un compteur pour les connexions TCP ouvertes pendant le cycle de vie de la charge de travail.
|
**istio_tcp_connections_opened_total**
| |
**TCP_CLOSED_CONNECTIONS**
|
Un compteur pour les connexions TCP fermées pendant le cycle de vie de la charge de travail.
|
**istio_tcp_connections_closed_total**
| |
**TCP_SENT_BYTES**
|
Un compteur pour les octets envoyés lors des réponses via les connexions TCP.
|
**istio_tcp_sent_bytes_total**
| |
**TCP_RECEIVED_BYTES**
|
Le nombre d'octets reçus lors des requêtes via les connexions TCP.
|
**istio_tcp_received_bytes_total**
| |
**GRPC_REQUEST_MESSAGES**
|
Un compteur incrémenté pour chaque message gRPC envoyé par un client.
|
**istio_request_messages_total**
| |
**GRPC_RESPONSE_MESSAGES**
|
Un compteur incrémenté pour chaque message gRPC envoyé par un serveur.
|
**istio_response_messages_total**
|