

# Recopilación de las métricas de Java Management Extensions (JMX)
<a name="CloudWatch-Agent-JMX-metrics"></a>

Puede utilizar el agente de CloudWatch para recopilar métricas de Java Management Extensions (JMX) de las aplicaciones en Java.

El agente de CloudWatch permite recopilar estas métricas de las siguientes versiones:
+ JVM 8 y posterior
+ Kafka 0.8.2.x y posterior
+ Tomcat 9, 10.1 y 11 (beta)

------
#### [ Amazon EC2 ]

**Habilitación de JMX en la instancia de JVM**  
Para que el agente de CloudWatch pueda recopilar métricas de JMX, la JVM de la aplicación debe enlazarse a un puerto mediante la propiedad del sistema `com.sun.management.jmxremote.port`.

```
java -Dcom.sun.management.jmxremote.port=port-number -jar example.jar
```

Para obtener más información y otras configuraciones, consulte la [documentación de JMX](https://docs.oracle.com/en/java/javase/17/management/monitoring-and-management-using-jmx-technology.html).

------
#### [ Amazon EKS ]

**Habilitación de JMX en los pods de aplicaciones en Java**  
Al utilizar el complemento de observabilidad de EKS de CloudWatch, puede administrar la forma en que se habilitan las métricas de JMX mediante anotaciones. Para obtener más información, consulte [Instalación del agente de CloudWatch con el complemento de observabilidad de EKS de Amazon CloudWatch o el gráfico de Helm](install-CloudWatch-Observability-EKS-addon.md). Para habilitar la recopilación de métricas JMX de una carga de trabajo, agregue las siguientes anotaciones al archivo de manifiesto de la carga de trabajo de la sección `PodTemplate`:
+ `instrumentation.opentelemetry.io/inject-java: "true"`
+ Una o varias de las siguientes:
  + Para las métricas de JVM: `cloudwatch.aws.amazon.com/inject-jmx-jvm: "true"`
  + Para las métricas del agente de Kafka: `cloudwatch.aws.amazon.com/inject-jmx-kafka: "true"`
  + Para las métricas del consumidor de Kafka: `cloudwatch.aws.amazon.com/inject-jmx-kafka-consumer: "true"`
  + Para las métricas del productor de Kafka: `cloudwatch.aws.amazon.com/inject-jmx-kafka-producer: "true"`
  + Para las métricas de Tomcat: `cloudwatch.aws.amazon.com/inject-jmx-tomcat: "true"`

------

Para comenzar a recopilar métricas de JMX, agregue una sección `jmx` en la sección `metrics_collected` del archivo de configuración del agente de CloudWatch. La sección `jmx` puede incluir los siguientes campos.
+ `jvm`: opcional. Indica que desea recuperar métricas de Java Virtual Machine (JVM) de la instancia. Para obtener más información, consulte [Recopilación de métricas de JVM](#CloudWatch-Agent-JVM-metrics). 

  Esta sección puede incluir los siguientes campos.
  + `measurement`: especifica la matriz de métricas de la JVM que se recopilarán. Para ver una lista de los valores posibles que se utilizarán aquí, consulte la columna **Metric** (Métrica) de la tabla de [Recopilación de métricas de JVM](#CloudWatch-Agent-JVM-metrics).

    En la entrada de cada métrica, puede especificar, si así lo desea, uno de los valores siguientes o ambos:
    + `rename`: especifica un nombre diferente para esta métrica.
    + `unit`: Especifica la unidad que se usará para esta métrica, lo que anula la unidad predeterminada de la métrica. La unidad que especifique debe ser una unidad de métrica de CloudWatch válida, tal como se muestra en la descripción de `Unit` en [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
+ `kafka`: opcional. Indica que desea recuperar métricas de los agentes de Apache Kafka de la instancia. Para obtener más información, consulte [Recopilación de métricas de Kafka](#CloudWatch-Agent-Kafka-metrics). 

  Esta sección puede incluir los siguientes campos.
  + `measurement`: especifica la matriz de métricas de los agentes de Kafka que se recopilarán. Para ver una lista de los valores posibles que se utilizarán aquí, consulte la columna **Métrica** de la tabla de [Recopilación de métricas de Kafka](#CloudWatch-Agent-Kafka-metrics).

    En la entrada de cada métrica, puede especificar, si así lo desea, uno de los valores siguientes o ambos:
    + `rename`: especifica un nombre diferente para esta métrica.
    + `unit`: Especifica la unidad que se usará para esta métrica, lo que anula la unidad predeterminada de la métrica. La unidad que especifique debe ser una unidad de métrica de CloudWatch válida, tal como se muestra en la descripción de `Unit` en [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
+ `kafka-consumer`: opcional. Indica que desea recuperar métricas de los consumidores de Apache Kafka de la instancia. Para obtener más información, consulte [Recopilación de métricas de Kafka](#CloudWatch-Agent-Kafka-metrics). 

  Esta sección puede incluir los siguientes campos.
  + `measurement`: especifica la matriz de métricas de los agentes de Kafka que se recopilarán. Para ver una lista de los valores posibles que se utilizarán aquí, consulte la columna **Métrica** de la segunda tabla de métricas de [Recopilación de métricas de Kafka](#CloudWatch-Agent-Kafka-metrics).

    En la entrada de cada métrica, puede especificar, si así lo desea, uno de los valores siguientes o ambos:
    + `rename`: especifica un nombre diferente para esta métrica.
    + `unit`: Especifica la unidad que se usará para esta métrica, lo que anula la unidad predeterminada de la métrica. La unidad que especifique debe ser una unidad de métrica de CloudWatch válida, tal como se muestra en la descripción de `Unit` en [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
+ `kafka-producer`: opcional. Indica que desea recuperar métricas de los productores de Apache Kafka de la instancia. Para obtener más información, consulte [Recopilación de métricas de Kafka](#CloudWatch-Agent-Kafka-metrics). 

  Esta sección puede incluir los siguientes campos.
  + `measurement`: especifica la matriz de métricas de los agentes de Kafka que se recopilarán. Para ver una lista de los valores posibles que se utilizarán aquí, consulte la columna **Métrica** de la tercera tabla de métricas de [Recopilación de métricas de Kafka](#CloudWatch-Agent-Kafka-metrics).

    En la entrada de cada métrica, puede especificar, si así lo desea, uno de los valores siguientes o ambos:
    + `rename`: especifica un nombre diferente para esta métrica.
    + `unit`: Especifica la unidad que se usará para esta métrica, lo que anula la unidad predeterminada de la métrica. La unidad que especifique debe ser una unidad de métrica de CloudWatch válida, tal como se muestra en la descripción de `Unit` en [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
+ `tomcat`: opcional. Indica que desea recuperar métricas de Tomcat de la instancia. Para obtener más información, consulte [Recopilación de métricas de Tomcat](#CloudWatch-Agent-Tomcat-metrics). 

  Esta sección puede incluir los siguientes campos.
  + `measurement`: especifica la matriz de las métricas de Tomcat que se recopilarán. Para ver una lista de los valores posibles que se utilizarán aquí, consulte la columna **Metric** (Métrica) de la tabla de [Recopilación de métricas de Tomcat](#CloudWatch-Agent-Tomcat-metrics).

    En la entrada de cada métrica, puede especificar, si así lo desea, uno de los valores siguientes o ambos:
    + `rename`: especifica un nombre diferente para esta métrica.
    + `unit`: Especifica la unidad que se usará para esta métrica, lo que anula la unidad predeterminada de la métrica. La unidad que especifique debe ser una unidad de métrica de CloudWatch válida, tal como se muestra en la descripción de `Unit` en [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).

La sección `jmx` también puede incluir el campo opcional `append_dimensions`:
+ `append_dimensions`: opcional. Las dimensiones adicionales que se utilizarán únicamente para las métricas de proceso. Si especifica este campo, se usa además de las dimensiones especificadas en el campo `append_dimensions` que se utiliza para todos los tipos de métricas recopiladas por el agente.

**Los siguientes campos son solo para Amazon EC2.**
+ `endpoint`: la dirección a la que se debe conectar el cliente de JMX. El formato es `ip:port`. Si el punto de conexión no es el host local, y la autenticación por contraseña y el SSL deben estar habilitados.
+ `metrics_collection_interval`: opcional. Especifica la frecuencia con la que se recopilarán las métricas de proceso, lo que anula el valor de `metrics_collection_interval` global especificado en la sección `agent` del archivo de configuración.

  Este valor se especifica en segundos. Por ejemplo, indicar 10 hace que las métricas se deben recopilar cada 10 segundos y establecerlo en 300 especifica que las métricas se deben recopilar cada 5 minutos.

  Si configura este valor por debajo de 60 segundos, cada métrica se recopila como una métrica de alta resolución. Para obtener más información, consulte [Métricas de alta resolución](publishingMetrics.md#high-resolution-metrics). 

Si JMX se habilitó con autenticación por contraseña o SSL para el acceso remoto, puede usar los siguientes campos.
+ `password_file`: opcional. Especifica un archivo de propiedades de Java con las claves de las contraseñas. El archivo debe ser de solo lectura y estar restringido al usuario que ejecute el agente de CloudWatch. Si la autenticación con contraseña está habilitada, se requiere el mismo par de nombre de usuario y contraseña que la entrada en el archivo de contraseñas de JMX que se proporciona en la propiedad `com.sun.management.jmxremote.password.file`. Si el SSL está habilitado, requiere entradas para `keystore` y `truststore`, y corresponde a `javax.net.ssl.keyStorePassword` y `javax.net.ssl.trustStorePassword`, respectivamente.
+ `username`: si la autenticación por contraseña está habilitada, especifique el nombre de usuario que coincida con el nombre de usuario del archivo de contraseñas proporcionado.
+ `keystore_path`: si el SSL está habilitado, especifique la ruta completa al almacén de claves de Java, que consta de una clave privada y un certificado de la clave pública. Corresponde a la propiedad `javax.net.ssl.keyStore`.
+ `keystore_type`: si SSL está habilitado, especifique el tipo de almacén de claves que se va a utilizar. Corresponde a la propiedad `javax.net.ssl.keyStoreType`.
+ `truststore_path`: si SSL está habilitado, especifique la ruta completa al almacén de confianza de Java, que debe contener el certificado público del servidor JMX remoto. Corresponde a la propiedad `javax.net.ssl.trustStore`.
+ `truststore_type`: si SSL está habilitado, especifique el tipo de almacén de confianza que se va a utilizar. Corresponde a la propiedad `javax.net.ssl.trustStoreType`.
+ `remote_profile`: opcional. Los perfiles remotos de JMX admitidos son TLS en combinación con los perfiles de SASL: `SASL/PLAIN`, `SASL/DIGEST-MD5` y `SASL/CRAM-MD5`. Debe ser uno de los siguientes: `SASL/PLAIN`, `SASL/DIGEST-MD5`, `SASL/CRAM-MD5`, `TLS SASL/PLAIN`, `TLS SASL/DIGEST-MD5` o `TLS SASL/CRAM-MD5`
+ `realm`: opcional. El dominio según lo requerido por el perfil remoto `SASL/DIGEST-MD5`.
+ `registry_ssl_enabled`: si la autenticación del registro RMI está habilitada. Se establece en true si la JVM se configuró con `com.sun.management.jmxremote.registry.ssl=true`.
+ `insecure`: se configura en `true` para excluir la validación necesaria si el agente está configurado para un punto de conexión que no sea de host local.

A continuación, se ofrece un ejemplo de la sección `jmx` del archivo de configuración del agente de CloudWatch.

```
{
  "metrics": {
    "metrics_collected": {
      "jmx": [
        {
          "endpoint": "remotehost:1314",
          "jvm": {
            "measurement": [
              "jvm.memory.heap.init",
              "jvm.memory.nonheap.used"
            ]
          },
          "kafka": {
            "measurement": [
              "kafka.request.count",
              {
                "name": "kafka.message.count",
                "rename": "KAFKA_MESSAGE_COUNT",
                "unit": "Count"
              }
            ]
          },
          "username": "cwagent",
          "keystore_path": "/path/to/keystore",
          "keystore_type": "PKCS12",
          "truststore_path": "/path/to/truststore",
          "truststore_type": "PKCS12"
        },
        {
          "endpoint": "localhost:1315",
          "kafka-producer": {
            "measurement": [
              "kafka.producer.request-rate"
            ]
          },
          "append_dimensions": {
            "service.name": "kafka/1"
          }
        }
      ]
    }
  }
}
```

## Recopilación de métricas de JVM
<a name="CloudWatch-Agent-JVM-metrics"></a>

Puede utilizar el agente de CloudWatch para recopilar métricas de Java Virtual Machine (JVM). Para configurar esta acción, agregue una sección de `jvm` en la sección de `jmx` del archivo de configuración del agente de CloudWatch.

Se pueden recopilar las siguientes métricas.


| Métrica | Dimensiones | Descripción | 
| --- | --- | --- | 
|  `jvm.classes.loaded` | [PREDETERMINADA] |  Número total de clases cargadas. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `jvm.gc.collections.count` | [PREDETERMINADO], `name` |  Número total de recopilaciones de elementos no utilizados que se han llevado a cabo. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `jvm.gc.collections.elapsed` | [PREDETERMINADO], `name` |  Tiempo acumulado transcurrido aproximado de recopilación de elementos no utilizados. **Unidad:** milisegundos **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `jvm.memory.heap.init` | [PREDETERMINADA] |  Cantidad inicial de memoria que la JVM solicita al sistema operativo para el montón. **Unidad:** bytes **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `jvm.memory.heap.max` |  [PREDETERMINADA]  |  Cantidad máxima de memoria que se puede usar para el montón. **Unidad:** bytes **Estadísticas significativas:** máximo  | 
|  `jvm.memory.heap.used` | [PREDETERMINADA] |  El uso actual de memoria del montón. **Unidad:** bytes **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `jvm.memory.heap.committed` | [PREDETERMINADA] |  Cantidad de memoria que se garantiza que estará disponible para el montón. **Unidad:** bytes **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `jvm.memory.nonheap.init` | [PREDETERMINADA] |  Cantidad inicial de memoria que la JVM solicita al sistema operativo para fines distintos del montón. **Unidad:** bytes **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `jvm.memory.nonheap.max` | [PREDETERMINADA] |  Cantidad máxima de memoria que se puede utilizar para fines distintos del montón. **Unidad:** bytes **Estadísticas significativas:** máximo  | 
|  `jvm.memory.nonheap.used` | [PREDETERMINADA] |  Uso actual de la memoria que no es para el montón. **Unidad:** bytes **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `jvm.memory.nonheap.committed` | [PREDETERMINADA] |  Cantidad de memoria que se garantiza que estará disponible para fines distintos del montón. **Unidad:** bytes **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `jvm.memory.pool.init` |  [PREDETERMINADO], `name` |  Cantidad inicial de memoria que la JVM solicita al sistema operativo para el grupo de memoria. **Unidad:** bytes **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `jvm.memory.pool.max` |  [PREDETERMINADO], `name` |  Cantidad máxima de memoria que se puede usar para el grupo de memoria. **Unidad:** bytes **Estadísticas significativas:** máximo  | 
|  `jvm.memory.pool.used` |  [PREDETERMINADO], `name` |  Uso actual de la memoria del grupo de memoria. **Unidad:** bytes **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `jvm.memory.pool.committed` |  [PREDETERMINADO], `name` |  Cantidad de memoria que se garantiza que estará disponible para el grupo de memoria. **Unidad:** bytes **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `jvm.threads.count` | [PREDETERMINADA] |  Número actual de subprocesos. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 

Las métricas de JVM se recopilan con las siguientes dimensiones:


| Dimensión | Descripción | 
| --- | --- | 
| [PREDETERMINADA] | De forma predeterminada en Amazon EC2, el host también se publica como una dimensión de métricas que el agente de CloudWatch recopila, a menos que use el campo `append_dimensions` en la sección `metrics`. Consulte `omit_hostname` en la sección del agente de [Cree o edite de forma manual el archivo de configuración del agente de CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obtener más información. De forma predeterminada en Amazon EKS, el contexto relacionado con k8s también se publica como dimensiones de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`,`k8s.node.name`, `k8s.pod.name` y `k8s.replicaset.name`). Estas se pueden filtrar mediante el campo `aggregation_dimensions`.  | 
| `name` | En el caso de las métricas `jvm.gc.collections`, el valor es el nombre del recolector de elementos no utilizados. En el caso de las métricas `jvm.memory.pool`, el valor es el nombre del grupo de memoria.  | 

## Recopilación de métricas de Kafka
<a name="CloudWatch-Agent-Kafka-metrics"></a>

Puede utilizar el agente de CloudWatch para recopilar métricas de Apache Kafka. Para configurarlo, agregue una o más de las subsección siguientes a la sección `jmx` del archivo de configuración del agente de CloudWatch.
+ Utilice una sección `kafka` para recopilar las métricas de los agentes de Kafka.
+ Utilice una sección `kafka-consumer` para recopilar las métricas de los consumidores de Kafka.
+ Utilice una sección `kafka-producer` para recopilar las métricas de los productores de Kafka.

**Métricas del agente de Kafka**

Se pueden recopilar las siguientes métricas de los agente de Kafka.


| Métrica | Dimensiones | Descripción | 
| --- | --- | --- | 
|  `kafka.message.count` | [PREDETERMINADA] |  Número de mensajes recibidos por el agente de Kafka. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.request.count` |  [PREDETERMINADO], `type` |  Número de solicitudes recibidas por el agente de Kafka. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.request.failed` | [PREDETERMINADO], `type` |  Número de solicitudes al agente de Kafka que provocaron un error. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.request.time.total` | [PREDETERMINADO], `type` |  Tiempo total que el agente de Kafka dedicó a atender las solicitudes. **Unidad:** milisegundos **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.request.time.50p` | [PREDETERMINADO], `type` |  Percentil 50 del tiempo que el agente de Kafka dedicó a atender las solicitudes. **Unidad:** milisegundos **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.request.time.99p` | [PREDETERMINADO], `type` |  Percentil 99 del tiempo que el agente de Kafka dedicó a atender las solicitudes. **Unidad:** milisegundos **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.request.time.avg` | [PREDETERMINADO], `type` |  Tiempo promedio que el agente de Kafka dedicó a atender las solicitudes. **Unidad:** milisegundos **Estadísticas significativas:** promedio  | 
|  `kafka.network.io` | [PREDETERMINADO], `state` |  Número de bytes recibidos o enviados por el agente de Kafka. **Unidad:** bytes **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.purgatory.size` | [PREDETERMINADO], `type` |  Número de solicitudes en espera en el purgatorio. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.partition.count` | [PREDETERMINADA] |  Número de particiones en el agente de Kafka. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.partition.offline` | [PREDETERMINADA] |  Número de particiones que están sin conexión. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.partition.under_replicated` | [PREDETERMINADA] |  Número de particiones infrarreplicadas. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.isr.operation.count` | [PREDETERMINADO], `operation` |  Número de operaciones de reducción y expansión de réplicas sincronizadas. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.max.lag` | [PREDETERMINADA] |  Retraso máximo en los mensajes entre las réplicas de seguidores y líderes. **Unidad:** ninguna **Estadísticas significativas:** máximo  | 
|  `kafka.controller.active.count` |  [PREDETERMINADA] |  Número de controladores activos en el agente. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.leader.election.rate` |  [PREDETERMINADA] |  Tasa de elección de líderes. Si aumenta, indica que hay errores en el agente. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.unclean.election.rate` |  [PREDETERMINADA] |  Tasa de elección de líderes sin limpiar. Si aumenta, indica que hay errores en el agente. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.request.queue` |  [PREDETERMINADA] |  Tamaño de la cola de solicitudes. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.logs.flush.time.count`  |  [PREDETERMINADA] |  Recuento de vaciados de registros. **Unidad:** milisegundos **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.logs.flush.time.median` |  [PREDETERMINADA] |  Valor del percentil 50 del recuento de vaciados de registros. **Unidad:** milisegundos **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.logs.flush.time.99p` |  [PREDETERMINADA] |  Valor del percentil 99 del recuento de vaciados de registros. **Unidad:** milisegundos **Estadísticas significativas:** mínimo, máximo, promedio  | 

Las métricas de agentes de Kafka se recopilan con las siguientes dimensiones:


| Dimensión | Descripción | 
| --- | --- | 
| [PREDETERMINADA] | De forma predeterminada en Amazon EC2, el host también se publica como una dimensión de métricas que el agente de CloudWatch recopila, a menos que use el campo `append_dimensions` en la sección `metrics`. Consulte `omit_hostname` en la sección del agente de [Cree o edite de forma manual el archivo de configuración del agente de CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obtener más información. De forma predeterminada en Amazon EKS, el contexto relacionado con k8s también se publica como dimensiones de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`,`k8s.node.name`, `k8s.pod.name` y `k8s.replicaset.name`). Estas se pueden filtrar mediante el campo `aggregation_dimensions`.  | 
| `type` | El tipo de la solicitud. Los valores posibles son `produce`, `fetch`, `fetchconsumer` y `fetchfollower`. | 
| `state` | La dirección del tráfico de red. Los posibles valores son `in` y `out`. | 
| `operation` | El tipo de operación de la réplica sincronizada. Los posibles valores son `shrink` y `expand`. | 

**Métricas de consumidores de Kafka**

Se pueden recopilar las siguientes métricas de los consumidores de Kafka.


| Métrica | Dimensiones | Descripción | 
| --- | --- | --- | 
|  `kafka.consumer.fetch-rate` | [PREDETERMINADO], `client-id` |  Número de solicitudes de recuperación de todos los temas por segundo. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.consumer.records-lag-max` |  [PREDETERMINADO], `client-id` |  Número de mensajes que el consumidor está atrasado con respecto al productor. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.consumer.total.bytes-consumed-rate` |  [PREDETERMINADO], `client-id` |  Cantidad promedio de bytes consumidos para todos los temas por segundo. **Unidad:** bytes **Estadísticas significativas:** promedio  | 
|  `kafka.consumer.total.fetch-size-avg` |  [PREDETERMINADO], `client-id` |  Número de bytes recuperados por solicitud para todos los temas. **Unidad:** bytes **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.consumer.total.records-consumed-rate` |  [PREDETERMINADO], `client-id` |  Número promedio de registros consumidos para todos los temas por segundo. **Unidad:** ninguna **Estadísticas significativas:** promedio  | 
|  `kafka.consumer.bytes-consumed-rate` |  [PREDETERMINADO], `client-id`, `topic` |  Número promedio de bytes consumidos por segundo. **Unidad:** bytes **Estadísticas significativas:** promedio  | 
|  `kafka.consumer.fetch-size-avg` | [PREDETERMINADO], `client-id`, `topic` |  Número de bytes recuperados por solicitud. **Unidad:** bytes **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.consumer.records-consumed-rate` | [PREDETERMINADO], `client-id`, `topic` |  Número promedio de registros consumidos por segundo. **Unidad:** ninguna **Estadísticas significativas:** promedio  | 

Las métricas de consumidores de Kafka se recopilan con las siguientes dimensiones:


| Dimensión | Descripción | 
| --- | --- | 
| [PREDETERMINADA] | De forma predeterminada en Amazon EC2, el host también se publica como una dimensión de métricas que el agente de CloudWatch recopila, a menos que use el campo `append_dimensions` en la sección `metrics`. Consulte `omit_hostname` en la sección del agente de [Cree o edite de forma manual el archivo de configuración del agente de CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obtener más información. De forma predeterminada en Amazon EKS, el contexto relacionado con k8s también se publica como dimensiones de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`,`k8s.node.name`, `k8s.pod.name` y `k8s.replicaset.name`). Estas se pueden filtrar mediante el campo `aggregation_dimensions`.  | 
| `client-id` | El ID del cliente. | 
| `topic` | El tema de Kafka. | 

**Métricas de productores de Kafka**

Se pueden recopilar las siguientes métricas de los productores de Kafka.


| Métrica | Dimensiones | Descripción | 
| --- | --- | --- | 
|  `kafka.producer.io-wait-time-ns-avg` | [PREDETERMINADO], `client-id` |  Tiempo promedio que el subproceso de E/S pasa esperando a que un socket esté listo para lecturas o escrituras. **Unidad:** ninguna **Estadísticas significativas:** promedio  | 
|  `kafka.producer.outgoing-byte-rate` | [PREDETERMINADO], `client-id` |  Número promedio de bytes salientes enviados por segundo a todos los servidores. **Unidad:** bytes **Estadísticas significativas:** promedio  | 
|  `kafka.producer.request-latency-avg` | [PREDETERMINADO], `client-id` |  Latencia promedio de las solicitudes. **Unidad:** milisegundos **Estadísticas significativas:** promedio  | 
|  `kafka.producer.request-rate` | [PREDETERMINADO], `client-id` |  Número promedio de solicitudes enviadas por segundo. **Unidad:** ninguna **Estadísticas significativas:** promedio  | 
|  `kafka.producer.response-rate` | [PREDETERMINADO], `client-id` |  Número de respuestas recibidas por segundo. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `kafka.producer.byte-rate` | [PREDETERMINADO], `client-id`, `topic` |  Número promedio de bytes enviados por segundo para un tema. **Unidad:** bytes **Estadísticas significativas:** promedio  | 
|  `kafka.producer.compression-rate` | [PREDETERMINADO], `client-id`, `topic` |  Tasa de compresión promedio de los lotes de registros de un tema. **Unidad:** ninguna **Estadísticas significativas:** promedio  | 
|  `kafka.producer.record-error-rate` | [PREDETERMINADO], `client-id`, `topic` |  Número promedio por segundo de envíos de registros que generaron errores en un tema. **Unidad:** ninguna **Estadísticas significativas:** promedio  | 
|  `kafka.producer.record-retry-rate` | [PREDETERMINADO], `client-id`, `topic` |  Número promedio por segundo de envíos de registros reintentados para un tema. **Unidad:** ninguna **Estadísticas significativas:** promedio  | 
|  `kafka.producer.record-send-rate` | [PREDETERMINADO], `client-id`, `topic` |  Número promedio de registros enviados por segundo para un tema. **Unidad:** ninguna **Estadísticas significativas:** promedio  | 

Las métricas de productores de Kafka se recopilan con las siguientes dimensiones:


| Dimensión | Descripción | 
| --- | --- | 
| [PREDETERMINADA] | De forma predeterminada en Amazon EC2, el host también se publica como una dimensión de métricas que el agente de CloudWatch recopila, a menos que use el campo `append_dimensions` en la sección `metrics`. Consulte `omit_hostname` en la sección del agente de [Cree o edite de forma manual el archivo de configuración del agente de CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obtener más información. De forma predeterminada en Amazon EKS, el contexto relacionado con k8s también se publica como dimensiones de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`,`k8s.node.name`, `k8s.pod.name` y `k8s.replicaset.name`). Estas se pueden filtrar mediante el campo `aggregation_dimensions`.  | 
| `client-id` | El ID del cliente. | 
| `topic` | El tema de Kafka. | 

## Recopilación de métricas de Tomcat
<a name="CloudWatch-Agent-Tomcat-metrics"></a>

Puede utilizar el agente de CloudWatch para recopilar métricas de Apache Tomcat. Para configurar esta acción, agregue una sección de `tomcat` en la sección de `metrics_collected` del archivo de configuración del agente de CloudWatch.

Se pueden recopilar las siguientes métricas.


| Métrica | Dimensiones | Descripción | 
| --- | --- | --- | 
|  `tomcat.sessions` | [PREDETERMINADA] |  Número de sesiones activas. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `tomcat.errors`  | [PREDETERMINADO], `proto_handler` |  Número de errores que se encontraron. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio  | 
|  `tomcat.processing_time`  | [PREDETERMINADO], `proto_handler` |  Tiempo total de procesamiento. **Unidad:** milisegundos **Estadísticas significativas:** mínimo, máximo, promedio   | 
|  `tomcat.traffic`  | [PREDETERMINADO], `proto_handler` |  Número de bytes recibidos y enviados. **Unidad:** bytes **Estadísticas significativas:** mínimo, máximo, promedio   | 
|  `tomcat.threads`  | [PREDETERMINADO], `proto_handler` |  Número de subprocesos. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio   | 
|  `tomcat.max_time`  | [PREDETERMINADO], `proto_handler`, `direction` |  Tiempo máximo para procesar una solicitud. **Unidad:** milisegundos **Estadísticas significativas:** máximo   | 
|  `tomcat.request_count`  | [PREDETERMINADO], `proto_handler` |  Total de solicitudes. **Unidad:** ninguna **Estadísticas significativas:** mínimo, máximo, promedio   | 

Las métricas de Tomcat se recopilan con las siguientes dimensiones:


| Dimensión | Descripción | 
| --- | --- | 
| [PREDETERMINADA] | De forma predeterminada en Amazon EC2, el host también se publica como una dimensión de métricas que el agente de CloudWatch recopila, a menos que use el campo `append_dimensions` en la sección `metrics`. Consulte `omit_hostname` en la sección del agente de [Cree o edite de forma manual el archivo de configuración del agente de CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obtener más información. De forma predeterminada en Amazon EKS, el contexto relacionado con k8s también se publica como dimensiones de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`,`k8s.node.name`, `k8s.pod.name` y `k8s.replicaset.name`). Estas se pueden filtrar mediante el campo `aggregation_dimensions`.  | 
| `proto_handler` | `proto_handler` es un identificador de un conector, que se proporciona en el formato `<protocol>-<type>-<port>` (por ejemplo, `http-nio-8080`). | 
| `direction` | La dirección del tráfico. Los posibles valores son `received` y `sent`.  | 