Surveillance de CRI-O

Le capteur « CRI-O » est automatiquement déployé et installé une fois que vous avez installé l'agent « Instana ».

Introduction

Instana détecte et surveille automatiquement les conteneurs d' CRI-O s afin de vous fournir des informations en temps réel sur les métadonnées (étiquettes), les métriques et toutes les technologies prises en charge exécutées au sein de chaque conteneur détecté.

En plus de surveiller l'état de chaque conteneur et de recevoir des alertes en cas de problème, vous pouvez également activer la découverte de services afin d'exploiter toutes les informations relatives à vos conteneurs.

Informations de support

Pour vous assurer que le capteur d' CRI-O s est compatible avec votre configuration actuelle, consultez les sections d'informations d'assistance suivantes :

Versions prises en charge et politique d'assistance

Le tableau suivant présente la dernière version prise en charge et la politique d'assistance :

Technologie Politique de support Dernière version technologique Dernière version prise en charge
CRI-O 45 jours 1.36.1 1.36.1

Pour plus d'informations sur la politique d'assistance, consultez la section « Stratégie d'assistance pour les capteurs ».

Prérequis

Pour la surveillance de CRI-O, assurez-vous que les exigences suivantes en matière de version sont respectées :

  • Instana agent : 1.2.19 ou version ultérieure
  • Capteur CRI-O : 1.0.15 ou version ultérieure

Configuration de la surveillance d' CRI-O

L'agent surveille nativement CRI-O; la configuration est facultative.

Configuration de la fréquence d'interrogation

Remarque : les capteurs Instana, CRI-O, 1.0.16 et les versions ultérieures permettent de configurer la fréquence d'interrogation afin de réduire le volume de données collectées. Cette fonctionnalité est prise en charge sur le backend Instana auto-hébergé à partir de la version 311.

Vous pouvez configurer la fréquence à laquelle l' Instana interroge CRI-O pour collecter des données et des métriques en utilisant le poll_rate paramètre dans le fichier de configuration.yaml l'agent, comme le montre l'exemple suivant :

com.instana.plugin.crio:
  poll_rate: 1 # values are in seconds. Default value is 1 second.

Collecte des métriques

Pour obtenir un aperçu de l'utilisation du processeur et de la mémoire de vos conteneurs, activez l'option « Aperçu des métriques » sur la carte de l'infrastructure. Vous pouvez également utiliser la fonctionnalité Dynamic Focus pour identifier et isoler certaines parties de votre infrastructure dans le contexte de vos conteneurs.

Par défaut, les métriques CRI-O sont collectées toutes les 10 secondes. Cet intervalle peut être configuré dans le fichier de configuration d'agent <agent_install_dir>/etc/instana/configuration.yml:

com.instana.plugin.crio:
  stats:
    interval: 10
 

Sur le tableau de bord du conteneur CRI-O, les paramètres de configuration et les indicateurs de performance du conteneur s'affichent.

Mettre les conteneurs en pause

Le conteneur pause est un conteneur qui contient l'espace de nom du réseau pour le pod. Kubernetes crée des conteneurs de pause pour acquérir l'adresse IP de chaque pod et configurer l'espace de nom réseau pour tous les autres conteneurs qui rejoignent ce pod.

Les conteneurs d'infrastructure (pause) sont exclus de la surveillance d'infrastructure par défaut pour les raisons suivantes:

  • Le nombre de conteneurs surveillés dans un environnement est doublé lorsqu'ils sont inclus. Cette exclusion peut réduire les coûts liés à la surveillance de l' Instana.
  • La surveillance des conteneurs de pause n'apporte pas beaucoup d'informations sur le niveau d'infrastructure car ils agissent comme des conteneurs auxiliaires du réseau sidecar.

Données de configuration

Configuration Description
Id L'identifiant du conteneur
Nom Le nom du conteneur
Image Le nom de l'image « CRI-O »
Adresse IP L'adresse IP du conteneur
Créé L'horodatage de création du conteneur
Version de CRI-O Numéro de version de l'environnement d'exécution d' CRI-O

Métriques de performance

Pour collecter les indicateurs de performance, exécutez la runc commande.

Le tableau suivant résume les indicateurs d'utilisation du processeur et de la mémoire :

Métrique Description Point de données
% total d'UC Pourcentage total d'utilisation du processeur Clé totale renvoyée dans l'objetcpu.usage
Utilisation de la mémoire Utilisation totale de la mémoire Clé d'utilisation renvoyée dans l'objetmemory.raw
% d'utilisation de la mémoire Utilisation totale de la mémoire en pourcentage memory.usage Calculé à partir desmemory.total objets

Collecte des métriques du processeur

CRI-O Les capteurs gèrent la collecte des métriques et transmettent l'analyse de l'utilisation du processeur du cgroup à l'agent. L'analyseur lit les fichiers de statistiques du processeur à partir des chemins d'accès aux répertoires cgroup correspondants.

Une fois l'analyse terminée, le capteur « CRI-O » renvoie un objet CPU contenant les métriques du processeur.

Les étapes suivantes décrivent le processus de collecte et d'analyse des métriques du processeur dans l' CRI-O :

  1. Identification des chemins d'accès aux répertoires cgroup : l'agent identifie la version du cgroup ( v1 ou v2 ) ainsi que les chemins d'accès aux répertoires cgroup correspondants en fonction du processus du système d'exploitation :

    • v2: de cgroup /proc/1/root/sys/fs/cgroup et cgroupPath
    • v1: de cgroup /proc/1/root/sys/fs/cgroup/cpu et cgroupPath
  2. Analyse des statistiques CPU pour les répertoires cgroup ( v2 et v1 ) : l'analyseur lit les fichiers CPU à partir des chemins d'accès respectifs des répertoires cgroup.

    • Pour les répertoires d' v2 s des cgroups :

      Le tableau suivant répertorie les indicateurs d'utilisation et de limitation qui sont renseignés à partir du cpu.stat fichier dans l'objet CPU :

      Métriques Description v2 Source
      Métriques d'utilisation Utilisation totale du processeur (en nanosecondes) total =usage_usec * 1 000 Fichier cpu.stat
      Par utilisation du processeur percpu = 0 (le cgroup v2 ne fournit pas directement les données d'utilisation par processeur) Fichier cpu.stat
      Temps UC utilisateur user =user_usec * 1 000 (en nanosecondes) Voir la remarque suivante Fichier cpu.stat
      Temps UC système kernel =system_usec * 1 000 (en nanosecondes) Voir la remarque suivante Fichier cpu.stat
      Indicateurs de limitation Nombre de périodes periods =nr_periods Fichier cpu.stat
      Nombre de périodes de limitation throttledPeriods =nr_throttled Fichier cpu.stat
      Durée de régulation throttledTime =throttled_usec * 1 000 (en nanosecondes) Fichier cpu.stat
      Remarque : et system_usec doivent user_usec tous deux être disponibles pour l'analyse syntaxique. Si l'un ou l'autre n'est pas disponible, le temps CPU correspondant est défini sur 0.
    • Pour les répertoires d' v1 s des cgroups :

      Le tableau suivant répertorie les indicateurs d'utilisation et de régulation pour l' v1 de cgroup dans l'objet CPU :

      Métriques Description v1 Source
      Métriques d'utilisation Utilisation totale du processeur (en nanosecondes) total Fichier cpuacct.usage
      Par utilisation du processeur percpu Définit une liste de valeurs à partir ducpuacct.usage_percpu fichier
      Temps UC utilisateur user =user * 1 000 000 (ns) Fichier cpuacct.stat
      Temps UC système kernel =system * 1 000 000 (ns) Fichier cpuacct.stat
      Indicateurs de limitation Nombre de périodes periods =nr_periods Fichier cpu.stat
      Nombre de périodes de limitation throttledPeriods =nr_throttled Fichier cpu.stat
      Durée de régulation throttledTime =throttled_time Fichier cpu.stat
  3. Mise à jour et renvoi des métriques du processeur :

    Le tableau suivant présente une correspondance complète entre les indicateurs CPU et leurs objets source respectifs :

    Métriques d'unité centrale Objet source
    Indicateurs d'utilisation du processeur cpu.usage objet
    cpuTotalUsageNanoseconds cpu.usage.total
    cpuSystemUsageNanoseconds cpu.usage.kernel
    cpuUserUsageNanoseconds cpu.usage.user
    cpuTotalUsage cpuTotalUsageNanoseconds delta (temps total d'utilisation du processeur par le conteneur sur une fenêtre temporelle) /system delta (temps total de processeur disponible du système)
    cpuUserUsage cpuUserUsageNanoseconds delta (temps d'utilisation du processeur par le conteneur en mode utilisateur sur une fenêtre temporelle) /system delta (temps CPU total disponible du système)
    cpuSystemUsage cpuSystemUsageNanoseconds delta (temps d'utilisation du processeur par le conteneur en mode système ou en mode noyau sur une fenêtre temporelle) / (system delta temps CPU total disponible du système)
    Indicateurs de limitation cpu.throttling objet
    throttlingCount cpu.throttling.throttledPeriods
    throttlingTime cpu.throttling.throttledTime
  4. Affichage des indicateurs de CPU dans l'interface utilisateur d' Instana depuis le backend :

    Le tableau suivant récapitule les indicateurs CPU affichés dans l'interface utilisateur d' Instana :

    Métriques d'unité centrale Description Valeur source
    Total (cpu.total_usage) Utilisation totale de l'UC cpuTotalUsage
    Kernel (cpu.system_usage) System CPU usage cpuSystemUsage
    User (cpu.user_usage) Utilisation du processeur par l'utilisateur cpuUserUsage
    Throttling Count (cpu.throttling_count) Nombre de périodes de limitation throttlingCount
    Throttling Time (cpu.throttling_time) Durée de régulation throttlingTime

Collecte des indicateurs de mémoire

CRI-O Les capteurs gèrent la collecte des métriques et transmettent l'analyse de la mémoire du cgroup à l'agent. L'analyseur de mémoire lit les fichiers de mémoire à partir des chemins d'accès respectifs des répertoires cgroup. Une fois l'analyse terminée, le capteur « CRI-O » renvoie un objet mémoire contenant les métriques de mémoire.

Les étapes suivantes décrivent le processus de collecte et d'analyse des métriques de mémoire dans l' CRI-O :

  1. Identification des chemins d'accès aux répertoires cgroup : l'agent identifie la version du cgroup ( v1 ou v2 ) ainsi que les chemins d'accès aux répertoires cgroup correspondants en fonction du processus du système d'exploitation :

    • v2: de cgroup /proc/1/root/sys/fs/cgroup et cgroupPath
    • v1: de cgroup /proc/1/root/sys/fs/cgroup/memory et cgroupPath
  2. Analyse des statistiques de mémoire pour les répertoires cgroup : l'analyseur lit les fichiers de mémoire à partir des chemins d'accès respectifs des répertoires cgroup.

    • Pour les répertoires d' v2 s des cgroups :

      Le tableau suivant présente une correspondance complète entre les indicateurs de mémoire et leurs fichiers source respectifs :

      Métriques de mémoire Fichier source
      Mémoire de base Fichiers de mémoire de base
      usage memory.stat (file +anon)
      limit memory.max
      max memory.peak
      Mémoire de transfert Fichiers d'échange
      usage memory.swap.current
      limit memory.swap.max
      max memory.swap.peak
      Champ de mémoire brute (memory.raw) Fichier memory.stat
      activeAnon active_anon
      activeFile active_file
      inactiveAnon inactive_anon
      inactiveFile inactive_file
      totalCache total_cache
      totalRss total_rss
      Champs de mémoire (memory) Fichier memory.stat
      cache file
      rss anon
      Remarque : Remarques : Pour des raisons de compatibilité avec v1, la mémoire d'échange combinée est calculée en additionnant la mémoire de base et la mémoire d'échange : swap.usage = Utilisation de la mémoire de base + swap.usage. swap.limit = Limite de mémoire de base + swap.limit swap.max = 0
    • Pour les répertoires d' v1 s des cgroups :

      Le tableau suivant présente une correspondance complète entre les indicateurs de mémoire et leurs fichiers source respectifs :

      Métriques de mémoire Fichier source
      Mémoire de base Fichiers de mémoire de base
      usage memory.usage_in_bytes
      max memory.max_usage_in_bytes
      limit memory.limit_in_bytes
      failcnt memory.failcnt
      Mémoire de transfert Fichiers d'échange
      usage memory.memsw.usage_in_bytes
      max memory.memsw.max_usage_in_bytes
      limit memory.memsw.limit_in_bytes
      failcnt memory.memsw.failcnt
      Mémoire du noyau Fichiers Kmemory
      usage memory.kmem.usage_in_bytes
      max memory.kmem.max_usage_in_bytes
      limit memory.kmem.limit_in_bytes
      failcnt memory.kmem.failcnt
      Mémoire d' TCP s du noyau Fichiers d' TCP de Kmemory
      usage memory.kmem.tcp.usage_in_bytes
      max memory.kmem.tcp.max_usage_in_bytes
      limit memory.kmem.tcp.limit_in_bytes
      failcnt memory.kmem.tcp.failcnt
      Champs de mémoire brute domaines similaires à ceux d' v2, provenant dememory.stat
      Champs de mémoire (memory) Fichier memory.stat
      cache cache
      rss total_rss
  3. Mise à jour et renvoi des indicateurs de mémoire :

    Le tableau suivant met en correspondance les indicateurs de mémoire avec leurs objets sources respectifs :

    Indicateur de mémoire Objet source
    Indicateurs d'utilisation de la mémoire memory.usage objet
    usage memory.usage.usage
    maxUsage memory.usage.max
    limit memory.usage.limit
    Indicateurs bruts relatifs à la mémoire memory.raw objet
    activeAnon memory.raw.activeAnon
    activeFile memory.raw.activeFile
    inactiveAnon memory.raw.inactiveAnon
    inactiveFile memory.raw.inactiveFile
    Métriques de mémoire memory objet
    totalCache memory.cache
    totalRss memory.rss
  4. Affichage des indicateurs de mémoire dans l'interface utilisateur d' Instana depuis le backend :

    Les indicateurs de mémoire suivants s'affichent dans l'interface utilisateur d' Instana :

    Métrique Valeur source
    Memory Total RSS% (memory.total_rss_percent) total_rss/limit
    Active anonymous (memory.active_anon) activeAnon
    Active cache (memory.active_file) activeFile
    Inactive anonymous (memory.inactive_anon) inactiveAnon
    Inactive cache (memory.inactive_file) inactiveFile
    Usage (memory.usage) usage
    RSS (memory.total_rss) totalRss
    Cache (memory.total_cache) totalCache

Collecte des métriques d'E/S par blocs

CRI-O Les capteurs gèrent la collecte des métriques et transmettent l'analyse du cgroup blk-io à l'agent. L'analyseur Block IO lit les fichiers de statistiques blk-io à partir des chemins d'accès aux répertoires cgroup correspondants. Une fois l'analyse terminée, le capteur « CRI-O » renvoie un objet Blkio contenant les statistiques d'E/S.

Les étapes suivantes décrivent le processus de collecte et d'analyse des métriques d'E/S par blocs dans l' CRI-O :

  1. Identification des chemins d'accès aux répertoires cgroup : l'agent identifie la version du cgroup ( v1 ou v2 ) ainsi que les chemins d'accès aux répertoires cgroup correspondants en fonction du processus du système d'exploitation :

    • v2: s cgroup /proc/1/root/sys/fs/cgroup + cgroupPath
    • v1: s cgroup /proc/1/root/sys/fs/cgroup/blkio + cgroupPath
  2. Analyse des statistiques d'E/S bloc pour les répertoires cgroup : l'analyseur lit les fichiers d'E/S bloc à partir des chemins d'accès respectifs des répertoires cgroup.

    • Pour les répertoires d' v2 s des cgroups :

      • Lit io.stat le fichier et renvoie deux listes contenant des entrées de statistiques d'E/S

        • ioServiceBytesRecursive liste : Liste des octets de service d'E/S
        • ioServicedRecursive liste : Liste des opérations d'E/S traitées
      • Mappe l'opération brute contenue dans le io.stat fichier à l'opération canonique :

        • rbytes/rios: Lire
        • wbytes/wios: Écrire
      Remarque : cette opération rbytes/wbytes ajoute l'entrée IOStat à la IoServiceBytesRecursive liste avec ses valeurs. Cette opération rios/wios ajoute l'entrée IOStat à la IoServicedRecursive liste avec ses valeurs.
    • Pour les répertoires d' v1 s des cgroups :

      • Analyse le blkio.io_service_bytes fichier et définit directement les statistiques d'E/S en octets du service. (ioServiceBytesRecursive liste)
      • Analyse le blkio.io_serviced fichier et définit directement les statistiques d'E/S traitées (ioServicedRecursive liste)
  3. Mise en correspondance des numéros de périphérique majeurs et mineurs avec les champs correspondants dans les objets IO stat.

  4. Renvoyer à l'agent un objet Blkio contenant deux listes d'entrées de statistiques d'E/S, comprenant les champs major, minor, operation et values :

    Liste Description
    ioServiceBytesRecursive Liste des octets de service d'E/S
    ioServicedRecursive Liste des périphériques d'E/S pris en charge
  5. Agrégation des totalRead valeurs totalWrite et de la IOServiceBytesRecursive liste :

    Liste Source
    totalRead ioServiceBytesRecursive.ioStat.value (Agrège toutes les valeurs lues)
    totalWrite ioServiceBytesRecursive.ioStat.value (Agrège toutes les valeurs d'écriture)
  6. Affichage des indicateurs d'E/S par blocs dans l'interface utilisateur d' Instana depuis le backend : Le tableau suivant présente les indicateurs d'E/S par blocs qui s'affichent dans l'interface utilisateur d' Instana :

    Métrique Valeur source
    Lire (blkio.blk_read) totalRead
    Écrire (blkio.blk_write) totalWrite

Signatures d'intégrité

Pour chaque capteur, il existe une base de connaissances des signatures d'intégrité qui sont évaluées en permanence par rapport aux métriques entrantes et qui sont utilisées pour traiter les problèmes ou les incidents en fonction de l'impact sur l'utilisateur.

Les événements intégrés déclenchent des problèmes ou des incidents en fonction de signatures de santé défaillantes sur des entités, tandis que les événements personnalisés déclenchent des problèmes ou des incidents en fonction des seuils d'une métrique spécifique à une entité donnée.

Pour plus d'informations sur l'événement intégré pour le détecteur CRI-O , voir la référence des événements intégrés.

Widget « Journaux »

Le capteur « CRI-O » ne prend pas en charge la collecte de journaux de manière native. Instana recommande de suivre les instructions fournies dans les documents « Collecting Kubernetes » et « Red Hat OpenShift logs » pour déployer le collecteur OpenTelemetry afin de collecter les journaux des conteneurs CRI-O. Pour associer les journaux à des conteneurs CRI-O spécifiques, ajoutez l'attribut container.runtime comme indiqué dans les instructions fournies via le lien.