

# Recopilación de las métricas de procesos con el complemento procstat
<a name="CloudWatch-Agent-procstat-process-metrics"></a>

 El complemento *procstat* permite recopilar las métricas de procesos individuales. El complemento es compatible con los servidores Linux y con servidores con versiones compatibles de Windows Server. En esta sección se describe cómo configurar el agente de CloudWatch para procstat y cómo ver las métricas que importa el agente de CloudWatch. También se enumeran las métricas que recopila procstat. 

**nota**  
El complemento `procstat` no es compatible con el tipo de lanzamiento Fargate en los entornos de Amazon ECS. 

**Topics**
+ [Configurar el agente de CloudWatch para procstat](#CloudWatch-Agent-procstat-configuration)
+ [Métricas que procstat ha recopilado](#CloudWatch-Agent-procstat-process-metrics-collected)
+ [Visualización de las métricas de proceso que el agente de CloudWatch ha importado.](#CloudWatch-view-procstat-metrics)

## Configurar el agente de CloudWatch para procstat
<a name="CloudWatch-Agent-procstat-configuration"></a>

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](https://github.com/google/re2/wiki/Syntax).
+ `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. 

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 `exe` o `pattern` 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](https://docs.microsoft.com/en-us/windows/desktop/WmiSdk/like-operator).

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](CloudWatch-Agent-Configuration-File-Details.md).

### Configurar con pid\_file
<a name="CloudWatch-Agent-procstat-configuration-pidfile"></a>

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
<a name="CloudWatch-Agent-procstat-configuration-exe"></a>

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
<a name="CloudWatch-Agent-procstat-configuration-pattern"></a>

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
<a name="CloudWatch-Agent-procstat-process-metrics-collected"></a>

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.<br />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.<br />Tipo: flotante<br />Unidad: ninguna | 
| `cpu_time_guest_nice` | Linux | Cantidad de tiempo en que el proceso se ejecuta en un perfil de invitado con prioridad baja. Esta métrica se mide en centésimas de segundo.<br />Tipo: flotante<br />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.<br />Tipo: flotante<br />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.<br />Tipo: flotante<br />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.<br />Tipo: flotante<br />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.<br />Tipo: flotante<br />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.<br />Tipo: flotante<br />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.<br />Tipo: flotante<br />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.<br />Tipo: flotante<br />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.<br />Tipo: flotante<br />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.<br />Unidad: recuento | 
| `cpu_usage` | Linux, Windows Server y macOS | El porcentaje de tiempo que el proceso está activo en cualquier capacidad.<br />Unidad: porcentaje | 
| `memory_data` | Linux y macOS | La cantidad de memoria que el proceso utiliza para datos.<br />Unidades: bytes | 
| `memory_locked` | Linux y macOS | La cantidad de memoria que el proceso tiene bloqueada.<br />Unidades: bytes | 
| `memory_rss` | Linux, Windows Server y macOS | La cantidad de memoria real (conjunto residente) que está utilizando el proceso.<br />Unidades: bytes | 
| `memory_stack` | Linux y macOS | La cantidad de memoria de pila que el proceso está utilizando.<br />Unidades: bytes | 
| `memory_swap` | Linux y macOS | La cantidad de memoria de intercambio que el proceso está utilizando.<br />Unidades: bytes | 
| `memory_vms` | Linux, Windows Server y macOS | La cantidad de memoria virtual que el proceso está utilizando.<br />Unidades: bytes | 
| `num_fds` | Linux | El número de descriptores de archivos que tiene abiertos este proceso.<br />Unidad: ninguna | 
| `num_threads` | Linux, Windows, macOS | El número de hilos en este proceso.<br />Unidad: ninguna | 
| `pid` | Linux, Windows Server y macOS | Identificador de proceso (ID).<br />Unidad: ninguna | 
| `pid_count` | Linux, Windows Server y macOS | El número de ID de proceso asociado con el proceso.<br />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`.<br />Unidad: ninguna | 
| `read_bytes` | Linux, Windows Server | El número de bytes que el proceso ha leído de los discos.<br />Unidades: bytes | 
| `write_bytes` | Linux, Windows Server | El número de bytes que el proceso ha escrito en los discos.<br />Unidades: bytes | 
| `read_count` | Linux, Windows Server | El número de operaciones de lectura en disco que el proceso ha ejecutado.<br />Unidad: ninguna | 
| `rlimit_realtime_priority_hard` | Linux | El límite estricto de la prioridad en tiempo real que se puede establecer para este proceso.<br />Unidad: ninguna | 
| `rlimit_realtime_priority_soft` | Linux | El límite flexible de la prioridad en tiempo real que se puede establecer para este proceso.<br />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.<br />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.<br />Unidad: ninguna | 
| `rlimit_nice_priority_hard` | Linux | El límite estricto de la prioridad máxima aceptable que se puede establecer para este proceso.<br />Unidad: ninguna | 
| `rlimit_nice_priority_soft` | Linux | El límite flexible de la prioridad máxima aceptable que se puede establecer para este proceso.<br />Unidad: ninguna | 
| `rlimit_num_fds_hard` | Linux | El límite estricto del número máximo de descriptores de archivos que pueden tener abiertos.<br />Unidad: ninguna | 
| `rlimit_num_fds_soft` | Linux | El límite flexible del número máximo de descriptores de archivos que pueden tener abiertos.<br />Unidad: ninguna | 
| `write_count` | Linux, Windows Server | El número de operaciones de escritura en disco que el proceso ha ejecutado.<br />Unidad: ninguna | 
| `involuntary_context_switches` | Linux | El número de veces que el proceso se ha cambiado de contexto involuntariamente. <br />Unidad: ninguna | 
| `voluntary_context_switches` | Linux | El número de veces que el proceso se ha cambiado de contexto voluntariamente. <br />Unidad: ninguna | 
| `realtime_priority` | Linux | El uso actual de prioridad en tiempo real para el proceso.<br />Unidad: ninguna | 
| `nice_priority` | Linux | El uso actual de prioridad aceptable para el proceso.<br />Unidad: ninguna | 
| `signals_pending` | Linux | El número de señales pendiente de ser gestionadas por el proceso.<br />Unidad: ninguna | 
| `rlimit_cpu_time_hard` | Linux | El límite duro de recursos de tiempo de CPU para el proceso.<br />Unidad: ninguna | 
| `rlimit_cpu_time_soft` | Linux | El límite flexible de recursos de tiempo de CPU para el proceso.<br />Unidad: ninguna | 
| `rlimit_file_locks_hard` | Linux | El límite duro de bloqueos de archivos para el proceso.<br />Unidad: ninguna | 
| `rlimit_file_locks_soft` | Linux | El límite flexible de bloqueos de archivos para el proceso.<br />Unidad: ninguna | 
| `rlimit_memory_data_hard` | Linux | El límite duro de recursos en el proceso de memoria utilizada para los datos.<br />Unidades: bytes | 
| `rlimit_memory_data_soft` | Linux | El límite flexible de recursos en el proceso de memoria utilizada para los datos.<br />Unidades: bytes | 
| `rlimit_memory_locked_hard` | Linux | El límite duro de recursos en el proceso de memoria bloqueada.<br />Unidades: bytes | 
| `rlimit_memory_locked_soft` | Linux | El límite flexible de recursos en el proceso de memoria bloqueada.<br />Unidades: bytes | 
| `rlimit_memory_rss_hard` | Linux | El límite duro de recursos en el proceso de memoria física.<br />Unidades: bytes | 
| `rlimit_memory_rss_soft` | Linux | El límite flexible de recursos en el proceso de memoria física.<br />Unidades: bytes | 
| `rlimit_memory_stack_hard` | Linux | El límite duro de recursos en la pila de procesos.<br />Unidades: bytes | 
| `rlimit_memory_stack_soft` | Linux | El límite flexible de recursos en la pila de procesos.<br />Unidades: bytes | 
| `rlimit_memory_vms_hard` | Linux | El límite duro de recursos en el proceso de memoria virtual.<br />Unidades: bytes | 
| `rlimit_memory_vms_soft` | Linux | El límite flexible de recursos en el proceso de memoria virtual.<br />Unidades: bytes | 

## Visualización de las métricas de proceso que el agente de CloudWatch ha importado.
<a name="CloudWatch-view-procstat-metrics"></a>

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 configurar una alarma, consulte [Uso de las alarmas de Amazon CloudWatch](CloudWatch_Alarms.md).

**Para ver las métricas en la consola de CloudWatch**

1. Abra la consola de CloudWatch en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

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

1. 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.

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

1. La pestaña **All metrics** muestra todas las métricas para dicha dimensión en el espacio de nombres. Se 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.

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

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

   1. 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)**.

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