El check de proceso te permite:
- Recopila métricas del uso de recursos para procesos en ejecución específicos en cualquier host. Por ejemplo, CPU, memoria, E/S y número de subprocesos.
- Utiliza monitores de procesos para configurar umbrales de cuántas instancias de un proceso específico deben ejecutarse y recibe alertas cuando no se cumplen los umbrales (consulta *Checks de servicio a continuación).
Configuración
Instalación
El check de procesos está incluido en el paquete del Datadog Agent, por lo que no necesitas instalar nada más en tu servidor.
Configuración
A diferencia de muchos checks, el check de procesos no monitoriza nada útil por defecto. Debes configurar los procesos que quieres monitorizar.
Aunque no hay una configuración de check por defecto, aquí hay un ejemplo de process.d/conf.yaml
que monitoriza procesos SSH/SSHD. Para ver todas las opciones de configuración disponibles, consulta el process.d/conf.yaml de ejemplo:
init_config:
instances:
- name: ssh
search_string:
- ssh
- sshd
Nota: Asegúrate de reiniciar el Agent después de realizar cambios de configuración.
La recuperación de algunas métricas de procesos requiere que el recopilador de Datadog se ejecute como el usuario del proceso monitorizado o con acceso privilegiado. Para la métricaopen_file_descriptors
en plataformas Unix, existe una opción de configuración adicional. Configurar try_sudo
como true
en el archivo conf.yaml
permite que el El check de procesos intente utilizar sudo
para recopilar la métrica open_file_descriptors
. El uso de esta opción de configuración requiere definir reglas para sudoers apropiadas en /etc/sudoers
:
dd-agent ALL=NOPASSWD: /bin/ls /proc/*/fd/
Validación
Ejecuta el subcomando de estado del Agent y busca process
en la sección Checks.
Notas de métricas
Las siguientes métricas no están disponibles en Linux o macOS:
- Las métricas de I/O de procesos no están disponibles en Linux o macOS, ya que los archivos que lee el Agent (
/proc//io
) sólo pueden ser leídos por el propietario del proceso. Para obtener más información, lee las FAQ del Agent.
Las siguientes métricas no están disponibles en Windows:
system.cpu.iowait
system.processes.mem.page_faults.minor_faults
system.processes.mem.page_faults.children_minor_faults
system.processes.mem.page_faults.major_faults
system.processes.mem.page_faults.children_major_faults
system.processes.mem.real
Nota: Utiliza un check de WMI para reunir métricas de fallos de páginas en Windows.
Nota: En la versión 6.11 o posteriores en Windows, el Agent se ejecuta como ddagentuser
en lugar de Local System
. Debido a esto, no tiene acceso a la línea de comandos completa de los procesos que se ejecutan bajo otros usuarios y al usuario de otros procesos de usuarios. Esto provoca que las siguientes opciones de check no funcionen:
exact_match
, cuando se configura como false
user
, que permite seleccionar los procesos que pertenecen a un usuario específico
Todas las métricas se configuran por instance
en process.yaml y están etiquetados como process_name:<instance_name>
.
La métrica system.processes.cpu.pct
enviada por este check sólo es exacta en procesos que duran más
de 30 segundos. No esperes que tu valor sea exacto en procesos con duraciones más cortas.
Para ver la lista completa de métricas, consulta la sección Métricas.
Datos recopilados
Métricas
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 |
Eventos
El check de procesos no incluye eventos.
Checks de servicio
process.up
Returns OK if the check is within the warning thresholds, CRITICAL if it’s outside of the critical thresholds, and WARNING if it’s outside of the warning thresholds.
Statuses: ok, warning, critical
Solucionar problemas
¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.
Referencias adicionales
Para hacerse una mejor idea de cómo (o por qué) monitorizar el consumo de recursos de los proceso con Datadog, consulta esta serie de entradas de blog.