Une fois la collecte de métriques Prometheus activée pour une instance Service Mesh (ASM), ses proxys Envoy commencent à générer un ensemble de métriques par défaut. ASM vous permet de personnaliser ces métriques au niveau du maillage ou de l'instance afin d'obtenir une observabilité plus ciblée. Cette rubrique décrit comment personnaliser les métriques dans Service Mesh (ASM).
Prérequis
Le cluster est ajouté à l'instance ASM. Pour plus d'informations, consultez la page Ajouter un cluster à une instance ASM.
Contexte
Istio génère les métriques suivantes :
-
Pour le trafic HTTP, HTTP/2 et gRPC, Istio génère les métriques suivantes :
Request Count (istio_requests_total): A COUNTER incremented for every request handled by an Istio proxy. Request Duration (istio_request_duration_milliseconds): A DISTRIBUTION that measures the duration of requests. Request Size (istio_request_bytes): A DISTRIBUTION that measures HTTP request body sizes. Response Size (istio_response_bytes): A DISTRIBUTION that measures HTTP response body sizes. gRPC Request Message Count (istio_request_messages_total): A COUNTER incremented for every gRPC message sent from a client. gRPC Response Message Count (istio_response_messages_total): 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): A COUNTER that measures the total bytes sent in TCP responses. Tcp Bytes Received (istio_tcp_received_bytes_total): A COUNTER that measures the total bytes received in TCP requests. Tcp Connections Opened (istio_tcp_connections_opened_total): A COUNTER incremented for every opened connection. Tcp Connections Closed (istio_tcp_connections_closed_total): A COUNTER incremented for every closed connection.
Chaque métrique Istio inclut les libellés par défaut suivants :
DefaultStatTags=["reporter","source_namespace","source_workload","source_workload_namespace","source_principal","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"]
Référence des libellés
|
Libellé |
Description |
|
reporter |
L'entité qui signale la requête. La valeur de ce libellé varie selon le rapporteur :
|
|
source_workload |
Le nom de la charge de travail source. Prend la valeur |
|
source_workload_namespace |
Le namespace de la charge de travail source. Prend la valeur |
|
source_principal |
Le principal pair de la source du trafic. Cette valeur est collectée uniquement si l'authentification par pair est configurée. |
|
source_app |
L'application source, identifiée par le libellé d'application de la charge de travail source. Prend la valeur |
|
source_version |
La version de la charge de travail source. Prend la valeur |
|
source_cluster |
Le cluster de la charge de travail source. |
|
destination_namespace |
Le namespace de la charge de travail de destination. Prend la valeur |
|
destination_workload |
Le nom de la charge de travail de destination. Prend la valeur |
|
destination_workload_namespace |
Le namespace de la charge de travail de destination. Prend la valeur |
|
destination_principal |
Le principal pair de la destination du trafic. Cette valeur est collectée uniquement si l'authentification par pair est configurée. |
|
destination_app |
L'application de destination, identifiée par le libellé d'application de la charge de travail de destination. Prend la valeur |
|
destination_version |
La version de la charge de travail de destination. Prend la valeur |
|
destination_service |
L'hôte du service de destination qui traite la requête. |
|
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 sur la réponse ou la connexion depuis le proxy. |
|
grpc_response_status |
Le statut de la réponse gRPC. |
|
connection_security_policy |
La politique d'authentification du service pour la requête. |
Procédure
Avant la v1.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, sélectionnez .
Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, sélectionnez .
Sur la page Basic Information, cliquez sur Settings dans le coin supérieur droit.
Dans le panneau Settings Update, sélectionnez Enable Prometheus monitoring, choisissez une option selon vos besoins, puis cliquez sur OK.
-
Personnalisez les métriques.
Dans le volet de navigation de gauche, sélectionnez , puis cliquez sur Create.
-
Sur la page Create, configurez les paramètres, puis cliquez sur Create.
Paramètre
Description
Match Label
Définissez Name sur le nom du libellé et Value sur le nom de l'application. Les métriques personnalisées s'appliquent uniquement aux applications correspondant à ce libellé.
inboundSidecar
Cliquez sur inboundSidecar, puis sur Add Metrics pour configurer des libellés personnalisés pour le trafic entrant.
-
Metric Name : laissez ce champ vide pour appliquer la configuration à toutes les métriques.
-
Metric Dimension : cliquez sur Add Dimension pour configurer un Tag et une Expression.
-
Tags_to_remove : spécifiez les libellés de dimension à supprimer.
outboundSidecar
Cliquez sur outboundSidecar, puis sur Add Metrics pour configurer des libellés personnalisés pour le trafic sortant.
-
Metric Name : laissez ce champ vide pour appliquer la configuration à toutes les métriques.
-
Metric Dimension : cliquez sur Add Dimension pour configurer un Tag et une Expression.
-
Tags_to_remove : spécifiez les libellés de dimension à supprimer.
gateway
Cliquez sur gateway, puis sur Add Metrics pour configurer des libellés personnalisés pour la passerelle.
-
Metric Name : laissez ce champ vide pour appliquer la configuration à toutes les métriques.
-
Metric Dimension : cliquez sur Add Dimension pour configurer un Tag et une Expression.
-
Tags_to_remove : spécifiez les libellés de dimension à supprimer.
RemarqueSi vous configurez uniquement inboundSidecar sans configurer outboundSidecar ni gateway, les libellés personnalisés s'appliquent uniquement au trafic entrant. Les métriques par défaut sont générées pour le trafic sortant et celui de la passerelle.
-
De la v1.15.3.65 à la v1.17.2.35
ASM a remplacé la page Customized Metrics par la page Monitoring metrics. La nouvelle interface simplifie la configuration. Pour utiliser cette fonctionnalité, votre instance ASM doit être en version v1.15.3.65-g97cc18dd-aliyun ou ultérieure. Pour savoir comment mettre à jour une instance, consultez la page Mettre à jour une instance ASM.
Connectez-vous à la console ASM. Dans le volet de navigation de gauche, sélectionnez .
Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, sélectionnez .
-
Sur la page Monitoring metrics, cliquez sur l'onglet Metric setting pour configurer les métriques Global ou custom selon vos besoins.
-
Configurer les métriques globales
ASM fournit un ensemble de métriques globales par défaut, activées par défaut. Vous pouvez activer ou désactiver les métriques associées ou modifier leurs dimensions selon vos besoins. Pour plus d'informations sur les métriques, consultez la section Référence des métriques.
Actions
Description
Activer ou désactiver les métriques globales
-
Pour activer une métrique globale : cliquez sur l'onglet Global. Recherchez la métrique cible et cochez la case Enabled dans la colonne client-side metric ou server-side metric, puis cliquez sur preserve.
-
Pour désactiver une métrique globale : cliquez sur l'onglet Global. Recherchez la métrique cible et décochez la case Enabled dans la colonne client-side metric ou server-side metric, puis cliquez sur preserve.
Modifier les dimensions des métriques
-
Cliquez sur l'onglet Global. Recherchez la métrique cible et cliquez sur Edit dimension dans la colonne client-side metric ou server-side metric.
-
Dans la boîte de dialogue Customize CLIENT dimension configuration, sélectionnez les dimensions cibles, cliquez sur Confirm, puis sur preserve.
Les métriques globales incluent
ALL_METRICS,REQUEST_COUNT,REQUEST_DURATION,REQUEST_SIZEetRESPONSE_SIZE. Les dimensions supprimées, telles quesource_appetsource_version, sont affichées dans les lignes de métriques correspondantes. -
-
Configurer des métriques personnalisées
Cliquez sur l'onglet custom et 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 Référence des métriques.
Paramètre
Description
Namespaces
Sélectionnez le namespace où s'applique la métrique personnalisée.
Name
Saisissez un nom pour la configuration de métrique personnalisée.
Workload selection
Cliquez sur Add Matching Label pour configurer le nom du libellé et le nom de la charge de travail. ASM fait correspondre les applications en fonction de la configuration et les métriques personnalisées s'appliquent uniquement à l'application correspondante.
Metric setting
ASM fournit un ensemble de métriques globales par défaut, activées par défaut. Vous pouvez activer ou désactiver les métriques associées ou modifier leurs dimensions.
-
Activer ou désactiver les métriques globales :
-
Pour activer une métrique globale : recherchez la métrique cible et cochez la case Enabled dans la colonne client-side metric ou server-side metric.
-
Pour désactiver une métrique globale : recherchez la métrique cible et décochez la case Enabled dans la colonne client-side metric ou server-side metric.
-
-
Modifier les dimensions :
-
Recherchez la métrique cible et cliquez sur Edit dimension dans la colonne client-side metric ou server-side metric.
-
Dans la boîte de dialogue Customize CLIENT dimension configuration, sélectionnez les dimensions cibles, puis cliquez sur Confirm.
-
-
-
Vous pouvez utiliser un sélecteur pour configurer les métriques d'une charge de travail spécifique dans un namespace. Le sélecteur vous permet de sélectionner des charges de travail en fonction de leurs libellés.
-
Les configurations suivantes sont invalides dans le même namespace :
Utilisation d'un sélecteur 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 page Sélection de charge de travail.
v1.17.2.35 et versions ultérieures
Pour plus d'informations, consultez la page Configurer les paramètres d'observabilité.
Référence des métriques
Le tableau suivant décrit les métriques dans ASM. Pour plus d'informations, consultez la page MetricSelector.IstioMetric.
Les passerelles ASM exportent uniquement les métriques côté client. Les sidecars peuvent exporter à la fois les métriques côté client et côté serveur.
|
Métrique |
Description |
Métrique Prometheus |
|
ALL_METRICS |
Représente toutes les métriques Istio par défaut. |
- |
|
REQUEST_COUNT |
Un compteur de requêtes d'application pour le trafic HTTP, HTTP/2 et gRPC. |
|
|
REQUEST_DURATION |
Un histogramme des durées de requête pour le trafic HTTP, HTTP/2 et gRPC. |
|
|
REQUEST_SIZE |
Un histogramme des tailles de corps de requête pour le trafic HTTP, HTTP/2 et gRPC. |
|
|
RESPONSE_SIZE |
Un histogramme des tailles de corps de réponse pour le trafic HTTP, HTTP/2 et gRPC. |
|
|
TCP_OPENED_CONNECTIONS |
Un compteur de connexions TCP ouvertes pendant la durée de vie d'une charge de travail. |
|
|
TCP_CLOSED_CONNECTIONS |
Un compteur de connexions TCP fermées pendant la durée de vie d'une charge de travail. |
|
|
TCP_SENT_BYTES |
Un compteur d'octets envoyés lors des réponses sur une connexion TCP. |
|
|
TCP_RECEIVED_BYTES |
Un compteur d'octets reçus lors des requêtes sur une connexion TCP. |
|
|
GRPC_REQUEST_MESSAGES |
Un compteur incrémenté pour chaque message gRPC envoyé par un client. |
|
|
GRPC_RESPONSE_MESSAGES |
Un compteur incrémenté pour chaque message gRPC envoyé par un serveur. |
|