Recopilación de las métricas de procesos con el complemento procstat - Amazon CloudWatch

Recopilación de las métricas de procesos con el complemento procstat

El complemento procstat permite recopilar las métricas de procesos individuales. Es compatible con los servidores Linux y con servidores con versiones compatibles de Windows Server.

Configuración del agente de CloudWatch para procstat

Para utilizar el complemento procstat, agregue una sección procstat en la sección metrics_collected del archivo de configuración del agente de CloudWatch. Existen tres formas de especificar los procesos para supervisar. Puede utilizar solo uno de estos métodos, pero puede utilizar ese método para especificar uno o varios procesos para supervisar.

  • pid_file: selecciona los procesos por los nombres de los archivos de número de identificación de proceso (PID) que estos procesos crean.

  • exe: selecciona los procesos que tienen nombres de proceso que coinciden con la cadena que especifique, utilizando reglas coincidentes con expresiones regulares. La coincidencia es una coincidencia «contains» (contiene), lo que significa que si especifica agent como el término con el que coincidir, procesa con nombres como cloudwatchagent coincidir con el término. Para obtener más información, consulte Sintaxis.

  • pattern: selecciona los procesos por las líneas de comandos utilizadas para iniciar los procesos. Se seleccionan todos los procesos que tienen líneas de comandos que coinciden con la cadena especificada con reglas de coincidencia de expresiones regulares. Se comprueba toda la línea de comandos, incluidos parámetros y opciones utilizados con el comando.

    La coincidencia es una coincidencia «contains» (contiene), lo que significa que si especifica -c como el término para coincidir, procesa con parámetros como -config coincidir con el término.

  • drop_original_metrics: opcional. Si utiliza el campo aggregation_dimensions de la sección metrics para agrupar las métricas en resultados agregados, de forma predeterminada, el agente envía tanto las métricas agregadas como las métricas originales, separadas para cada valor de la dimensión. Si no desea que las métricas originales se envíen a CloudWatch, puede especificar este parámetro con una lista de métricas. No se notifican a CloudWatch las métricas especificadas junto con este parámetro por dimensión. En su lugar, solo se registran las métricas agregadas. Esto reduce la cantidad de métricas que recopila el agente, lo que reduce los costes.

El agente CloudWatch utiliza solo uno de estos métodos, incluso si incluye más de una de las secciones anteriores. Si especifica más de una sección, el agente de CloudWatch utiliza la sección pid_file en caso de que esté presente. En caso contrario, utiliza la sección exe.

En servidores Linux las cadenas que especifique en una sección pattern o exe se evalúan como expresiones regulares. En servidores que ejecutan Windows Server, estas cadenas se evalúan como consultas de WMI. Un ejemplo sería pattern: "%apache%". Para obtener más información, consulte Operador LIKE.

Independientemente del método que utilice, puede incluir un parámetro metrics_collection_interval opcional, que especifique la frecuencia en segundos para recopilar dichas métricas. Si omite este parámetro, se utiliza el valor predeterminado de 60 segundos.

En los ejemplos de las siguientes secciones, la sección procstat es la única sección incluida en la sección metrics_collected del archivo de configuración del agente. Los archivos de configuración reales también incluyen otras secciones en metrics_collected. Para obtener más información, consulte Cree o edite de forma manual el archivo de configuración del agente de CloudWatch.

Configuración con pid_file

En el siguiente ejemplo, la sección procstat supervisa los procesos que crean los archivos PID example1.pid y example2.pid. De cada proceso se recopilan diferentes métricas. Las métricas recopiladas desde el proceso que crea example2.pid se recopilan cada 10 segundos y las métricas recopiladas desde el proceso example1.pid se recopilan cada 60 segundos, que es el valor predeterminado.

{ "metrics": { "metrics_collected": { "procstat": [ { "pid_file": "/var/run/example1.pid", "measurement": [ "cpu_usage", "memory_rss" ] }, { "pid_file": "/var/run/example2.pid", "measurement": [ "read_bytes", "read_count", "write_bytes" ], "metrics_collection_interval": 10 } ] } } }

Configuración con exe

En el siguiente ejemplo, la sección procstat supervisa todos los procesos con nombres que coinciden con las cadenas agent o plugin. De cada proceso se recopilan las mismas métricas.

{ "metrics": { "metrics_collected": { "procstat": [ { "exe": "agent", "measurement": [ "cpu_time", "cpu_time_system", "cpu_time_user" ] }, { "exe": "plugin", "measurement": [ "cpu_time", "cpu_time_system", "cpu_time_user" ] } ] } } }

Configuración con patrón

En el siguiente ejemplo, la sección procstat supervisa todos los procesos con líneas de comandos que coinciden con las cadenas config o -c. De cada proceso se recopilan las mismas métricas.

{ "metrics": { "metrics_collected": { "procstat": [ { "pattern": "config", "measurement": [ "rlimit_memory_data_hard", "rlimit_memory_data_soft", "rlimit_memory_stack_hard", "rlimit_memory_stack_soft" ] }, { "pattern": "-c", "measurement": [ "rlimit_memory_data_hard", "rlimit_memory_data_soft", "rlimit_memory_stack_hard", "rlimit_memory_stack_soft" ] } ] } } }

Métricas que procstat ha recopilado

En la siguiente tabla se muestran las métricas que puede recopilar con el complemento procstat.

El agente de CloudWatch agrega procstat al principio de los siguientes nombres de métricas. Existe una sintaxis diferente en función de si se ha recopilado de un servidor Linux o un servidor con Windows Server. Por ejemplo, la métrica cpu_time aparece como procstat_cpu_time cuando la recopila de Linux y como procstat cpu_time cuando la recopila de Windows Server.

Nombre de métrica Disponible en Descripción

cpu_time

Linux

El periodo de tiempo que el proceso utiliza la CPU. Esta métrica se mide en centésimas de segundo.

Unidad: recuento

cpu_time_guest

Linux

El periodo de tiempo que el proceso está en modo invitado. Esta métrica se mide en centésimas de segundo.

Tipo: flotante

Unidad: ninguna

cpu_time_guest_nice

Linux

La cantidad de tiempo que el proceso se ejecuta en un invitado niced. Esta métrica se mide en centésimas de segundo.

Tipo: flotante

Unidad: ninguna

cpu_time_idle

Linux

El periodo de tiempo que el proceso está en modo inactivo. Esta métrica se mide en centésimas de segundo.

Tipo: flotante

Unidad: ninguna

cpu_time_iowait

Linux

El periodo de tiempo que el proceso está a la espera de que se completen las operaciones de entrada/salida. Esta métrica se mide en centésimas de segundo.

Tipo: flotante

Unidad: ninguna

cpu_time_irq

Linux

El periodo de tiempo que el proceso está atendiendo interrupciones. Esta métrica se mide en centésimas de segundo.

Tipo: flotante

Unidad: ninguna

cpu_time_nice

Linux

El periodo de tiempo que el proceso está en modo correcto. Esta métrica se mide en centésimas de segundo.

Tipo: flotante

Unidad: ninguna

cpu_time_soft_irq

Linux

La cantidad de tiempo que el proceso está atendiendo interrupciones de software. Esta métrica se mide en centésimas de segundo.

Tipo: flotante

Unidad: ninguna

cpu_time_steal

Linux

La cantidad de tiempo que se dedica a ejecutarse en otros sistemas operativos cuando se ejecuta en un entorno virtualizado. Esta métrica se mide en centésimas de segundo.

Tipo: flotante

Unidad: ninguna

cpu_time_stolen

Linux, Windows Server

El periodo de tiempo en que el proceso se encuentra en tiempo descartado, que es el tiempo empleado en otros sistemas operativos en un entorno virtualizado. Esta métrica se mide en centésimas de segundo.

Tipo: flotante

Unidad: ninguna

cpu_time_system

Linux, Windows Server y macOS

El periodo de tiempo que el proceso está en modo de sistema. Esta métrica se mide en centésimas de segundo.

Tipo: flotante

Unidad: recuento

cpu_time_user

Linux, Windows Server y macOS

El periodo de tiempo que el proceso está en modo de usuario. Esta métrica se mide en centésimas de segundo.

Unidad: recuento

cpu_usage

Linux, Windows Server y macOS

El porcentaje de tiempo que el proceso está activo en cualquier capacidad.

Unidad: porcentaje

memory_data

Linux y macOS

La cantidad de memoria que el proceso utiliza para datos.

Unidades: bytes

memory_locked

Linux y macOS

La cantidad de memoria que el proceso tiene bloqueada.

Unidades: bytes

memory_rss

Linux, Windows Server y macOS

La cantidad de memoria real (conjunto residente) que está utilizando el proceso.

Unidades: bytes

memory_stack

Linux y macOS

La cantidad de memoria de pila que el proceso está utilizando.

Unidades: bytes

memory_swap

Linux y macOS

La cantidad de memoria de intercambio que el proceso está utilizando.

Unidades: bytes

memory_vms

Linux, Windows Server y macOS

La cantidad de memoria virtual que el proceso está utilizando.

Unidades: bytes

num_fds

Linux

El número de descriptores de archivos que tiene abiertos este proceso.

Unidad: ninguna

num_threads

Linux, Windows, macOS

El número de hilos en este proceso.

Unidad: ninguna

pid

Linux, Windows Server y macOS

Identificador de proceso (ID).

Unidad: ninguna

pid_count

Linux, Windows Server y macOS

El número de ID de proceso asociado con el proceso.

En los servidores Linux y en los equipos macOS, el nombre completo de esta métrica es procstat_lookup_pid_count y, en Windows Server, procstat_lookup pid_count.

Unidad: ninguna

read_bytes

Linux, Windows Server

El número de bytes que el proceso ha leído de los discos.

Unidades: bytes

write_bytes

Linux, Windows Server

El número de bytes que el proceso ha escrito en los discos.

Unidades: bytes

read_count

Linux, Windows Server

El número de operaciones de escritura en disco que el proceso ha ejecutado.

Unidad: ninguna

rlimit_realtime_priority_hard

Linux

El límite estricto de la prioridad en tiempo real que se puede establecer para este proceso.

Unidad: ninguna

rlimit_realtime_priority_soft

Linux

El límite flexible de la prioridad en tiempo real que se puede establecer para este proceso.

Unidad: ninguna

rlimit_signals_pending_hard

Linux

El límite estricto del número máximo de señales que puede poner en cola este proceso.

Unidad: ninguna

rlimit_signals_pending_soft

Linux

El límite flexible del número máximo de señales que puede poner en cola este proceso.

Unidad: ninguna

rlimit_nice_priority_hard

Linux

El límite estricto de la prioridad máxima aceptable que se puede establecer para este proceso.

Unidad: ninguna

rlimit_nice_priority_soft

Linux

El límite flexible de la prioridad máxima aceptable que se puede establecer para este proceso.

Unidad: ninguna

rlimit_num_fds_hard

Linux

El límite estricto del número máximo de descriptores de archivos que pueden tener abiertos.

Unidad: ninguna

rlimit_num_fds_soft

Linux

El límite flexible del número máximo de descriptores de archivos que pueden tener abiertos.

Unidad: ninguna

write_count

Linux, Windows Server

El número de operaciones de escritura en disco que el proceso ha ejecutado.

Unidad: ninguna

involuntary_context_switches

Linux

El número de veces que el proceso se ha cambiado de contexto involuntariamente.

Unidad: ninguna

voluntary_context_switches

Linux

El número de veces que el proceso se ha cambiado de contexto voluntariamente.

Unidad: ninguna

realtime_priority

Linux

El uso actual de prioridad en tiempo real para el proceso.

Unidad: ninguna

nice_priority

Linux

El uso actual de prioridad aceptable para el proceso.

Unidad: ninguna

signals_pending

Linux

El número de señales pendiente de ser gestionadas por el proceso.

Unidad: ninguna

rlimit_cpu_time_hard

Linux

El límite duro de recursos de tiempo de CPU para el proceso.

Unidad: ninguna

rlimit_cpu_time_soft

Linux

El límite flexible de recursos de tiempo de CPU para el proceso.

Unidad: ninguna

rlimit_file_locks_hard

Linux

El límite duro de bloqueos de archivos para el proceso.

Unidad: ninguna

rlimit_file_locks_soft

Linux

El límite flexible de bloqueos de archivos para el proceso.

Unidad: ninguna

rlimit_memory_data_hard

Linux

El límite duro de recursos en el proceso de memoria utilizada para los datos.

Unidades: bytes

rlimit_memory_data_soft

Linux

El límite flexible de recursos en el proceso de memoria utilizada para los datos.

Unidades: bytes

rlimit_memory_locked_hard

Linux

El límite duro de recursos en el proceso de memoria bloqueada.

Unidades: bytes

rlimit_memory_locked_soft

Linux

El límite flexible de recursos en el proceso de memoria bloqueada.

Unidades: bytes

rlimit_memory_rss_hard

Linux

El límite duro de recursos en el proceso de memoria física.

Unidades: bytes

rlimit_memory_rss_soft

Linux

El límite flexible de recursos en el proceso de memoria física.

Unidades: bytes

rlimit_memory_stack_hard

Linux

El límite duro de recursos en la pila de procesos.

Unidades: bytes

rlimit_memory_stack_soft

Linux

El límite flexible de recursos en la pila de procesos.

Unidades: bytes

rlimit_memory_vms_hard

Linux

El límite duro de recursos en el proceso de memoria virtual.

Unidades: bytes

rlimit_memory_vms_soft

Linux

El límite flexible de recursos en el proceso de memoria virtual.

Unidades: bytes

Visualización de las métricas de proceso que el agente de CloudWatch ha importado.

Después de importar métricas de proceso en CloudWatch, puede ver estas métricas como gráficos de series temporales y crear alarmas que puedan ver estas métricas y notificarle si infringen un umbral especificado. El siguiente procedimiento muestra cómo se pueden ven las métricas de proceso como un gráfico de series temporales. Para obtener más información sobre cómo se configura una alarma, consulte Uso de las alarmas de Amazon CloudWatch.

Para ver las métricas en la consola de CloudWatch
  1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, seleccione Métricas.

  3. Elija el espacio de nombres que se usará para las métricas que el agente ha recopilado. De forma predeterminada, este es CWAgent, pero es posible que haya especificado un espacio de nombres diferente en el archivo de configuración del agente de CloudWatch.

  4. Elija una dimensión de métrica (por ejemplo, Per-Instance Metrics [Métricas por instancia]).

  5. La pestaña All metrics muestra todas las métricas para dicha dimensión en el espacio de nombres. Puede hacer lo siguiente:

    1. Para representar gráficamente una métrica, active la casilla de verificación situada junto a ella. Para seleccionar todas las métricas, seleccione la casilla de verificación en la fila de encabezado de la tabla.

    2. Para ordenar la tabla, utilice el encabezado de columna.

    3. Para filtrar por recurso, seleccione el ID de recurso y, a continuación, elija Add to search (Añadir a la búsqueda).

    4. Para filtrar por métrica, elija el nombre de la métrica y, a continuación, seleccione Add to search (Añadir a búsqueda).

  6. (Opcional) Para agregar el gráfico a un panel de CloudWatch, elija Actions (Acciones) y después Add to dashboard (Añadir al panel).