Rechercher

14.12. Requêtes Prometheus pour les ressources virtuelles

download PDF

OpenShift Virtualization fournit des métriques que vous pouvez utiliser pour surveiller la consommation des ressources de l'infrastructure du cluster, y compris les vCPU, le réseau, le stockage et le swapping de la mémoire invitée. Vous pouvez également utiliser les métriques pour interroger l'état de la migration en direct.

Utilisez le tableau de bord de surveillance d'OpenShift Container Platform pour interroger les métriques de virtualisation.

14.12.1. Conditions préalables

  • Pour utiliser la métrique vCPU, l'argument noyau schedstats=enable doit être appliqué à l'objet MachineConfig. Cet argument du noyau permet d'activer les statistiques du planificateur utilisées pour le débogage et le réglage des performances et ajoute une charge supplémentaire mineure au planificateur. Voir la documentation sur les tâches de configuration de la machine OpenShift Container Platform pour plus d'informations sur l'application d'un argument de noyau.
  • Pour que les requêtes de permutation de la mémoire des invités renvoient des données, la permutation de la mémoire doit être activée sur les invités virtuels.

14.12.2. A propos de l'interrogation des métriques

Le tableau de bord de surveillance d'OpenShift Container Platform vous permet d'exécuter des requêtes Prometheus Query Language (PromQL) pour examiner les mesures visualisées sur un graphique. Cette fonctionnalité fournit des informations sur l'état d'un cluster et de toute charge de travail définie par l'utilisateur que vous surveillez.

En tant que cluster administrator, vous pouvez interroger les métriques pour tous les projets principaux d'OpenShift Container Platform et les projets définis par l'utilisateur.

En tant que developer, vous devez spécifier un nom de projet lorsque vous interrogez les métriques. Vous devez disposer des privilèges requis pour afficher les métriques du projet sélectionné.

14.12.2.1. Interroger les métriques de tous les projets en tant qu'administrateur de cluster

En tant qu'administrateur de cluster ou en tant qu'utilisateur disposant de permissions de visualisation pour tous les projets, vous pouvez accéder aux métriques pour tous les projets par défaut d'OpenShift Container Platform et les projets définis par l'utilisateur dans l'interface utilisateur des métriques.

Conditions préalables

  • Vous avez accès au cluster en tant qu'utilisateur avec le rôle cluster-admin ou avec des permissions de visualisation pour tous les projets.
  • Vous avez installé l'OpenShift CLI (oc).

Procédure

  1. Sélectionnez la perspective Administrator dans la console web de OpenShift Container Platform.
  2. Sélectionnez Observe Metrics.
  3. Sélectionnez Insert Metric at Cursor pour afficher une liste de requêtes prédéfinies.
  4. Pour créer une requête personnalisée, ajoutez votre requête Prometheus Query Language (PromQL) au champ Expression.

    Note

    Lorsque vous saisissez une expression PromQL, des suggestions d'autocomplétion apparaissent dans une liste déroulante. Ces suggestions incluent des fonctions, des métriques, des étiquettes et des jetons de temps. Vous pouvez utiliser les flèches du clavier pour sélectionner l'un des éléments suggérés, puis appuyer sur Entrée pour l'ajouter à votre expression. Vous pouvez également déplacer le pointeur de votre souris sur un élément suggéré pour afficher une brève description de cet élément.

  5. Pour ajouter plusieurs requêtes, sélectionnez Add Query.
  6. Pour dupliquer une requête existante, sélectionnez kebab à côté de la requête, puis choisissez Duplicate query.
  7. Pour supprimer une requête, sélectionnez kebab à côté de la requête, puis choisissez Delete query.
  8. Pour empêcher l'exécution d'une requête, sélectionnez kebab à côté de la requête et choisissez Disable query.
  9. Pour exécuter les requêtes que vous avez créées, sélectionnez Run Queries. Les métriques des requêtes sont visualisées sur le graphique. Si une requête n'est pas valide, l'interface utilisateur affiche un message d'erreur.

    Note

    Les requêtes qui portent sur de grandes quantités de données peuvent dépasser le temps imparti ou surcharger le navigateur lors de l'affichage de graphiques de séries temporelles. Pour éviter cela, sélectionnez Hide graph et calibrez votre requête en utilisant uniquement le tableau des métriques. Ensuite, après avoir trouvé une requête réalisable, activez le tracé pour dessiner les graphiques.

  10. Facultatif : L'URL de la page contient maintenant les requêtes que vous avez exécutées. Pour réutiliser cet ensemble de requêtes à l'avenir, enregistrez cette URL.

14.12.2.2. Interroger les métriques pour des projets définis par l'utilisateur en tant que développeur

Vous pouvez accéder aux métriques d'un projet défini par l'utilisateur en tant que développeur ou en tant qu'utilisateur disposant d'autorisations de visualisation du projet.

Dans la perspective Developer, l'interface utilisateur Metrics comprend des requêtes prédéfinies sur l'unité centrale, la mémoire, la bande passante et les paquets réseau pour le projet sélectionné. Vous pouvez également exécuter des requêtes Prometheus Query Language (PromQL) personnalisées pour l'unité centrale, la mémoire, la bande passante, les paquets réseau et les métriques d'application pour le projet.

Note

Les développeurs ne peuvent utiliser que la perspective Developer et non la perspective Administrator. En tant que développeur, vous ne pouvez interroger les métriques que pour un seul projet à la fois dans la page Observe -→ Metrics de la console web pour votre projet défini par l'utilisateur.

Conditions préalables

  • Vous avez accès au cluster en tant que développeur ou en tant qu'utilisateur disposant d'autorisations de visualisation pour le projet dont vous consultez les métriques.
  • Vous avez activé la surveillance pour les projets définis par l'utilisateur.
  • Vous avez déployé un service dans un projet défini par l'utilisateur.
  • Vous avez créé une définition de ressource personnalisée (CRD) ServiceMonitor pour le service afin de définir la manière dont le service est surveillé.

Procédure

  1. Sélectionnez la perspective Developer dans la console web de OpenShift Container Platform.
  2. Sélectionnez Observe Metrics.
  3. Dans la liste Project:, sélectionnez le projet pour lequel vous souhaitez afficher les mesures.
  4. Sélectionnez une requête dans la liste Select query ou créez une requête PromQL personnalisée basée sur la requête sélectionnée en sélectionnant Show PromQL.
  5. Optionnel : Sélectionnez Custom query dans la liste Select query pour saisir une nouvelle requête. Au fur et à mesure de la saisie, des suggestions d'autocomplétion apparaissent dans une liste déroulante. Ces suggestions comprennent des fonctions et des mesures. Cliquez sur un élément suggéré pour le sélectionner.

    Note

    Dans la perspective Developer, vous ne pouvez exécuter qu'une seule requête à la fois.

14.12.3. Mesures de virtualisation

Les descriptions des mesures suivantes comprennent des exemples de requêtes en Prometheus Query Language (PromQL). Ces mesures ne constituent pas une API et peuvent changer d'une version à l'autre.

Note

Les exemples suivants utilisent les requêtes topk qui spécifient une période de temps. Si des machines virtuelles sont supprimées au cours de cette période, elles peuvent toujours apparaître dans le résultat de la requête.

14.12.3.1. métriques vCPU

La requête suivante permet d'identifier les machines virtuelles qui attendent une entrée/sortie (E/S) :

kubevirt_vmi_vcpu_wait_seconds
Renvoie le temps d'attente (en secondes) pour le vCPU d'une machine virtuelle. Type : Compteur.

Une valeur supérieure à '0' signifie que la vCPU veut s'exécuter, mais que le planificateur de l'hôte ne peut pas encore le faire. Cette impossibilité d'exécution indique qu'il y a un problème au niveau des entrées/sorties.

Note

Pour interroger la métrique vCPU, l'argument de noyau schedstats=enable doit d'abord être appliqué à l'objet MachineConfig. Cet argument du noyau permet d'activer les statistiques de l'ordonnanceur utilisées pour le débogage et le réglage des performances et ajoute une charge supplémentaire mineure à l'ordonnanceur.

Exemple de requête sur le temps d'attente vCPU

topk(3, sum by (name, namespace) (rate(kubevirt_vmi_vcpu_wait_seconds[6m]))) > 0 1

1
Cette requête renvoie les 3 premières machines virtuelles en attente d'E/S à chaque instant sur une période de six minutes.

14.12.3.2. Mesures du réseau

Les requêtes suivantes permettent d'identifier les machines virtuelles qui saturent le réseau :

kubevirt_vmi_network_receive_bytes_total
Renvoie la quantité totale de trafic reçu (en octets) sur le réseau de la machine virtuelle. Type : Compteur.
kubevirt_vmi_network_transmit_bytes_total
Renvoie la quantité totale de trafic transmise (en octets) sur le réseau de la machine virtuelle. Type : Compteur.

Exemple d'interrogation sur le trafic réseau

topk(3, sum by (name, namespace) (rate(kubevirt_vmi_network_receive_bytes_total[6m])) sum by (name, namespace) (rate(kubevirt_vmi_network_transmit_bytes_total[6m]))) > 0 1

1
Cette requête renvoie les trois machines virtuelles qui transmettent le plus de trafic réseau à chaque instant sur une période de six minutes.

14.12.3.3. Mesures de stockage

14.12.3.3.1. Trafic lié au stockage

Les requêtes suivantes permettent d'identifier les machines virtuelles qui écrivent de grandes quantités de données :

kubevirt_vmi_storage_read_traffic_bytes_total
Renvoie la quantité totale (en octets) du trafic lié au stockage de la machine virtuelle. Type : Compteur.
kubevirt_vmi_storage_write_traffic_bytes_total
Renvoie la quantité totale d'écritures de stockage (en octets) du trafic lié au stockage de la machine virtuelle. Type : Compteur.

Exemple d'interrogation sur le trafic lié au stockage

topk(3, sum by (name, namespace) (rate(kubevirt_vmi_storage_read_traffic_bytes_total[6m])) sum by (name, namespace) (rate(kubevirt_vmi_storage_write_traffic_bytes_total[6m]))) > 0 1

1
Cette requête renvoie les 3 machines virtuelles qui effectuent le plus de trafic de stockage à chaque instant sur une période de six minutes.
14.12.3.3.2. Données de l'instantané de stockage
kubevirt_vmsnapshot_disks_restored_from_source_total
Renvoie le nombre total de disques de machine virtuelle restaurés à partir de la machine virtuelle source. Type : Jauge.
kubevirt_vmsnapshot_disks_restored_from_source_bytes
Renvoie la quantité d'espace en octets restaurée à partir de la machine virtuelle source. Type : Jauge.

Exemples de requêtes de données d'instantanés de stockage

kubevirt_vmsnapshot_disks_restored_from_source_total{vm_name="simple-vm", vm_namespace="default"} 1

1
Cette requête renvoie le nombre total de disques de la machine virtuelle restaurés à partir de la machine virtuelle source.
kubevirt_vmsnapshot_disks_restored_from_source_bytes{vm_name="simple-vm", vm_namespace="default"} 1
1
Cette requête renvoie la quantité d'espace en octets restaurée à partir de la machine virtuelle source.
14.12.3.3.3. Performance des E/S

Les requêtes suivantes permettent de déterminer les performances d'E/S des périphériques de stockage :

kubevirt_vmi_storage_iops_read_total
Renvoie la quantité d'opérations d'E/S en écriture que la machine virtuelle effectue par seconde. Type : Compteur.
kubevirt_vmi_storage_iops_write_total
Renvoie la quantité d'opérations d'E/S en lecture que la machine virtuelle effectue par seconde. Type : Compteur.

Exemple de requête sur les performances des E/S

topk(3, sum by (name, namespace) (rate(kubevirt_vmi_storage_iops_read_total[6m])) sum by (name, namespace) (rate(kubevirt_vmi_storage_iops_write_total[6m]))) > 0 1

1
Cette requête renvoie les 3 machines virtuelles effectuant le plus grand nombre d'opérations d'E/S par seconde à chaque instant sur une période de six minutes.

14.12.3.4. Mesures de permutation de la mémoire invitée

Les requêtes suivantes permettent d'identifier les invités autorisés à permuter qui effectuent le plus de permutations de mémoire :

kubevirt_vmi_memory_swap_in_traffic_bytes_total
Renvoie la quantité totale (en octets) de mémoire que l'invité virtuel est en train d'échanger. Type : Jauge.
kubevirt_vmi_memory_swap_out_traffic_bytes_total
Renvoie la quantité totale (en octets) de mémoire que l'invité virtuel est en train d'échanger. Type : Jauge.

Exemple de requête de permutation de mémoire

topk(3, sum by (name, namespace) (rate(kubevirt_vmi_memory_swap_in_traffic_bytes_total[6m])) sum by (name, namespace) (rate(kubevirt_vmi_memory_swap_out_traffic_bytes_total[6m]))) > 0 1

1
Cette requête renvoie les 3 principales machines virtuelles pour lesquelles l'invité effectue le plus de permutations de mémoire à chaque instant sur une période de six minutes.
Note

La permutation de la mémoire indique que la machine virtuelle est soumise à une pression de mémoire. L'augmentation de l'allocation de mémoire de la machine virtuelle peut atténuer ce problème.

14.12.4. Mesures de migration en temps réel

Les paramètres suivants peuvent être interrogés pour connaître l'état de la migration en temps réel :

kubevirt_migrate_vmi_data_processed_bytes
La quantité de données du système d'exploitation invité (OS) qui a migré vers la nouvelle machine virtuelle (VM). Type : Jauge.
kubevirt_migrate_vmi_data_remaining_bytes
Quantité de données du système d'exploitation invité restant à migrer. Type : Jauge.
kubevirt_migrate_vmi_dirty_memory_rate_bytes
La vitesse à laquelle la mémoire devient sale dans le système d'exploitation invité. La mémoire sale est constituée de données qui ont été modifiées mais qui n'ont pas encore été écrites sur le disque. Type : Jauge.
kubevirt_migrate_vmi_pending_count
Le nombre de migrations en attente. Type : Jauge.
kubevirt_migrate_vmi_scheduling_count
Le nombre de migrations d'ordonnancement. Type : Jauge.
kubevirt_migrate_vmi_running_count
Le nombre de migrations en cours. Type : Jauge.
kubevirt_migrate_vmi_succeeded
Le nombre de migrations effectuées avec succès. Type : Jauge.
kubevirt_migrate_vmi_failed
Le nombre de migrations qui ont échoué. Type : Jauge.

14.12.5. Ressources supplémentaires

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.