1.15. Mesures, journaux et traces
Une fois que vous avez ajouté votre application au maillage, vous pouvez observer le flux de données à travers votre application. Si vous n'avez pas installé votre propre application, vous pouvez voir comment l'observabilité fonctionne dans Red Hat OpenShift Service Mesh en installant l'application d'exemple Bookinfo.
1.15.1. Découvrir les adresses de la console
Red Hat OpenShift Service Mesh fournit les consoles suivantes pour visualiser vos données de maillage de services :
- Kiali console - Kiali est la console de gestion de Red Hat OpenShift Service Mesh.
- Jaeger console - Jaeger est la console de gestion pour le traçage distribué de Red Hat OpenShift.
- Grafana console - Grafana fournit aux administrateurs de maillage des requêtes avancées, des analyses de métriques et des tableaux de bord pour les données Istio. En option, Grafana peut être utilisé pour analyser les métriques de maillage de services.
- Prometheus console - Red Hat OpenShift Service Mesh utilise Prometheus pour stocker les informations de télémétrie des services.
Lorsque vous installez le plan de contrôle Service Mesh, il génère automatiquement des routes pour chacun des composants installés. Une fois que vous avez l'adresse de l'itinéraire, vous pouvez accéder à la console Kiali, Jaeger, Prometheus ou Grafana pour afficher et gérer vos données de service mesh.
Prérequis
- Le composant doit être activé et installé. Par exemple, si vous n'avez pas installé le traçage distribué, vous ne pourrez pas accéder à la console Jaeger.
Procédure à partir de la console OpenShift
-
Connectez-vous à la console web de OpenShift Container Platform en tant qu'utilisateur disposant des droits cluster-admin. Si vous utilisez Red Hat OpenShift Dedicated, vous devez avoir un compte avec le rôle
dedicated-admin
. -
Naviguez jusqu'à Networking
Routes. Sur la page Routes, sélectionnez le projet de plan de contrôle Service Mesh, par exemple
istio-system
, dans le menu Namespace.La colonne Location affiche l'adresse liée à chaque itinéraire.
- Si nécessaire, utilisez le filtre pour trouver la console du composant dont vous voulez accéder à la route. Cliquez sur l'itinéraire Location pour lancer la console.
- Cliquez sur Log In With OpenShift.
Procédure à partir du CLI
Connectez-vous au CLI de OpenShift Container Platform en tant qu'utilisateur ayant le rôle
cluster-admin
. Si vous utilisez Red Hat OpenShift Dedicated, vous devez avoir un compte avec le rôlededicated-admin
.$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
Passez au projet de plan de contrôle Service Mesh. Dans cet exemple,
istio-system
est le projet de plan de contrôle Service Mesh. Exécutez la commande suivante :$ oc project istio-system
Pour obtenir les itinéraires des différentes consoles Red Hat OpenShift Service Mesh, exécutez la commande suivante :
$ oc get routes
Cette commande renvoie les URL des consoles web Kiali, Jaeger, Prometheus et Grafana, ainsi que toutes les autres routes de votre maillage de services. Vous devriez obtenir une sortie similaire à la suivante :
NAME HOST/PORT SERVICES PORT TERMINATION info-gateway bookinfo-gateway-yourcompany.com istio-ingressgateway http2 grafana grafana-yourcompany.com grafana <all> reencrypt/Redirect istio-ingressgateway istio-ingress-yourcompany.com istio-ingressgateway 8080 jaeger jaeger-yourcompany.com jaeger-query <all> reencrypt kiali kiali-yourcompany.com kiali 20001 reencrypt/Redirect prometheus prometheus-yourcompany.com prometheus <all> reencrypt/Redirect
-
Copiez l'URL de la console à laquelle vous souhaitez accéder dans la colonne
HOST/PORT
dans un navigateur pour ouvrir la console. - Cliquez sur Log In With OpenShift.
1.15.2. Accès à la console Kiali
Vous pouvez visualiser la topologie, la santé et les métriques de votre application dans la console Kiali. Si votre service rencontre des problèmes, la console Kiali vous permet de visualiser le flux de données à travers votre service. Vous pouvez obtenir des informations sur les composants du maillage à différents niveaux, y compris les applications abstraites, les services et les charges de travail. Kiali fournit également une vue graphique interactive de votre espace de noms en temps réel.
Pour accéder à la console Kiali, vous devez avoir Red Hat OpenShift Service Mesh installé, Kiali installé et configuré.
Le processus d'installation crée une route pour accéder à la console Kiali.
Si vous connaissez l'URL de la console Kiali, vous pouvez y accéder directement. Si vous ne connaissez pas l'URL, utilisez les instructions suivantes.
Procédure pour les administrateurs
- Connectez-vous à la console web de OpenShift Container Platform avec un rôle d'administrateur.
-
Cliquez sur Home
Projects. - Sur la page Projects, si nécessaire, utilisez le filtre pour trouver le nom de votre projet.
-
Cliquez sur le nom de votre projet, par exemple
info
. - Sur la page Project details, dans la section Launcher, cliquez sur le lien Kiali.
Connectez-vous à la console Kiali avec le même nom d'utilisateur et le même mot de passe que ceux utilisés pour accéder à la console OpenShift Container Platform.
Lorsque vous vous connectez pour la première fois à la console Kiali, vous voyez la page Overview qui affiche tous les espaces de noms de votre maillage de services que vous avez le droit de voir.
Si vous validez l'installation de la console et que les espaces de noms n'ont pas encore été ajoutés au maillage, il se peut qu'il n'y ait pas d'autres données à afficher que
istio-system
.
Procédure pour les développeurs
- Connectez-vous à la console web de OpenShift Container Platform avec un rôle de développeur.
- Cliquez sur Project.
- Sur la page Project Details, si nécessaire, utilisez le filtre pour trouver le nom de votre projet.
-
Cliquez sur le nom de votre projet, par exemple
info
. - Sur la page Project, dans la section Launcher, cliquez sur le lien Kiali.
- Cliquez sur Log In With OpenShift.
1.15.3. Visualisation des données de maillage des services dans la console Kiali
Le Kiali Graph offre une visualisation puissante du trafic de votre maillage. La topologie combine le trafic des requêtes en temps réel avec vos informations de configuration Istio pour présenter un aperçu immédiat du comportement de votre maillage de services, ce qui vous permet de localiser rapidement les problèmes. Plusieurs types de graphiques vous permettent de visualiser le trafic sous forme de topologie de service de haut niveau, de topologie de charge de travail de bas niveau ou de topologie au niveau de l'application.
Plusieurs graphiques sont disponibles :
- Le site App graph montre une charge de travail globale pour toutes les applications qui sont étiquetées de la même manière.
- Le site Service graph présente un nœud pour chaque service de votre maillage, mais exclut toutes les applications et charges de travail du graphique. Il fournit une vue d'ensemble et regroupe tout le trafic pour des services définis.
- Le site Versioned App graph présente un nœud pour chaque version d'une application. Toutes les versions d'une application sont regroupées.
- Le site Workload graph présente un nœud pour chaque charge de travail dans votre maillage de services. Ce graphique ne nécessite pas l'utilisation des étiquettes d'application et de version. Si votre application n'utilise pas d'étiquettes de version, utilisez ce graphique.
Les nœuds du graphique sont agrémentés d'une variété d'informations, indiquant diverses options d'acheminement comme les services virtuels et les entrées de service, ainsi que des configurations spéciales comme l'injection de fautes et les disjoncteurs. Il peut identifier les problèmes mTLS, les problèmes de latence, le trafic d'erreur, etc. Le graphique est hautement configurable, peut afficher des animations de trafic et dispose de puissantes capacités de recherche et de masquage.
Cliquez sur le bouton Legend pour obtenir des informations sur les formes, les couleurs, les flèches et les badges affichés dans le graphique.
Pour afficher un résumé des métriques, sélectionnez un nœud ou une arête dans le graphique pour afficher les détails de sa métrique dans le panneau de résumé.
1.15.3.1. Modifier la disposition des graphes dans Kiali
La présentation du graphe Kiali peut varier en fonction de l'architecture de votre application et des données à afficher. Par exemple, le nombre de nœuds du graphe et leurs interactions peuvent déterminer le rendu du graphe Kiali. Parce qu'il n'est pas possible de créer une disposition unique qui rende bien dans toutes les situations, Kiali offre un choix de plusieurs dispositions différentes.
Conditions préalables
Si vous n'avez pas installé votre propre application, installez l'application d'exemple Bookinfo. Générez ensuite du trafic pour l'application Bookinfo en entrant plusieurs fois la commande suivante.
$ curl "http://$GATEWAY_URL/productpage"
Cette commande simule un utilisateur visitant le microservice
productpage
de l'application.
Procédure
- Lancer la console Kiali.
- Cliquez sur Log In With OpenShift.
- Dans la console Kiali, cliquez sur Graph pour afficher un graphique de l'espace de noms.
-
Dans le menu Namespace, sélectionnez l'espace de noms de votre application, par exemple
info
. Pour choisir une autre présentation graphique, effectuez l'une ou l'autre des opérations suivantes, ou les deux :
Sélectionnez différents groupes de données dans le menu situé en haut du graphique.
- Graphique de l'application
- Graphique des services
- Graphique de l'application versionnée (par défaut)
- Graphique de la charge de travail
Sélectionnez une autre présentation de graphique dans la légende située au bas du graphique.
- Mise en page par défaut dagre
- Schéma 1 cose-bilkent
- Disposition 2 cola
1.15.3.2. Visualisation des journaux dans la console Kiali
Vous pouvez consulter les journaux de vos charges de travail dans la console Kiali. La page Workload Detail comprend un onglet Logs qui affiche une vue unifiée des journaux qui affiche à la fois les journaux d'application et de proxy. Vous pouvez sélectionner la fréquence d'actualisation de l'affichage des journaux dans Kiali.
Pour modifier le niveau de journalisation des journaux affichés dans Kiali, vous devez modifier la configuration de la journalisation pour la charge de travail ou le proxy.
Conditions préalables
- Service Mesh installé et configuré.
- Kiali installé et configuré.
- L'adresse de la console Kiali.
- Application ou exemple d'application Bookinfo ajouté au maillage.
Procédure
- Lancer la console Kiali.
Cliquez sur Log In With OpenShift.
La page de présentation de Kiali affiche les espaces de noms qui ont été ajoutés au maillage et que vous avez le droit de visualiser.
- Cliquez sur Workloads.
- Sur la page Workloads, sélectionnez le projet dans le menu Namespace.
- Si nécessaire, utilisez le filtre pour trouver la charge de travail dont vous souhaitez consulter les journaux. Cliquez sur la charge de travail Name. Par exemple, cliquez sur ratings-v1.
- Sur la page Workload Details, cliquez sur l'onglet Logs pour afficher les journaux de la charge de travail.
Si vous ne voyez aucune entrée de journal, il se peut que vous deviez ajuster l'intervalle de temps ou l'intervalle d'actualisation.
1.15.3.3. Visualisation des métriques dans la console Kiali
Dans la console Kiali, vous pouvez visualiser les métriques entrantes et sortantes de vos applications, charges de travail et services. Les pages de détails comprennent les onglets suivants :
- métriques des applications entrantes
- métriques de l'application sortante
- mesures de la charge de travail pour les appels entrants
- métriques de la charge de travail sortante
- métriques des services entrants
Ces onglets affichent des tableaux de bord prédéfinis, adaptés à l'application, à la charge de travail ou au niveau de service concerné. Les vues détaillées de l'application et de la charge de travail affichent des mesures de demande et de réponse telles que le volume, la durée, la taille ou le trafic TCP. La vue détaillée du service montre les mesures de demande et de réponse pour le trafic entrant uniquement.
Kiali vous permet de personnaliser les graphiques en choisissant les dimensions du graphique. Kiali peut également présenter des mesures rapportées par des mesures proxy de source ou de destination. Et pour le dépannage, Kiali peut superposer des traces sur les métriques.
Conditions préalables
- Service Mesh installé et configuré.
- Kiali installé et configuré.
- L'adresse de la console Kiali.
- (Facultatif) Le traçage distribué est installé et configuré.
Procédure
- Lancer la console Kiali.
Cliquez sur Log In With OpenShift.
La page de présentation de Kiali affiche les espaces de noms qui ont été ajoutés au maillage et que vous avez le droit de visualiser.
- Cliquez sur Applications, Workloads ou Services.
- Sur la page Applications, Workloads ou Services, sélectionnez le projet dans le menu Namespace.
- Si nécessaire, utilisez le filtre pour trouver l'application, la charge de travail ou le service dont vous souhaitez consulter les journaux. Cliquez sur le lien Name.
- Sur la page Application Detail, Workload Details ou Service Details, cliquez sur l'onglet Inbound Metrics ou Outbound Metrics pour afficher les mesures.
1.15.4. Traçage distribué
Le traçage distribué est le processus de suivi de la performance des services individuels dans une application en retraçant le chemin des appels de service dans l'application. Chaque fois qu'un utilisateur effectue une action dans une application, une requête est exécutée qui peut nécessiter l'interaction de plusieurs services pour produire une réponse. Le parcours de cette requête est appelé transaction distribuée.
Red Hat OpenShift Service Mesh utilise le traçage distribué de Red Hat OpenShift pour permettre aux développeurs de visualiser les flux d'appels dans une application microservice.
1.15.4.1. Connexion d'une instance de traçage distribuée existante
Si vous disposez déjà d'une instance de plateforme de traçage distribuée Red Hat OpenShift dans OpenShift Container Platform, vous pouvez configurer votre ressource ServiceMeshControlPlane
pour utiliser cette instance pour le traçage distribué.
Conditions préalables
- Instance de traçage distribuée Red Hat OpenShift installée et configurée.
Procédure
-
Dans la console web d'OpenShift Container Platform, cliquez sur Operators
Installed Operators. - Cliquez sur le menu Project et sélectionnez le projet dans lequel vous avez installé le plan de contrôle Service Mesh, par exemple istio-system.
-
Cliquez sur l'opérateur Red Hat OpenShift Service Mesh. Dans la colonne Istio Service Mesh Control Plane, cliquez sur le nom de votre ressource
ServiceMeshControlPlane
, par exemplebasic
. Ajoutez le nom de votre instance de plate-forme de traçage distribuée à l'adresse
ServiceMeshControlPlane
.- Cliquez sur l'onglet YAML.
Ajoutez le nom de votre instance de plate-forme de traçage distribuée à
spec.addons.jaeger.name
dans votre ressourceServiceMeshControlPlane
. Dans l'exemple suivant,distr-tracing-production
est le nom de l'instance de la plate-forme de traçage distribuée.Exemple de configuration de traçage distribué
spec: addons: jaeger: name: distr-tracing-production
- Cliquez sur Save.
-
Cliquez sur Reload pour vérifier que la ressource
ServiceMeshControlPlane
a été configurée correctement.
1.15.4.2. Réglage de la fréquence d'échantillonnage
Une trace est un chemin d'exécution entre les services dans le maillage de services. Une trace est composée d'une ou plusieurs portées. Une étendue est une unité logique de travail qui a un nom, une heure de début et une durée. Le taux d'échantillonnage détermine la fréquence de persistance d'une trace.
Le taux d'échantillonnage du proxy Envoy est configuré par défaut pour échantillonner 100 % des traces dans votre maillage de services. Un taux d'échantillonnage élevé consomme les ressources et les performances du cluster, mais il est utile lors du débogage des problèmes. Avant de déployer Red Hat OpenShift Service Mesh en production, définissez la valeur à une proportion plus petite de traces. Par exemple, définissez spec.tracing.sampling
sur 100
pour échantillonner 1 % des traces.
Configurez le taux d'échantillonnage du proxy Envoy sous la forme d'un nombre entier échelonné représentant des incréments de 0,01 %.
Dans une installation de base, spec.tracing.sampling
est réglé sur 10000
, ce qui permet d'échantillonner 100 % des traces. Par exemple :
- En réglant la valeur sur 10, on échantillonne 0,1 % des traces.
- En réglant la valeur sur 500, on échantillonne 5 % des traces.
Le taux d'échantillonnage du proxy Envoy s'applique aux applications qui sont disponibles pour un maillage de services et qui utilisent le proxy Envoy. Ce taux d'échantillonnage détermine la quantité de données que le proxy Envoy collecte et suit.
Le taux d'échantillonnage à distance de Jaeger s'applique aux applications qui sont externes au Service Mesh et qui n'utilisent pas le proxy Envoy, comme une base de données. Ce taux d'échantillonnage détermine la quantité de données que le système de suivi distribué collecte et stocke. Pour plus d'informations, voir Options de configuration du traçage distribué.
Procédure
-
Dans la console web d'OpenShift Container Platform, cliquez sur Operators
Installed Operators. - Cliquez sur le menu Project et sélectionnez le projet dans lequel vous avez installé le plan de contrôle, par exemple istio-system.
-
Cliquez sur l'opérateur Red Hat OpenShift Service Mesh. Dans la colonne Istio Service Mesh Control Plane, cliquez sur le nom de votre ressource
ServiceMeshControlPlane
, par exemplebasic
. Pour ajuster le taux d'échantillonnage, définissez une valeur différente pour
spec.tracing.sampling
.- Cliquez sur l'onglet YAML.
Définissez la valeur de
spec.tracing.sampling
dans votre ressourceServiceMeshControlPlane
. Dans l'exemple suivant, il s'agit de100
.Exemple d'échantillonnage Jaeger
spec: tracing: sampling: 100
- Cliquez sur Save.
-
Cliquez sur Reload pour vérifier que la ressource
ServiceMeshControlPlane
a été configurée correctement.
1.15.5. Accéder à la console Jaeger
Pour accéder à la console Jaeger, vous devez avoir installé Red Hat OpenShift Service Mesh, Red Hat OpenShift distributed tracing platform installé et configuré.
Le processus d'installation crée une route pour accéder à la console Jaeger.
Si vous connaissez l'URL de la console Jaeger, vous pouvez y accéder directement. Si vous ne connaissez pas l'URL, suivez les instructions suivantes.
Procédure à partir de la console OpenShift
-
Connectez-vous à la console web de OpenShift Container Platform en tant qu'utilisateur disposant des droits cluster-admin. Si vous utilisez Red Hat OpenShift Dedicated, vous devez avoir un compte avec le rôle
dedicated-admin
. -
Naviguez jusqu'à Networking
Routes. Sur la page Routes, sélectionnez le projet de plan de contrôle Service Mesh, par exemple
istio-system
, dans le menu Namespace.La colonne Location affiche l'adresse liée à chaque itinéraire.
-
Si nécessaire, utilisez le filtre pour trouver la route
jaeger
. Cliquez sur la route Location pour lancer la console. - Cliquez sur Log In With OpenShift.
Procédure à partir de la console Kiali
- Lancer la console Kiali.
- Cliquez sur Distributed Tracing dans le volet de navigation gauche.
- Cliquez sur Log In With OpenShift.
Procédure à partir du CLI
Connectez-vous au CLI de OpenShift Container Platform en tant qu'utilisateur ayant le rôle
cluster-admin
. Si vous utilisez Red Hat OpenShift Dedicated, vous devez avoir un compte avec le rôlededicated-admin
.$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
Pour demander des détails sur l'itinéraire à l'aide de la ligne de commande, entrez la commande suivante. Dans cet exemple,
istio-system
est l'espace de noms du plan de contrôle Service Mesh.$ export JAEGER_URL=$(oc get route -n istio-system jaeger -o jsonpath='{.spec.host}')
-
Lancez un navigateur et accédez à
https://<JAEGER_URL>
, où<JAEGER_URL>
est l'itinéraire que vous avez découvert à l'étape précédente. - Connectez-vous en utilisant le même nom d'utilisateur et le même mot de passe que ceux utilisés pour accéder à la console OpenShift Container Platform.
Si vous avez ajouté des services au maillage de services et généré des traces, vous pouvez utiliser les filtres et le bouton Find Traces pour rechercher vos données de traces.
Si vous validez l'installation de la console, il n'y a pas de données de trace à afficher.
Pour plus d'informations sur la configuration de Jaeger, voir la documentation sur le traçage distribué.
1.15.6. Accéder à la console Grafana
Grafana est un outil d'analyse que vous pouvez utiliser pour afficher, interroger et analyser vos métriques de service mesh. Dans cet exemple, istio-system
est l'espace de noms du plan de contrôle Service Mesh. Pour accéder à Grafana, procédez comme suit :
Procédure
- Connectez-vous à la console web de OpenShift Container Platform.
- Cliquez sur le menu Project et sélectionnez le projet dans lequel vous avez installé le plan de contrôle Service Mesh, par exemple istio-system.
- Cliquez sur Routes.
- Cliquez sur le lien dans la colonne Location pour la ligne Grafana.
- Connectez-vous à la console Grafana avec vos identifiants OpenShift Container Platform.
1.15.7. Accès à la console Prometheus
Prometheus est un outil de surveillance et d'alerte que vous pouvez utiliser pour collecter des données multidimensionnelles sur vos microservices. Dans cet exemple, istio-system
est l'espace de noms du plan de contrôle Service Mesh.
Procédure
- Connectez-vous à la console web de OpenShift Container Platform.
- Cliquez sur le menu Project et sélectionnez le projet dans lequel vous avez installé le plan de contrôle Service Mesh, par exemple istio-system.
- Cliquez sur Routes.
- Cliquez sur le lien dans la colonne Location pour la ligne Prometheus.
- Connectez-vous à la console Prometheus avec vos identifiants OpenShift Container Platform.