Process
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Process

Agent Check Check de l'Agent

Supported OS: Linux Mac OS Windows

Présentation

Le check Process possède plusieurs applications.

  • Il vous permet de recueillir des métriques d’utilisation des ressources pour des processus en cours d’exécution spécifiques sur n’importe quel host (processeur, mémoire, E/S, nombre de threads, etc.).
  • Il vous aide à tirer parti des monitors de processus : vous pouvez configurer des seuils pour le nombre d’instances d’un processus spécifique à exécuter et recevoir des alertes lorsque les seuils ne sont pas atteints (voir la section Checks de service ci-dessous).

Implémentation

Installation

Le check Process est inclus avec le paquet de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur votre serveur.

Configuration

Contrairement à de nombreux checks, le check Process ne surveille aucun processus utile par défaut. Vous devez configurer les processus que vous souhaitez surveiller et la méthode à employer.

  1. Bien qu’il n’y ait pas de configuration standard par défaut, voici un exemple de configuration process.d/conf.yaml qui permet de surveiller les processus SSH/SSHD. Consultez le fichier d’exemple process.d/conf.yaml pour découvrir toutes les options de configuration disponibles :

    init_config:
    
    instances:
     ## @param name - string - required
     ## Used to uniquely identify your metrics
     ## as they are tagged with this name in Datadog.
     #
     - name: ssh
    
       ## @param search_string - list of strings - required
       ## If one of the elements in the list matches, it return the count of
       ## all the processes that match the string exactly by default.
       ## Change this behavior with the parameter `exact_match: false`.
       #
       search_string: ["ssh", "sshd"]

    Pour récupérer certaines métriques de processus, le Collector Datadog doit être exécuté avec le même utilisateur que celui du processus surveillé ou disposer des droits d’accès adéquats. Lorsque la première option n’est pas souhaitée, et afin d’éviter l’exécution du Collector Datadog en tant que root, l’option try_sudo permet au check Process d’utiliser sudo pour recueillir cette métrique. Pour l’instant, seule la métrique open_file_descriptors sur les plates-formes Unix accepte ce paramètre. Attention, cette option ne fonctionne que si les règles sudoers appropriées ont été configurées :

    dd-agent ALL=NOPASSWD: /bin/ls /proc/*/fd/
  2. Redémarrez l’Agent.

Validation

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

Données collectées

Métriques

system.processes.cpu.pct
(gauge)
The CPU utilization of a process.
Shown as percent
system.processes.cpu.normalized_pct
(gauge)
The normalized CPU utilization of a process.
Shown as percent
system.processes.involuntary_ctx_switches
(gauge)
The number of involuntary context switches performed by this process.
Shown as event
system.processes.ioread_bytes
(gauge)
The number of bytes read from disk by this process. In Windows: the number of bytes read.
Shown as byte
system.processes.ioread_bytes_count
(count)
The number of bytes read from disk by this process. In Windows: the number of bytes read.
Shown as byte
system.processes.ioread_count
(gauge)
The number of disk reads by this process. In Windows: the number of reads by this process.
Shown as read
system.processes.iowrite_bytes
(gauge)
The number of bytes written to disk by this process. In Windows: the number of bytes written by this process.
Shown as byte
system.processes.iowrite_bytes_count
(count)
The number of bytes written to disk by this process. In Windows: the number of bytes written by this process.
Shown as byte
system.processes.iowrite_count
(gauge)
The number of disk writes by this process. In Windows: the number of writes by this process.
Shown as write
system.processes.mem.page_faults.minor_faults
(gauge)
The number of minor page faults per second for this process.
Shown as occurrence
system.processes.mem.page_faults.children_minor_faults
(gauge)
The number of minor page faults per second for children of this process.
Shown as occurrence
system.processes.mem.page_faults.major_faults
(gauge)
The number of major page faults per second for this process.
Shown as occurrence
system.processes.mem.page_faults.children_major_faults
(gauge)
The number of major page faults per second for children of this process.
Shown as occurrence
system.processes.mem.pct
(gauge)
The process memory consumption.
Shown as percent
system.processes.mem.real
(gauge)
The non-swapped physical memory a process has used and cannot be shared with another process (Linux only).
Shown as byte
system.processes.mem.rss
(gauge)
The non-swapped physical memory a process has used. aka "Resident Set Size".
Shown as byte
system.processes.mem.vms
(gauge)
The total amount of virtual memory used by the process. aka "Virtual Memory Size".
Shown as byte
system.processes.number
(gauge)
The number of processes.
Shown as process
system.processes.open_file_descriptors
(gauge)
The number of file descriptors used by this process (only available for processes run as the dd-agent user)
system.processes.open_handles
(gauge)
The number of handles used by this process.
system.processes.threads
(gauge)
The number of threads used by this process.
Shown as thread
system.processes.voluntary_ctx_switches
(gauge)
The number of voluntary context switches performed by this process.
Shown as event
system.processes.run_time.avg
(gauge)
The average running time of all instances of this process
Shown as second
system.processes.run_time.max
(gauge)
The longest running time of all instances of this process
Shown as second
system.processes.run_time.min
(gauge)
The shortest running time of all instances of this process
Shown as second

Toutes les métriques sont envoyées pour chaque instance configurée dans process.yaml et reçoivent le tag nom_processus:<nom_instance>.

Événements

Le check Process n’inclut aucun événement.

Checks de service

process.up :

L’Agent envoie un check de service pour chaque instance dans process.yaml, et leur attribue le tag : process:<nom>.

Lorsqu’aucune valeur thresholds n’est spécifiée pour une instance, le check de service renvoie le statut CRITICAL (aucun processus n’est en cours d’exécution) ou OK (au moins un processus est en cours d’exécution).

Voici un exemple pour une instance avec une valeur thresholds spécifiée :

instances:
  - name: my_worker_process
    search_string: ["/usr/local/bin/worker"]
    thresholds:
      critical: [1, 7]
      warning: [3, 5]

L’Agent envoie un process.up avec le tag process:my_worker_process dont le statut est :

  • CRITICAL lorsqu’il y a moins de 1 ou plus de 7 processus worker
  • WARNING lorsqu’il y a 1, 2, 6 ou 7 processus worker
  • OK lorsqu’il y a 3, 4 ou 5 processus worker

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin

Pour mieux comprendre comment (ou pourquoi) surveiller l’utilisation des ressources de processus avec Datadog, lisez la série d’articles de blog de Datadog à ce sujet.