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).
Configuration
Installation
Le check Process est inclus avec le package 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.
- 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 - chaîne, obligatoire
## Permet d'identifier de façon unique vos métriques en leur appliquant un tag correspondant à ce nom dans Datadog.
#
- name: ssh
## @param search_string - liste de chaînes, facultatif
## Si l'un des éléments de la liste est recherché, le nombre
## total de processus correspondant parfaitement à la chaîne est renvoyé par défaut. Pour modifier ce comportement, utilisez le
## paramètre `exact_match: false`.
##
## Remarque : vous devez définir un seul des paramètres suivants pour chaque instance : search_string, pid ou pid_file.
#
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. Si la première option n'est pas envisageable, et que vous ne souhaitez pas exécuter le 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 plateformes 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/
- Redémarrez l’Agent.
Validation
Lancez la sous-commande status de l’Agent et cherchez process
dans la section Checks.
Précisions sur les métriques
Remarque : certaines métriques ne sont pas disponibles sous Linux ou OSX :
- Les métriques E/S de processus ne sont pas disponibles sous Linux ou OSX. En effet, seul le propriétaire du processus peut lire les fichiers que l’Agent doit lire (
/proc//io
). Pour en savoir plus, consultez la FAQ sur l’Agent. system.cpu.iowait
n’est pas disponible sous Windows.
Toutes les métriques sont envoyées pour chaque instance
configurée dans process.yaml et reçoivent le tag nom_processus:<nom_instance>
.
La métrique system.processes.cpu.pct
envoyée par ce check est uniquement fiable pour les processus actifs pendant plus de 30 secondes. Sa valeur ne doit pas être considérée comme exacte pour les processus actifs sur de plus courtes périodes.
Pour obtenir la liste des métriques, consultez la section Métriques.
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) | In Unix/Linux and macOS: The number of minor page faults per second for this process. Shown as occurrence |
system.processes.mem.page_faults.children_minor_faults (gauge) | In Unix/Linux and macOS: The number of minor page faults per second for children of this process. Shown as occurrence |
system.processes.mem.page_faults.major_faults (gauge) | In Unix/Linux and macOS: The number of major page faults per second for this process. Shown as occurrence |
system.processes.mem.page_faults.children_major_faults (gauge) | In Unix/Linux and macOS: 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 |
Événements
Le check Process n’inclut aucun événement.
Checks de service
process.up
Renvoie OK
si le check ne dépasse pas les seuils d’avertissement, renvoie WARNING
s’il dépasse les seuils d’avertissement et renvoie CRITICAL
s’il dépasse les seuils critiques.
Statuses: ok, warning, critical
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.