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
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 :
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/cgroupetcgroupPath - v1: de cgroup
/proc/1/root/sys/fs/cgroup/cpuetcgroupPath
- v2: de cgroup
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.statfichier dans l'objet CPU :Métriques Description v2 Source Métriques d'utilisation Utilisation totale du processeur (en nanosecondes) total=usage_usec* 1 000Fichier cpu.statPar utilisation du processeur percpu= 0 (le cgroup v2 ne fournit pas directement les données d'utilisation par processeur)Fichier cpu.statTemps UC utilisateur user=user_usec* 1 000 (en nanosecondes) Voir la remarque suivanteFichier cpu.statTemps UC système kernel=system_usec* 1 000 (en nanosecondes) Voir la remarque suivanteFichier cpu.statIndicateurs de limitation Nombre de périodes periods=nr_periodsFichier cpu.statNombre de périodes de limitation throttledPeriods=nr_throttledFichier cpu.statDurée de régulation throttledTime=throttled_usec* 1 000 (en nanosecondes)Fichier cpu.statRemarque : etsystem_usecdoiventuser_usectous deux être disponibles pour l'analyse syntaxique. Si l'un ou l'autre n'est pas disponible, le temps CPU correspondant est défini sur0.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) totalFichier cpuacct.usagePar utilisation du processeur percpuDéfinit une liste de valeurs à partir du cpuacct.usage_percpufichierTemps UC utilisateur user=user* 1 000 000 (ns)Fichier cpuacct.statTemps UC système kernel=system* 1 000 000 (ns)Fichier cpuacct.statIndicateurs de limitation Nombre de périodes periods=nr_periodsFichier cpu.statNombre de périodes de limitation throttledPeriods=nr_throttledFichier cpu.statDurée de régulation throttledTime=throttled_timeFichier cpu.stat
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.usageobjetcpuTotalUsageNanosecondscpu.usage.totalcpuSystemUsageNanosecondscpu.usage.kernelcpuUserUsageNanosecondscpu.usage.usercpuTotalUsagecpuTotalUsageNanosecondsdelta (temps total d'utilisation du processeur par le conteneur sur une fenêtre temporelle) /system delta(temps total de processeur disponible du système)cpuUserUsagecpuUserUsageNanosecondsdelta (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)cpuSystemUsagecpuSystemUsageNanosecondsdelta (temps d'utilisation du processeur par le conteneur en mode système ou en mode noyau sur une fenêtre temporelle) / (system deltatemps CPU total disponible du système)Indicateurs de limitation cpu.throttlingobjetthrottlingCountcpu.throttling.throttledPeriodsthrottlingTimecpu.throttling.throttledTimeAffichage 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 cpuTotalUsageKernel(cpu.system_usage)System CPU usage cpuSystemUsageUser(cpu.user_usage)Utilisation du processeur par l'utilisateur cpuUserUsageThrottling Count(cpu.throttling_count)Nombre de périodes de limitation throttlingCountThrottling 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 :
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/cgroupetcgroupPath - v1: de cgroup
/proc/1/root/sys/fs/cgroup/memoryetcgroupPath
- v2: de cgroup
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 usagememory.stat(file+anon)limitmemory.maxmaxmemory.peakMémoire de transfert Fichiers d'échange usagememory.swap.currentlimitmemory.swap.maxmaxmemory.swap.peakChamp de mémoire brute ( memory.raw)Fichier memory.statactiveAnonactive_anonactiveFileactive_fileinactiveAnoninactive_anoninactiveFileinactive_filetotalCachetotal_cachetotalRsstotal_rssChamps de mémoire ( memory)Fichier memory.statcachefilerssanonRemarque : 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 = 0Pour 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 usagememory.usage_in_bytesmaxmemory.max_usage_in_byteslimitmemory.limit_in_bytesfailcntmemory.failcntMémoire de transfert Fichiers d'échange usagememory.memsw.usage_in_bytesmaxmemory.memsw.max_usage_in_byteslimitmemory.memsw.limit_in_bytesfailcntmemory.memsw.failcntMémoire du noyau Fichiers Kmemory usagememory.kmem.usage_in_bytesmaxmemory.kmem.max_usage_in_byteslimitmemory.kmem.limit_in_bytesfailcntmemory.kmem.failcntMémoire d' TCP s du noyau Fichiers d' TCP de Kmemory usagememory.kmem.tcp.usage_in_bytesmaxmemory.kmem.tcp.max_usage_in_byteslimitmemory.kmem.tcp.limit_in_bytesfailcntmemory.kmem.tcp.failcntChamps de mémoire brute domaines similaires à ceux d' v2, provenant de memory.statChamps de mémoire ( memory)Fichier memory.statcachecachersstotal_rss
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.usageobjetusagememory.usage.usagemaxUsagememory.usage.maxlimitmemory.usage.limitIndicateurs bruts relatifs à la mémoire memory.rawobjetactiveAnonmemory.raw.activeAnonactiveFilememory.raw.activeFileinactiveAnonmemory.raw.inactiveAnoninactiveFilememory.raw.inactiveFileMétriques de mémoire memoryobjettotalCachememory.cachetotalRssmemory.rssAffichage 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/limitActive anonymous(memory.active_anon)activeAnonActive cache(memory.active_file)activeFileInactive anonymous(memory.inactive_anon)inactiveAnonInactive cache(memory.inactive_file)inactiveFileUsage(memory.usage)usageRSS(memory.total_rss)totalRssCache(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 :
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
- v2: s cgroup
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.statle fichier et renvoie deux listes contenant des entrées de statistiques d'E/SioServiceBytesRecursiveliste : Liste des octets de service d'E/SioServicedRecursiveliste : Liste des opérations d'E/S traitées
Mappe l'opération brute contenue dans le
io.statfichier à l'opération canonique :rbytes/rios: Lirewbytes/wios: Écrire
Remarque : cette opérationrbytes/wbytesajoute l'entrée IOStat à laIoServiceBytesRecursiveliste avec ses valeurs. Cette opérationrios/wiosajoute l'entrée IOStat à laIoServicedRecursiveliste avec ses valeurs.Pour les répertoires d' v1 s des cgroups :
- Analyse le
blkio.io_service_bytesfichier et définit directement les statistiques d'E/S en octets du service. (ioServiceBytesRecursiveliste) - Analyse le
blkio.io_servicedfichier et définit directement les statistiques d'E/S traitées (ioServicedRecursiveliste)
- Analyse le
Mise en correspondance des numéros de périphérique majeurs et mineurs avec les champs correspondants dans les objets IO stat.
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 ioServiceBytesRecursiveListe des octets de service d'E/S ioServicedRecursiveListe des périphériques d'E/S pris en charge Agrégation des
totalReadvaleurstotalWriteet de laIOServiceBytesRecursiveliste :Liste Source totalReadioServiceBytesRecursive.ioStat.value(Agrège toutes les valeurs lues)totalWriteioServiceBytesRecursive.ioStat.value(Agrège toutes les valeurs d'écriture)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.