Containerd

Supported OS Linux Windows

Présentation

Ce check surveille le runtime du conteneur Containerd.

Implémentation

Installation

Containerd est un check de base de l’Agent Datadog. Vous devez configurer Containerd dans les fichiers datadog.yaml et containerd.d/conf.yaml.

Dans datadog.yaml, configurez votre cri_socket_path pour que l’Agent puisse interroger Containerd. Dans containerd.d/conf.yaml, configurez les paramètres d’instance du check (tel que filters) pour les événements.

Installation sur des conteneurs

Si vous utilisez l’Agent dans un conteneur et définissez la variable d’environnement DD_CRI_SOCKET_PATH sur le socket Containerd, l’intégration Containerd est automatiquement activée avec la configuration par défaut.

Par exemple, pour installer l’intégration sur Kubernetes, modifiez votre DaemonSet de façon à monter le socket Containerd du nœud host sur le conteneur de l’Agent et définissez la variable d’environnement DD_CRI_SOCKET_PATH sur le chemin de montage du DaemonSet :

Conteneur Linux
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: datadog-agent
spec:
  template:
    spec:
      containers:
        - name: datadog-agent
          # ...
          env:
            - name: DD_CRI_SOCKET_PATH
              value: /var/run/containerd/containerd.sock
          volumeMounts:
            - name: containerdsocket
              mountPath: /var/run/containerd/containerd.sock
            - mountPath: /host/var/run
              name: var-run
              readOnly: true
          volumes:
            - hostPath:
                path: /var/run/containerd/containerd.sock
              name: containerdsocket
            - hostPath:
                path: /var/run
              name: var-run

Remarque : le répertoire /var/run doit être monté à partir du host pour que l’intégration s’exécute correctement.

Conteneur Windows
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: datadog-agent
spec:
  template:
    spec:
      containers:
        - name: datadog-agent
          # ...
          env:
            - name: DD_CRI_SOCKET_PATH
              value: \\\\.\\pipe\\containerd-containerd
          volumes:
            - hostPath:
                path: \\\\.\\pipe\\containerd-containerd
              name: containerdsocket
          volumeMounts:
            - name: containerdsocket
              mountPath: \\\\.\\pipe\\containerd-containerd

Configuration

  1. Modifiez le fichier containerd.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent pour commencer à recueillir vos données de performance Containerd. Consultez le fichier d’exemple containerd.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  2. Redémarrez l’Agent.

Validation

Lancez la sous-commande status de l’Agent et cherchez containerd dans la section Checks.

Données collectées

Métriques

containerd.mem.current.usage
(gauge)
The memory usage (Linux only)
Shown as byte
containerd.mem.current.failcnt
(gauge)
The usage failcnt (Linux only)
containerd.mem.current.limit
(gauge)
The memory limit (Linux only)
Shown as byte
containerd.mem.kernel_tcp.usage
(gauge)
The kerneltcp usage (Linux only)
Shown as byte
containerd.mem.kernel_tcp.failcnt
(gauge)
The kerneltcp failcnt (Linux only)
containerd.mem.kernel_tcp.limit
(gauge)
The kerneltcp limit (Linux only)
Shown as byte
containerd.mem.kernel_tcp.max
(gauge)
The kerneltcp maximum usage (Linux only)
Shown as byte
containerd.mem.kernel.usage
(gauge)
The kernel usage (Linux only)
Shown as byte
containerd.mem.swap.usage
(gauge)
The swap usage (Linux only)
Shown as byte
containerd.mem.cache
(gauge)
The cache amount used (Linux only)
Shown as byte
containerd.mem.rss
(gauge)
The rss amount used (Linux only)
Shown as byte
containerd.mem.commit
(gauge)
The committed memory (Windows only)
Shown as byte
containerd.mem.commit_peak
(gauge)
The peak committed memory (Windows only)
Shown as byte
containerd.mem.working_set
(gauge)
The container working set usage
Shown as byte
containerd.cpu.throttled.periods
(gauge)
The total CPU throttled time (Linux only)
Shown as nanosecond
containerd.cpu.system
(gauge)
The total CPU time
Shown as nanosecond
containerd.cpu.total
(gauge)
The total CPU time
Shown as nanosecond
containerd.cpu.user
(gauge)
The total user CPU time
Shown as nanosecond
containerd.storage.read
(rate)
Read bytes (Windows only)
Shown as byte
containerd.storage.write
(rate)
Write bytes (Windows only)
Shown as byte
containerd.image.size
(gauge)
The size of the container image
Shown as byte
containerd.image.pull
(count)
The number of image pull requests
Shown as byte
containerd.proc.open_fds
(gauge)
The number of open file descriptors
Shown as file
containerd.uptime
(gauge)
Time since the container was started
Shown as second

Cette intégration fonctionne sous Linux et Windows. Toutefois, certaines métriques sont uniquement disponibles pour un seul système d’exploitation. Consultez le fichier metadata.csv pour découvrir la liste des métriques qui varient selon le système d’exploitation.

Événements

Le check Containerd peut recueillir des événements. Utilisez filters pour sélectionner les événements pertinents. Consultez le fichier d’exemple containerd.d/conf.yaml pour obtenir plus de détails.

Checks de service

containerd.health
Renvoie CRITICAL si le check de l’Agent n’est pas capable de se connecter au socket containerd qu’il surveille. Si ce n’est pas le cas, renvoie OK.
Statuses: ok, critical

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.