Passer au contenu principal
Les métriques d’hôte pour les systèmes conteneurisés sont entièrement prises en charge.
Avertissement : Pour obtenir des métriques précises de vos conteneurs, des limites de conteneur sont requises pour vos conteneurs surveillés. Consultez la section limites des conteneurs pour plus d’informations.
Note : Bien que Heroku s’exécute également sur un système conteneurisé (LXC), nous ne prenons pas en charge les métriques d’hôte de la même manière. Veuillez plutôt consulter la section prise en charge de Heroku.
Note : Cette page fait partie de la section des métriques d’hôte.

Limites des conteneurs

Pour que les métriques d’hôte des conteneurs soient précises, des limites doivent être définies pour chaque conteneur. Cela signifie configurer votre conteneur de manière à avoir un nombre limité de CPU et une mémoire allouée. Sans ces limites, le conteneur rapporte la valeur maximale possible de ces métriques, ce qui fait que l’hôte rapporte par exemple des téraoctets de mémoire disponible. Un conteneur sans swap configuré, ou non pris en charge sur le système hôte, rapportera une valeur 0. Pour plus d’informations sur la façon de limiter le CPU et la mémoire de votre conteneur, veuillez lire la documentation sur :

Métriques prises en charge

Sur les systèmes qui exposent le système de fichiers virtuel /sys/fs, les métriques suivantes sont prises en charge.
MétriqueDescription
CPU usageUser et system en pourcentages.
En savoir plus sur les métriques CPU dans notre article académie.
Load averageCharge moyenne sur 1 minute sur l’hôte.
Memory usageMémoire disponible, libre et utilisée. Inclut également swap total et swap utilisé.
Disk usagePourcentage utilisé de chaque disque.
Disk IODébit des données lues et écrites sur chaque disque.
Network trafficDébit des données reçues et transmises via chaque interface réseau.

À propos des métriques CPU

En résumé :
  • AppSignal rapporte les mêmes métriques que la commande docker stats, mais rapportées comme une moyenne minute par minute.
  • L’utilisation CPU rapportée peut dépasser 100 %. 100 % équivaut à 1 cœur de CPU virtuel complet.
  • Les limites des conteneurs sont recommandées pour équilibrer correctement les ressources CPU disponibles entre les conteneurs.
  • Lorsque plusieurs conteneurs sur le même système hôte partagent les ressources CPU, même avec des limites de conteneurs, les conteneurs qui utilisent plus de CPU peuvent impacter négativement l’utilisation CPU rapportée pour les autres conteneurs.
Les métriques CPU des conteneurs fonctionnent un peu différemment des métriques CPU normales. Elles sont affectées par les limites des conteneurs et par le nombre d’autres conteneurs actifs sur le système. Cela s’explique par le fait qu’ils partagent les ressources du système de conteneurs. Contrairement aux métriques d’hôte normales, l’utilisation CPU peut dépasser 100 %. Cela s’explique par le fait qu’un conteneur peut avoir plus d’un cœur de CPU virtuel à sa disposition. Chaque cœur complet équivaut à 100 %. Si un conteneur dispose de trois cœurs, par exemple, le maximum est de 300 %. D’autres conteneurs sur le système peuvent avoir un impact sur le temps CPU total disponible pour le conteneur. Les limites aideront à maintenir un meilleur équilibre de l’utilisation CPU entre les conteneurs afin que les moyennes fluctuent moins en fonction des voisins occupés. Si tous les conteneurs partagent toutes les ressources CPU du système hôte, l’utilisation sur un hôte peut impacter négativement les cœurs de CPU virtuels disponibles sur un autre. Par exemple : Nous avons un système Docker sur notre machine hôte qui dispose de 3 cœurs de CPU virtuels. Nous démarrons ensuite les conteneurs A, B et C sans aucune limite CPU spécifique.
  • Dans le scénario où le conteneur A utilise au maximum ses cœurs de CPU disponibles, et où les autres conteneurs B et C sont au repos à 0 %, cela sera rapporté comme une utilisation CPU de 300 % pour le conteneur A. Ce qui correspond au temps CPU total disponible sur le système de conteneurs de l’hôte.
  • Lorsque les trois conteneurs utilisent tous leurs cœurs de CPU disponibles au maximum, cela sera rapporté comme une utilisation CPU de 100 % pour chaque conteneur, car les ressources sont partagées équitablement entre eux.