Nouvelles annonces sur les technologies sans serveur et réseau ainsi que sur le RUM (Real-User Monitoring) dévoilées à la conférence Dash ! Nouvelles annonces dévoilées à la conférence Dash !

Live containers

Introduction

Les live containers de Datadog vous permettent de bénéficier d’une réelle visibilité sur l’ensemble des conteneurs de votre environnement.

Inspirés d’outils Bedrock comme htop, ctop et kubectl, les live containers vous offrent une vue d’ensemble globale de votre infrastructure de conteneurs. Leur tableau, régulièrement mis à jour, présente les métriques de ressources actualisées toutes les deux secondes, dispose d’une fonction de recherche à facettes et inclut les logs de conteneur de diffusion.

Associée à des intégrations pour Docker, Kubernetes, ECS ou d’autres technologies de conteneur, ainsi qu’à la fonction intégrée d’ajout de tags à des composants dynamiques, la vue des live containers fournit une présentation détaillée de la santé de vos conteneurs, de leur consommation en ressources, de leurs logs et de leur déploiement en temps réel :

Installation

Après avoir déployé l’Agent Docker, vous pouvez accéder aux métriques de conteneur sans avoir à effectuer la moindre configuration supplémentaire. Pour activer la collecte de logs, suivez les étapes ci-dessous :

Une fois l’Agent Datadog installé, activez la collecte de logs en modifiant le principal fichier de configuration de l’Agent. Changez les paramètres suivants :

logs_enabled: true
listeners:
  - name: docker
config_providers:
  - name: docker
    polling: true

Remarques :

  • Pour recueillir les informations relatives aux conteneurs dans l’installation standard, plutôt qu’avec l’Agent Docker, l’utilisateur dd-agent doit disposer des autorisations pour accéder à docker.sock.
  • Par défaut, les logs sont indexés. Toutefois, vous pouvez configurer des filtres d’exclusion pour bénéficier d’un contrôle précis sur l’indexation et recevoir uniquement des données Live Tail.

Suivez les instructions pour l’Agent Docker, en transmettant, en plus de tout autre paramètre personnalisé, les attributs suivants (selon les cas) :

-e DD_LOGS_ENABLED=true
-e DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true

Remarque : par défaut, les logs sont indexés. Toutefois, vous pouvez configurer des filtres d’exclusion pour bénéficier d’un contrôle précis sur l’indexation et recevoir uniquement des données Live Tail.

Dans le manifeste dd-agent.yaml utilisé pour créer le Daemonset, ajoutez les variables d’environnement, le montage de volume et le volume suivants :

  env:
    - name: DD_LOGS_ENABLED
        value: "true"
    - name: DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL
        value: "true"

  volumeMounts:
    - name: pointerdir
        mountPath: /opt/datadog-agent/run

volumes:
  - hostPath:
      path: /opt/datadog-agent/run
      name: pointerdir

Remarque :

  • Par défaut, les logs sont indexés. Toutefois, vous pouvez configurer des filtres d’exclusion pour bénéficier d’un contrôle précis sur les index et les données Live Tail uniquement.

Pour en savoir plus sur l’activation de la collecte de logs pour les intégrations, consultez la documentation à ce sujet.

Logs de conteneur

Consultez les logs de diffusion pour n’importe quel conteneur, tels que docker logs -f ou kubectl logs -f, dans Datadog. Cliquez sur un conteneur dans le tableau pour afficher davantage d’informations. Cliquez sur l’onglet Logs pour visualiser en temps réel les données de Live Tail ou les logs indexés historiques, peu importe leur date.

Live Tail

Grâce à Live Tail, tous les logs de conteneur sont diffusés. Si vous choisissez d’interrompre la diffusion, vous pouvez facilement lire le contenu des logs en cours d’écriture. Vous pouvez ensuite reprendre la diffusion.

Vous pouvez effectuer des recherches sur le contenu des logs de diffusion à l’aide d’une simple correspondance de chaîne. Pour en savoir plus sur Live Tail, consultez la documentation dédiée.

Remarque : les logs de diffusion ne sont pas persistants. Si vous saisissez une nouvelle recherche ou actualisez la page, cela efface le contenu de la diffusion.

Logs indexés

Choisissez un intervalle pour afficher les logs correspondants que vous avez choisis d’indexer et de rendre persistants. L’indexation vous permet de filtrer vos logs à l’aide de tags et de facettes. Par exemple, pour rechercher des logs affichant le statut Error, saisissez status:error dans la zone de recherche. La fonction de saisie automatique peut vous aider à trouver le tag que vous souhaitez utiliser. Les attributs clés de vos logs sont déjà stockés dans des tags, ce qui vous permet de les rechercher, filtrer et agréger en cas de besoin.

Recherche, filtrage et pivotement

Recherche textuelle

Les conteneurs sont, de par leur nature, des objets avec une très forte cardinalité. La recherche de texte flexible de Datadog cherche des correspondances dans les sous-chaînes du nom, de l’ID ou des champs d’image du conteneur.

Pour combiner plusieurs recherches textuelles au sein d’une requête complexe, vous pouvez utiliser l’un des opérateurs booléens suivants :

OpérateurDescriptionExemple
ANDIntersection : les deux termes sont inclus dans les événements sélectionnés (si aucun opérateur n’est ajouté, AND est utilisé par défaut).java AND elasticsearch
ORUnion : un des deux termes est inclus dans les événements sélectionnés.java OR python
NOT / !Exclusion : le terme suivant n’est PAS dans l’événement. Vous pouvez utiliser le mot NOT ou le caractère ! pour effectuer la même opération.java NOT elasticsearch
équivalent : java !elasticsearch

Utilisez des parenthèses pour regrouper les opérateurs. Par exemple, (NOT (elasticsearch OR kafka) java) OR python.

Tagging

Les conteneurs sont tagués avec tous les tags des hosts existants, ainsi qu’avec les métadonnées associées à chaque conteneur.

Le tag image_name est ajouté à tous les conteneurs, y compris les intégrations avec des orchestrateurs couramment utilisés, telles que ECS et Kubernetes, qui fournissent davantage de tags au niveau des conteneurs. De plus, chaque conteneur est doté d’une icône Docker, ECS ou Kubernetes afin de pouvoir identifier en quelques secondes les conteneurs orchestrés.

Les conteneurs ECS possèdent les tags suivants :

  • task_name
  • task_version
  • ecs_cluster

Les conteneurs Kubernetes possèdent les tags suivants :

  • pod_name
  • kube_pod_ip
  • kube_service
  • kube_namespace
  • kube_replica_set
  • kube_daemon_set
  • kube_job
  • kube_deployment
  • kube_cluster

Filtrage et pivotement

La capture d’écran ci-dessous illustre un système filtré de façon à obtenir un cluster Kubernetes composé de neuf nœuds. L’utilisation RSS et du processeur des conteneurs est transmise et comparée aux limites définies pour les conteneurs (le cas échéant). Dans cet exemple, il semblerait que les conteneurs de ce cluster soient en sur-approvisionnement. Vous pouvez définir des limites plus strictes et rassembler les ressources pour optimiser leur utilisation.

Les environnements de conteneur sont dynamiques et peuvent être difficiles à surveiller. La capture d’écran ci-dessous comporte une vue qui a été pivotée par kube_service et host, et filtrée par kube_namespace:default dans le but de réduire les parasites système. Vous pouvez voir où les services s’exécutent, ainsi que le degré de saturation des métriques clés :

Pour bien comprendre les changements d’utilisation des ressources entre chaque mise à jour, vous pouvez effectuer un pivotement avec les paramètres ecs_task_name et ecs_task_version d’ECS.

Nuages de points

Utilisez l’analyse de nuage de points pour comparer deux métriques entre elles, afin de mieux comprendre les performances de vos conteneurs.

Pour accéder à l’analyse de nuage de points dans la page Containers, cliquez sur le bouton Show Summary graph, puis sélectionnez l’onglet « Scatter Plot » :

Par défaut, le graphique effectue un regroupement à partir de la clé de tag short_image. La taille de chaque point dépend du nombre de conteneurs du groupe. Lorsque vous cliquez sur un point, cela affiche chaque conteneur et host qui contribue au groupe.

La requête en haut de la fenêtre vous permet de contrôler les différentes options de l’analyse de nuage de points :

  • Choisissez les métriques à afficher.
  • Choisissez la méthode d’agrégation des deux métriques.
  • Choisissez l’échelle pour l’axe des X et des Y (Linear ou Log).

Surveillance en temps réel

Lorsque vous utilisez activement la page des conteneurs, les métriques sont recueillies toutes les deux secondes. Cet aspect est très important pour les métriques hautement volatiles, telles que l’utilisation du processeur. En arrière-plan, pour le contexte historique, les métriques sont recueillies toutes les 10 secondes.

Inclure ou exclure des conteneurs

Veuillez noter que l’utilisation des live containers n’est pas mesurée. L’inclusion ou l’exclusion de conteneurs n’a donc aucune incidence sur votre facturation.

Il est possible d’inclure et/ou d’exclure des conteneurs pour la collecte en temps réel :

  • Pour exclure des conteneurs, transmettez la variable d’environnement DD_AC_EXCLUDE ou ajoutez ac_exclude: dans le principal fichier de configuration datadog.yaml.
  • Pour inclure des conteneurs, transmettez la variable d’environnement DD_AC_INCLUDE ou ajoutez ac_include: dans le principal fichier de configuration datadog.yaml.

Ces deux arguments ont pour valeur un nom d’image. Les expressions régulières sont également prises en charge.

Par exemple, pour exclure toutes les images Debian à l’exception des conteneurs dont le nom commence par frontend, ajoutez les deux lignes de configuration suivantes dans votre fichier datadog.yaml :

ac_exclude: ["image:debian"]
ac_include: ["name:frontend.*"]

Remarque : pour la version 5 de l’Agent, au lieu d’inclure les lignes ci-dessus dans votre principal fichier de configuration datadog.conf, ajoutez explicitement un fichier datadog.yaml dans /etc/datadog-agent/. En effet, l’Agent de processus exige que toutes les options de configuration se trouve à cet emplacement. Cette configuration exclut uniquement les conteneurs de la collecte en temps réel, et non de la fonction Autodiscovery.

Remarques et problèmes connus

  • Cette fonctionnalité ne prend actuellement pas en charge les conteneurs Windows.

  • La collecte de données en temps réel (2 secondes) est désactivée après 30 minutes. Pour reprendre la collecte en temps réel, actualisez la page.

  • Les réglages RBAC peuvent restreindre la collecte de métadonnées Kubernetes. Consultez les entités RBAC pour l’Agent Datadog.

  • Dans Kubernetes, la valeur de health correspond à la sonde de disponibilité des conteneurs, et non à leur sonde d’activité.

Pour aller plus loin