Supported OS Linux Mac OS Windows

Versión de la integración5.1.0

Información general

El check de procesos 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 sobre cuántas instancias de un proceso específico deben ejecutarse y recibir alertas cuando los umbrales no se cumplen (consulta Checks de servicio más abajo).

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.

Si bien no existe una configuración de check estándar por defecto, aquí hay un ejemplo de process.d/conf.yaml que monitoriza los procesos SSH/SSHD. Consulta el ejemplo process.d/conf.yaml para conocer todas las opciones de configuración disponibles:

init_config:
instances:
  - name: ssh
    search_string:
      - ssh
      - sshd

Nota: Después de realizar cambios en la configuración, asegúrate de reiniciar el Agent.

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 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 E/S del proceso no están disponibles en Linux o macOS, ya que los archivos que lee el Agent (/proc/<PID>/io) solo son legibles 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 recopilar 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 los procesos de otros usuarios. Esto provoca que las siguientes opciones del 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 solo es precisa para los procesos que viven más de de 30 segundos. No esperes que su valor sea exacto para procesos de vida más corta.

Para ver la lista completa de métricas, consulta la sección Métricas.

Datos recopilados

Métricas

system.processes.cpu.pct
(gauge)
Uso de CPU de un proceso.
Se muestra como porcentaje
system.processes.cpu.normalized_pct
(gauge)
Uso normalizado de CPU de un proceso.
Se muestra como porcentaje
system.processes.involuntary_ctx_switches
(gauge)
Número de cambios de contexto involuntarios realizados por este proceso.
Se muestra como evento
system.processes.ioread_bytes
(gauge)
Número de bytes leídos del disco por este proceso. En Windows: el número de bytes leídos.
Se muestra como bytes
system.processes.ioread_bytes_count
(count)
Número de bytes leídos del disco por este proceso. En Windows: el número de bytes leídos.
Se muestra como bytes
system.processes.ioread_count
(gauge)
Número de lecturas del disco realizadas por este proceso. En Windows: el número de lecturas realizadas por este proceso.
Se muestra como lectura
system.processes.iowrite_bytes
(gauge)
Número de bytes escritos en el disco por este proceso. En Windows: el número de bytes escritos por este proceso.
Se muestra como bytes
system.processes.iowrite_bytes_count
(count)
Número de bytes escritos en el disco por este proceso. En Windows: el número de bytes escritos por este proceso.
Se muestra como bytes
system.processes.iowrite_count
(gauge)
Número de escrituras en el disco realizadas por este proceso. En Windows: el número de escrituras de este proceso.
Se muestra como escritura
system.processes.mem.page_faults.minor_faults
(gauge)
En Unix/Linux y macOS: el número de fallos menores de página por segundo para este proceso.
Se muestra como caso
system.processes.mem.page_faults.children_minor_faults
(gauge)
En Unix/Linux y macOS: el número de fallos menores de página por segundo por cada elemento secundario para este proceso.
Se muestra como caso
system.processes.mem.page_faults.major_faults
(gauge)
En Unix/Linux y macOS: el número de fallos mayores de página por segundo para este proceso.
Se muestra como caso
system.processes.mem.page_faults.children_major_faults
(gauge)
En Unix/Linux y macOS: el número de fallos mayores de página por segundo por cada elemento secundario para este proceso.
Se muestra como caso
system.processes.mem.pct
(gauge)
Consumo de memoria del proceso.
Se muestra como porcentaje
system.processes.mem.real
(gauge)
Memoria física no intercambiada que un proceso ha utilizado y no puede ser compartida con otro proceso (solo Linux).
Se muestra como bytes
system.processes.mem.rss
(gauge)
Memoria física no intercambiada que un proceso ha utilizado. también conocido como “Tamaño del conjunto residente”.
Se muestra como bytes
system.processes.mem.vms
(gauge)
Cantidad total de memoria virtual utilizada por el proceso. también conocido como “Tamaño de memoria virtual”.
Se muestra como bytes
system.processes.number
(gauge)
Número de procesos.
Se muestra como proceso
system.processes.open_file_descriptors
(gauge)
Número de descriptores de archivos utilizados por este proceso (solo disponible para procesos ejecutados como usuario dd-agent)
system.processes.open_handles
(gauge)
Número de manejadores utilizados por este proceso.
system.processes.threads
(gauge)
Número de subprocesos utilizados por este proceso.
Se muestra como subproceso
system.processes.voluntary_ctx_switches
(gauge)
Número de cambios de contexto voluntarios realizados por este proceso.
Se muestra como evento
system.processes.run_time.avg
(gauge)
Tiempo medio de ejecución de todas las instancias de este proceso
Se muestra como segundos
system.processes.run_time.max
(gauge)
Tiempo más largo de ejecución de todas las instancias de este proceso
Se muestra como segundos
system.processes.run_time.min
(gauge)
Tiempo más corto de ejecución de todas las instancias de este proceso
Se muestra como segundos

Eventos

El check de procesos no incluye eventos.

Checks de servicio

process.up

Devuelve OK si el check está dentro de los umbrales de advertencia, CRITICAL si está fuera de los umbrales críticos y WARNING si está fuera de los umbrales de advertencia.

Estados: ok, advertencia, crítico

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.

Referencias adicionales

Para hacerte una mejor idea de cómo (o por qué) monitorizar el consumo de recursos por parte de los proceso con Datadog, consulta esta serie de entradas de blog.