Containerd

Supported OS Linux Windows

Présentation

Ce check surveille le runtime du conteneur Containerd.

Configuration

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.hugetlb.failcnt
(gauge)
The hugetlb failcnt (Linux only)
containerd.hugetlb.max
(gauge)
The hugetlb maximum usage (Linux only)
Shown as byte
containerd.hugetlb.usage
(gauge)
The hugetlb usage (Linux only)
Shown as byte
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.current.max
(gauge)
The memory maximum usage (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.kernel.failcnt
(gauge)
The kernel failcnt (Linux only)
containerd.mem.kernel.limit
(gauge)
The kernel limit (Linux only)
Shown as byte
containerd.mem.kernel.max
(gauge)
The kernel maximum usage (Linux only)
Shown as byte
containerd.mem.swap.usage
(gauge)
The swap usage (Linux only)
Shown as byte
containerd.mem.swap.failcnt
(gauge)
The swap failcnt (Linux only)
containerd.mem.swap.limit
(gauge)
The swap limit (Linux only)
Shown as byte
containerd.mem.swap.max
(gauge)
The swap maximum 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.rsshuge
(gauge)
The rss_huge amount used (Linux only)
Shown as byte
containerd.mem.dirty
(gauge)
The dirty amount (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.private_working_set
(gauge)
The private working set usage (Windows only)
Shown as byte
containerd.cpu.throttled.periods
(rate)
The total CPU throttled time (Linux only)
Shown as nanosecond
containerd.cpu.system
(rate)
The total CPU time
Shown as nanosecond
containerd.cpu.total
(rate)
The total CPU time
Shown as nanosecond
containerd.cpu.user
(rate)
The total user CPU time
Shown as nanosecond
containerd.blkio.merged_recursive
(rate)
The total number of bios/requests merged into requests belonging to this cgroup (Linux only)
containerd.blkio.queued_recursive
(rate)
The total number of requests queued up at any given instant for this cgroup (Linux only)
containerd.blkio.sectors_recursive
(rate)
The number of sectors transferred to/from disk by the group (Linux only)
containerd.blkio.service_recursive_byte
(rate)
The number of bytes transferred to/from the disk by the group (Linux only)
Shown as byte
containerd.blkio.time_recursive
(rate)
The disk time allocated to cgroup per device in milliseconds (Linux only)
Shown as nanosecond
containerd.blkio.serviced_recursive
(rate)
The number of IOs (bio) issued to the disk by the group (Linux only)
containerd.blkio.wait_time_recursive
(rate)
The total amount of time the IOs for this cgroup spent waiting in the scheduler queues for service (Linux only)
Shown as nanosecond
containerd.blkio.service_time_recursive
(rate)
The total amount of time between request dispatch and request completion for the IOs done by this cgroup (Linux only)
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.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.