Journalisation et surveillance du plan de contrôle

Ce document explique comment utiliser Cloud Logging et Cloud Monitoring pour afficher les journaux et les métriques du plan de contrôle de Cloud Service Mesh.

L'utilisation d'un maillage de services vous permet d'observer le trafic vers et depuis des services. Vous disposez ainsi de données enrichies pour la surveillance et le débogage, sans modifications du code dans le service lui-même. Les entrées de journal peuvent fournir des informations importantes pour résoudre votre problème de maillage de services, y compris des enregistrements de connexions et de déconnexions réussies, des rapports d'erreurs pour les clients mal configurés et des alertes en cas de conflits de ressources de l'API.

Cas d'utilisation

Voici trois cas d'utilisation concernant la journalisation et la surveillance du plan de contrôle :

  • Cloud Logging pour le plan de contrôle Cloud Service Mesh: vous pouvez stocker, rechercher, analyser et définir des alertes sur toutes vos données et événements de journalisation Cloud Service Mesh en toute sécurité à l'aide de l'ensemble des fonctionnalités intégrées de Logging. Cloud Service Mesh exporte les journaux vers Logging lorsqu'un client Envoy ou gRPC se connecte ou se déconnecte, et lorsqu'il détecte des problèmes de configuration.
  • Cloud Monitoring pour le plan de contrôle Cloud Service Mesh: Cloud Service Mesh exporte vers Monitoring une métrique clé, indiquant le nombre de clients connectés au plan de contrôle Cloud Service Mesh. Vous pouvez configurer un tableau de bord dans Monitoring et visualiser cette métrique en temps réel afin de surveiller l'état du maillage lorsque les clients se connectent et se déconnectent. Cela vous permet également de configurer un SLO pour votre maillage.
  • Résolution immédiate des problèmes: par défaut, Cloud Service Mesh exporte la télémétrie vers Logging et Monitoring. Aucune configuration supplémentaire n'est nécessaire pour configurer la journalisation et la surveillance. Vous pouvez ainsi résoudre les problèmes à tout moment, y compris lors de la configuration initiale du maillage.

Voir les journaux

Pour afficher les journaux Cloud Service Mesh, utilisez l'explorateur de journaux. La section suivante présente un exemple de requête permettant d'afficher les journaux Cloud Service Mesh, mais vous pouvez utiliser le lien précédent pour créer votre propre requête.

  1. Dans Google Cloud Console, accédez à la page Explorateur de journaux.

    Accéder à l'explorateur de journaux

  2. Dans la liste Ressource,
    • Si vous utilisez les API de routage de service, sélectionnez Gateway Scope ou Mesh.
    • Si vous utilisez les anciennes API, sélectionnez GCE Network.
  3. Dans la liste Nom du journal, sélectionnez trafficdirector.googleapis.com/events.
  4. Cliquez sur Exécuter la requête.

Champs d'entrée de journal Cloud Service Mesh

Champ Description
node_id ID du nœud xDS-client, tel que fourni par le client xDS.
client_type Type de client xDS connecté à Cloud Service Mesh. Valeurs possibles :
  • ENVOY
  • GRPC-JAVA
  • GRPC-C++
  • GRPC-PYTHON
  • GRPC-GO
  • UNKNOWN
node_ip Adresse IP du nœud, telle que fournie par le client.
api_version Version de l'API xDS utilisée par les clients xDS pour se connecter à Cloud Service Mesh. Les valeurs possibles sont V2 et V3.
description Description textuelle de l'événement avec des détails supplémentaires.

Exemple d'entrées de journal

Exemple d'entrée de journal Description
"Cloud Service Mesh n'a trouvé aucune configuration pour le client xDS." Ce journal est généré lorsque le client xDS est refusé par Cloud Service Mesh, car aucune configuration n'existe. Cela peut être dû à une configuration incomplète des ressources de l'API liées à Cloud Service Mesh.
"Le client est connecté." Ce type de message de journal est généré chaque fois qu'un client se connecte avec succès à Cloud Service Mesh.
"Le client a bien été déconnecté." Ce type de message de journal est généré à chaque fois qu'un client établi est déconnecté de Cloud Service Mesh.
"La variable de métadonnées TRAFFICDIRECTOR_INTERCEPTION_PORT n'est pas définie. Une configuration de routage pour l'écouteur d'interception existe, mais elle sera ignorée." Ce type de message de journal est généré lorsque les ressources Cloud Service Mesh sont correctement configurées, mais que la variable TRAFFICDIRECTOR_INTERCEPTION_PORT n'est pas définie dans les métadonnées du nœud xDS-client. Vous ne pouvez donc pas ajouter cette configuration au client.
"L'écouteur d'interception est basé sur le port 15001 donné, mais la configuration de routage n'existe pas pour ce port." Ce type de message de journal est généré lorsque la variable TRAFFICDIRECTOR_INTERCEPTION_PORT est définie dans les métadonnées du nœud du client xDS, mais qu'aucune ressource n'a été configurée pour que Cloud Service Mesh génère une réponse xDS complète.
"Échec de l'envoi de la réponse ADS depuis Cloud Service Mesh. La dernière requête de découverte du nœud comportait une version et/ou une version incorrecte." Ce type de message de journal est généré lorsque Cloud Service Mesh n'a pas pu traiter la réponse xDS correctement en raison d'une communication corrompue du client xDS. Ce message indique une erreur de mise en œuvre dans le client. Nous vous recommandons de vérifier les journaux du client.
"Client envoyant du trafic interrégional vers le service de backend backend_service_id. Région source : source_region Région(s) de destination : destination_region1, destination_region2" Ce type de message de journal est généré lorsqu'un client indique à Cloud Service Mesh qu'il a envoyé du trafic interrégional depuis une région source vers une ou plusieurs régions de destination.

Afficher les métriques

Cloud Service Mesh exporte trois métriques vers Cloud Monitoring : xDS API Connected Streams (Flux connectés de l'API xDS), Request count (Nombre de requêtes) et Request count by zone (Nombre de requêtes par zone). xDS API Connected Streams indique le nombre de clients connectés à votre plan de contrôle. Request count indique le nombre de requêtes envoyées à un service de backend, regroupées par région source, région de destination et état de la requête. Le nombre de requêtes par zone indique le nombre de requêtes envoyées à un service de backend, regroupées par zone source, zone de destination et état de la requête. Pour afficher ces métriques, utilisez l'Explorateur de métriques.

Pour afficher les métriques Cloud Service Mesh, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Explorateur de métriques.

    Accéder à l'explorateur de métriques

  2. Dans la liste Type de ressource, sélectionnez une ressource.
    • Si vous utilisez les API de routage de service, sélectionnez Gateway Scope ou Mesh.
    • Si vous utilisez les anciennes API, sélectionnez Network.
  3. Dans la liste Métrique, sélectionnez connected_clients.
  4. Revenez à la liste Type de ressource, puis sélectionnez Compute Engine Backend Service.
  5. Dans la liste Métrique, sélectionnez Request count ou Request count by zone.

Vous pouvez également utiliser une requête pour afficher le nombre de requêtes interrégionales :

  1. Sélectionnez MQL.
  2. Dans le champ, saisissez l'exemple de requête suivant :
    fetch gce_backend_service
    | metric 'trafficdirector.googleapis.com/xds/server/request_count'
    | filter ( ne(metric.source_region, metric.destination_region))
    | align rate(1m)
    | every 1m
    | group_by [metric.source_region, metric.destination_region, resource.backend_service_id],
    [value_request_count_aggregate: aggregate(value.request_count)]
    
  3. Cliquez sur Run query.

Configurer des métriques et des alertes basées sur les journaux

Les étapes suivantes nécessitent la configuration de métriques basées sur les journaux. Pour en savoir plus sur la configuration des métriques basées sur les journaux, consultez la présentation.

Vous pouvez configurer des alertes afin d'être averti lorsque des messages spécifiés par l'utilisateur apparaissent dans vos journaux inclus. Ces alertes peuvent avertir l'opérateur en cas d'événement inattendu. Par exemple, si une modification de la configuration de Cloud Service Mesh entraîne des conflits de ressources d'API, vous pouvez recevoir une alerte sur le message d'erreur. Pour configurer des alertes sur vos métriques basées sur les journaux, consultez la section Configurer des graphiques et des alertes.