

# Coletar métricas do Java Management Extensions (JMX)
<a name="CloudWatch-Agent-JMX-metrics"></a>

Você pode usar o agente do CloudWatch para coletar métricas do Java Management Extensions (JMX) das aplicações Java.

O agente do CloudWatch é compatível com a coleta dessas métricas nas seguintes versões:
+ JVM 8 e posteriores
+ Kafka 0.8.2.x e posteriores
+ Tomcat 9, 10.1 e 11 (beta)

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

**Para habilitar o JMX na instância da JVM**  
Para que o agente do CloudWatch possa coletar métricas do JMX, a JVM da aplicação deve se vincular a uma porta usando a propriedade `com.sun.management.jmxremote.port` do sistema.

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

Para obter mais informações e outras configurações, consulte a [documentação do JMX](https://docs.oracle.com/en/java/javase/17/management/monitoring-and-management-using-jmx-technology.html).

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

**Para habilitar o JMX nos pods de aplicações Java**  
Ao usar o complemento CloudWatch Observability EKS, você pode gerenciar como as métricas do JMX são habilitadas com anotações. Para obter mais informações, consulte [Instalação do agente do CloudWatch com o complemento de observabilidade do EKS do Amazon CloudWatch ou com o chart do Helm](install-CloudWatch-Observability-EKS-addon.md). Para habilitar a coleta de métricas do JMX de uma workload, adicione as seguintes anotações ao arquivo de manifesto da workload na seção `PodTemplate`:
+ `instrumentation.opentelemetry.io/inject-java: "true"`
+ Um ou mais itens a seguir:
  + Para métricas da JVM: `cloudwatch.aws.amazon.com/inject-jmx-jvm: "true"`
  + Para métricas do operador do Kafka: `cloudwatch.aws.amazon.com/inject-jmx-kafka: "true"`
  + Para métricas de consumo do Kafka: `cloudwatch.aws.amazon.com/inject-jmx-kafka-consumer: "true"`
  + Para métricas de produtores do Kafka: `cloudwatch.aws.amazon.com/inject-jmx-kafka-producer: "true"`
  + Para métricas do Tomcat: `cloudwatch.aws.amazon.com/inject-jmx-tomcat: "true"`

------

Para começar a coletar métricas do JMX, adicione uma seção `jmx` à seção `metrics_collected` do arquivo de configuração do agente do CloudWatch. A seção `jmx` pode conter os campos a seguir.
+ `jvm`: opcional. Especifica que você deseja recuperar métricas da Java Virtual Machine (JVM) na instância. Para obter mais informações, consulte [Coletar métricas da JVM](#CloudWatch-Agent-JVM-metrics). 

  A seção pode incluir os seguintes campos:
  + `measurement`: especifica a matriz de métricas da JVM a serem coletadas. Para obter uma lista dos valores de uso possíveis, consulte a coluna **Metric** (Métrica) na tabela em [Coletar métricas da JVM](#CloudWatch-Agent-JVM-metrics).

    Na entrada de cada métrica individual, você também poderá especificar uma ou ambas das seguintes opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
+ `kafka`: opcional. Especifica que você deseja recuperar métricas do operador do Apache Kafka na instância. Para obter mais informações, consulte [Coletar métricas do Kafka](#CloudWatch-Agent-Kafka-metrics). 

  A seção pode incluir os seguintes campos:
  + `measurement`: especifica a matriz de métricas do operador do Kafka a serem coletadas. Para obter uma lista dos valores de uso possíveis, consulte a coluna **Métrica** na primeira tabela em [Coletar métricas do Kafka](#CloudWatch-Agent-Kafka-metrics).

    Na entrada de cada métrica individual, você também poderá especificar uma ou ambas das seguintes opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
+ `kafka-consumer`: opcional. Especifica que você deseja recuperar métricas dos consumidores do Apache Kafka na instância. Para obter mais informações, consulte [Coletar métricas do Kafka](#CloudWatch-Agent-Kafka-metrics). 

  A seção pode incluir os seguintes campos:
  + `measurement`: especifica a matriz de métricas do operador do Kafka a serem coletadas. Para obter uma lista dos valores de uso possíveis, consulte a coluna **Métrica** na segunda tabela de métricas em [Coletar métricas do Kafka](#CloudWatch-Agent-Kafka-metrics).

    Na entrada de cada métrica individual, você também poderá especificar uma ou ambas das seguintes opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
+ `kafka-producer`: opcional. Especifica que você deseja recuperar métricas dos produtores do Apache Kafka na instância. Para obter mais informações, consulte [Coletar métricas do Kafka](#CloudWatch-Agent-Kafka-metrics). 

  A seção pode incluir os seguintes campos:
  + `measurement`: especifica a matriz de métricas do operador do Kafka a serem coletadas. Para obter uma lista dos valores de uso possíveis, consulte a coluna **Métrica** na terceira tabela de métricas em [Coletar métricas do Kafka](#CloudWatch-Agent-Kafka-metrics).

    Na entrada de cada métrica individual, você também poderá especificar uma ou ambas das seguintes opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
+ `tomcat`: opcional. Especifica que você deseja recuperar métricas do Tomcat na instância. Para obter mais informações, consulte [Coleta métricas do Tomcat](#CloudWatch-Agent-Tomcat-metrics). 

  A seção pode incluir os seguintes campos:
  + `measurement`: especifica a matriz de métricas do Tomcat a serem coletadas. Para obter uma lista dos valores de uso possíveis, consulte a coluna **Metric** (Métrica) na tabela em [Coleta métricas do Tomcat](#CloudWatch-Agent-Tomcat-metrics).

    Na entrada de cada métrica individual, você também poderá especificar uma ou ambas das seguintes opções:
    + `rename`: especifica um nome diferente para essa métrica.
    + `unit`: especifica a unidade a ser usada para essa métrica, substituindo a unidade padrão para a métrica. A unidade que você especificar deverá ser uma unidade de métrica válida do CloudWatch, conforme listado na descrição do `Unit` em [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).

A seção `jmx` também pode incluir o campo `append_dimensions` opcional:
+ `append_dimensions`: opcional. Dimensões adicionais a serem usadas somente para métricas de processo. Se você especificar esse campo, ele será usado em complemento às dimensões especificadas no campo `append_dimensions` que é usado para todos os tipos de métricas coletadas pelo atendente.

**Os campos a seguir são apenas para o Amazon EC2.**
+ `endpoint`: o endereço ao qual o cliente JMX se conectar. O formato de é `ip:port`. Se o endpoint não for o localhost, a autenticação por senha e o SSL deverão estar habilitados.
+ `metrics_collection_interval`: opcional. Especifica a frequência da coleta de métricas de processos, substituindo o `metrics_collection_interval` global especificado na seção `agent` do arquivo de configuração.

  Esse valor é especificado em segundos. Por exemplo, a especificação de 10 faz com que as métricas sejam coletadas a cada 10 segundos. Uma configuração de 300 especifica que as métricas sejam coletadas a cada 5 minutos.

  Se você definir esse valor abaixo de 60 segundos, cada métrica será coletada como uma métrica de alta resolução. Para obter mais informações, consulte [Métricas de alta resolução](publishingMetrics.md#high-resolution-metrics). 

Se o JMX foi habilitado com autenticação por senha ou SSL para acesso remoto, você pode usar os campos a seguir.
+ `password_file`: opcional. Especifica um arquivo de propriedades Java de chaves para senhas. O arquivo deve ser somente leitura e restrito ao usuário que está executando o agente do CloudWatch. Se a autenticação por senha estiver habilitada, isso exigirá o mesmo par de nome de usuário e senha da entrada no arquivo de senha do JMX fornecido na propriedade `com.sun.management.jmxremote.password.file`. Se o SSL estiver habilitado, ele exigirá entradas para `keystore` e `truststore` e fará a correspondência ao `javax.net.ssl.keyStorePassword` e `javax.net.ssl.trustStorePassword`, respectivamente.
+ `username`: se a autenticação por senha estiver habilitada, especifique o nome de usuário que corresponde ao nome de usuário no arquivo de senha fornecido.
+ `keystore_path`: se o SSL estiver habilitado, especifique o caminho completo para o keystore JAVA, que consiste em uma chave privada e um certificado para a chave pública. Corresponde à propriedade `javax.net.ssl.keyStore`.
+ `keystore_type`: se o SSL estiver habilitado, especifique o tipo de keystore que está sendo usado. Corresponde à propriedade `javax.net.ssl.keyStoreType`.
+ `truststore_path`: se o SSL estiver habilitado, especifique o caminho completo para o truststore Java, que deve conter o certificado público do servidor JMX remoto. Corresponde à propriedade `javax.net.ssl.trustStore`.
+ `truststore_type`: se o SSL estiver habilitado, especifique o tipo de truststore que está sendo usado. Corresponde à propriedade `javax.net.ssl.trustStoreType`.
+ `remote_profile`: opcional. Os perfis remotos compatíveis do JMX são TLS em combinação com os perfis do SASL: `SASL/PLAIN`, `SASL/DIGEST-MD5` e `SASL/CRAM-MD5`. Deve ser um dos seguintes: `SASL/PLAIN`, `SASL/DIGEST-MD5`, `SASL/CRAM-MD5`, `TLS SASL/PLAIN`, `TLS SASL/DIGEST-MD5` ou `TLS SASL/CRAM-MD5`
+ `realm`: opcional. O realm, conforme exigido pelo perfil `SASL/DIGEST-MD5` remoto.
+ `registry_ssl_enabled`: se a autenticação por registro RMI estiver habilitada. Defina como true se a JVM tiver sido configurada com `com.sun.management.jmxremote.registry.ssl=true`.
+ `insecure` Defina como `true` para cancelar a validação necessária se o agente estiver configurado para um endpoint não localhost.

A seguir, veja um exemplo da seção `jmx` do arquivo de configuração do agente do 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"
          }
        }
      ]
    }
  }
}
```

## Coletar métricas da JVM
<a name="CloudWatch-Agent-JVM-metrics"></a>

Você pode usar o agente do CloudWatch para coletar métricas da Java Virtual Machine (JVM). Para configurar, adicione uma seção `jvm` à seção `jmx` do arquivo de configuração do atendente do CloudWatch.

As seguintes métricas podem ser coletadas.


| Métrica | Dimensões | Descrição | 
| --- | --- | --- | 
| `jvm.classes.loaded` | [DEFAULT] | O número total de classes carregadas.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `jvm.gc.collections.count` | [DEFAULT], `name` | O número total de coletas de resíduos que ocorreram.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `jvm.gc.collections.elapsed` | [DEFAULT], `name` | O tempo decorrido aproximado da coleta de resíduos acumulada.<br />**Unidade:** milissegundos<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `jvm.memory.heap.init` | [DEFAULT] | A quantidade inicial de memória que a JVM solicita do sistema operacional para o heap.<br />**Unidade:** bytes<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `jvm.memory.heap.max` | [DEFAULT] | A quantidade máxima de memória que pode ser usada para o heap.<br />**Unidade:** bytes<br />**Estatísticas significativas:** Máximo | 
| `jvm.memory.heap.used` | [DEFAULT] | O uso atual da memória do heap.<br />**Unidade:** bytes<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `jvm.memory.heap.committed` | [DEFAULT] | A quantidade de memória que é garantida como disponível para o heap.<br />**Unidade:** bytes<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `jvm.memory.nonheap.init` | [DEFAULT] | A quantidade inicial de memória que a JVM solicita do sistema operacional para fins não relacionados ao heap.<br />**Unidade:** bytes<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `jvm.memory.nonheap.max` | [DEFAULT] | A quantidade máxima de memória que pode ser usada para fins não relacionados ao heap.<br />**Unidade:** bytes<br />**Estatísticas significativas:** Máximo | 
| `jvm.memory.nonheap.used` | [DEFAULT] | O uso atual de memória não heap.<br />**Unidade:** bytes<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `jvm.memory.nonheap.committed` | [DEFAULT] | A quantidade de memória que é garantida como disponível para fins que não relacionados ao heap.<br />**Unidade:** bytes<br />**Estatísticas significativas: **Mínimo, Máximo, Média | 
| `jvm.memory.pool.init` | [DEFAULT], `name` | A quantidade inicial de memória que a JVM solicita do sistema operacional para o pool de memória.<br />**Unidade:** bytes<br />**Estatísticas significativas: **Mínimo, Máximo, Média | 
| `jvm.memory.pool.max` | [DEFAULT], `name` | A quantidade máxima de memória que pode ser usada para o pool de memória.<br />**Unidade:** bytes<br />**Estatísticas significativas:** Máximo | 
| `jvm.memory.pool.used` | [DEFAULT], `name` | O uso atual da memória do pool de memória.<br />**Unidade:** bytes<br />**Estatísticas significativas: **Mínimo, Máximo, Média | 
| `jvm.memory.pool.committed` | [DEFAULT], `name` | A quantidade de memória que é garantida como disponível para o pool de memória.<br />**Unidade:** bytes<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `jvm.threads.count` | [DEFAULT] | O número atual de threads.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 

As métricas da JVM são coletadas com as seguintes dimensões:


| Dimensão | Descrição | 
| --- | --- | 
| [DEFAULT] | No Amazon EC2, por padrão, o host também é publicado como uma dimensão de métricas coletadas pelo agente do CloudWatch, a menos que você esteja usando o campo `append_dimensions` na seção `metrics`. Veja `omit_hostname` na seção do agente de [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obter mais informações.<br />No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`, `k8s.node.name`, `k8s.pod.name` e `k8s.replicaset.name`). Eles podem ser filtrados usando o campo `aggregation_dimensions`. | 
| `name` | Para as métricas `jvm.gc.collections`, o valor é o nome do coletor de resíduos.<br />Para as métricas `jvm.memory.pool`, o valor é o nome do pool de memória. | 

## Coletar métricas do Kafka
<a name="CloudWatch-Agent-Kafka-metrics"></a>

Você pode usar o agente do CloudWatch para coletar métricas do Apache Kafka. Para configurar, adicione uma ou mais das subseções a seguir na seção `jmx` do arquivo de configuração do agente do CloudWatch.
+ Use uma seção `kafka` para coletar as métricas do operador do Kafka.
+ Use uma seção `kafka-consumer` para coletar as métricas do consumidor do Kafka.
+ Use uma seção `kafka-producer` para coletar as métricas do produtor do Kafka.

**Métricas do operador do Kafka**

As métricas a seguir podem ser coletadas dos operadores do Kafka.


| Métrica | Dimensões | Descrição | 
| --- | --- | --- | 
| `kafka.message.count` | [DEFAULT] | O número de mensagens recebidas pelo operador do Kafka.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.request.count` | [DEFAULT], `type` | O número de solicitações recebidas pelo operador do Kafka.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.request.failed` | [DEFAULT], `type` | O número de solicitações ao operador do Kafka que resultaram em uma falha.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.request.time.total` | [DEFAULT], `type` | O tempo total que o operador do Kafka levou para atender às solicitações.<br />**Unidade:** milissegundos<br />**Estatísticas significativas: **Mínimo, Máximo, Média | 
| `kafka.request.time.50p` | [DEFAULT], `type` | O percentil 50 do tempo que o operador do Kafka levou para atender às solicitações.<br />**Unidade:** milissegundos<br />**Estatísticas significativas: **Mínimo, Máximo, Média | 
| `kafka.request.time.99p` | [DEFAULT], `type` | O percentil 99 do tempo que o operador do Kafka levou para atender às solicitações.<br />**Unidade:** milissegundos<br />**Estatísticas significativas: **Mínimo, Máximo, Média | 
| `kafka.request.time.avg` | [DEFAULT], `type` | O tempo médio que o operador do Kafka levou para atender às solicitações.<br />**Unidade:** milissegundos<br />**Estatísticas significativas:** Média | 
| `kafka.network.io` | [DEFAULT], `state` | O número de bytes recebidos ou enviados pelo operador do Kafka.<br />**Unidade:** bytes<br />**Estatísticas significativas: **Mínimo, Máximo, Média | 
| `kafka.purgatory.size` | [DEFAULT], `type` | O número de solicitações que aguardam no purgatório.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.partition.count` | [DEFAULT] | O número de partições no operador do Kafka.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.partition.offline` | [DEFAULT] | O número de partições que estão offline.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.partition.under_replicated` | [DEFAULT] | O número de partições sub-replicadas.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.isr.operation.count` | [DEFAULT], `operation` | O número de operações de redução e expansão de réplicas sincronizadas.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.max.lag` | [DEFAULT] | O atraso máximo nas mensagens entre as réplicas seguidoras e líderes.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** Máximo | 
| `kafka.controller.active.count` | [DEFAULT] | O número de controladores ativos no operador.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.leader.election.rate` | [DEFAULT] | Taxa de eleição do líder. Caso aumente, indica falhas do operador.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.unclean.election.rate` | [DEFAULT] | Taxa de eleição do líder indeterminada. Caso aumente, indica falhas do operador.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.request.queue` | [DEFAULT] | O tamanho da solicitação da fila.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.logs.flush.time.count` | [DEFAULT] | A contagem de liberação de logs.<br />**Unidade:** milissegundos<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.logs.flush.time.median` | [DEFAULT] | O valor do percentil 50 da contagem de liberação de logs.<br />**Unidade:** milissegundos<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.logs.flush.time.99p` | [DEFAULT] | O valor do percentil 99 da contagem de liberação de logs.<br />**Unidade:** milissegundos<br />**Estatísticas significativas:** mínimo, máximo, média | 

As métricas do operador do Kafka são coletadas com as seguintes dimensões:


| Dimensão | Descrição | 
| --- | --- | 
| [DEFAULT] | No Amazon EC2, por padrão, o host também é publicado como uma dimensão de métricas coletadas pelo agente do CloudWatch, a menos que você esteja usando o campo `append_dimensions` na seção `metrics`. Veja `omit_hostname` na seção do agente de [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obter mais informações.<br />No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`, `k8s.node.name`, `k8s.pod.name` e `k8s.replicaset.name`). Eles podem ser filtrados usando o campo `aggregation_dimensions`. | 
| `type` | O tipo da solicitação. Os valores possíveis são `produce`, `fetch`, `fetchconsumer` e `fetchfollower`. | 
| `state` | A direção do tráfego de rede. Os possíveis valores são `in` e `out`. | 
| `operation` | O tipo de operação da réplica sincronizada. Os possíveis valores são `shrink` e `expand`. | 

**Métricas do consumidor do Kafka**

As métricas a seguir podem ser coletadas pelos consumidores do Kafka.


| Métrica | Dimensões | Descrição | 
| --- | --- | --- | 
| `kafka.consumer.fetch-rate` | [DEFAULT], `client-id` | O número de solicitações de busca para todos os tópicos por segundo.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.consumer.records-lag-max` | [DEFAULT], `client-id` | O número de mensagens que o consumidor está atrasado em relação ao produtor.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.consumer.total.bytes-consumed-rate` | [DEFAULT], `client-id` | O número médio de bytes consumidos por segundo para todos os tópicos.<br />**Unidade:** bytes<br />**Estatísticas significativas:** Média | 
| `kafka.consumer.total.fetch-size-avg` | [DEFAULT], `client-id` | O número de bytes buscados por solicitação para todos os tópicos.<br />**Unidade:** bytes<br />**Estatísticas significativas: **Mínimo, Máximo, Média | 
| `kafka.consumer.total.records-consumed-rate` | [DEFAULT], `client-id` | O número médio de registros consumidos por segundo para todos os tópicos.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** Média | 
| `kafka.consumer.bytes-consumed-rate` | [DEFAULT], `client-id`, `topic` | O número médio de bytes consumidos por segundo.<br />**Unidade:** bytes<br />**Estatísticas significativas:** Média | 
| `kafka.consumer.fetch-size-avg` | [DEFAULT], `client-id`, `topic` | O número de bytes buscados por solicitação.<br />**Unidade:** bytes<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `kafka.consumer.records-consumed-rate` | [DEFAULT], `client-id`, `topic` | O número médio de registros consumidos por segundo.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** Média | 

As métricas do consumidor do Kafka são coletadas com as seguintes dimensões:


| Dimensão | Descrição | 
| --- | --- | 
| [DEFAULT] | No Amazon EC2, por padrão, o host também é publicado como uma dimensão de métricas coletadas pelo agente do CloudWatch, a menos que você esteja usando o campo `append_dimensions` na seção `metrics`. Veja `omit_hostname` na seção do agente de [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obter mais informações.<br />No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`, `k8s.node.name`, `k8s.pod.name` e `k8s.replicaset.name`). Eles podem ser filtrados usando o campo `aggregation_dimensions`. | 
| `client-id` | O ID do cliente. | 
| `topic` | O tópico do Kafka. | 

**Métricas do produtor do Kafka**

As métricas a seguir podem ser coletadas pelos produtores do Kafka.


| Métrica | Dimensões | Descrição | 
| --- | --- | --- | 
| `kafka.producer.io-wait-time-ns-avg` | [DEFAULT], `client-id` | O tempo médio que o thread de E/S ficou esperando por um socket pronto para leituras ou gravações.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** Média | 
| `kafka.producer.outgoing-byte-rate` | [DEFAULT], `client-id` | O número médio de bytes de saída enviados por segundo para todos os servidores.<br />**Unidade:** bytes<br />**Estatísticas significativas:** Média | 
| `kafka.producer.request-latency-avg` | [DEFAULT], `client-id` | A latência média da solicitação.<br />**Unidade:** milissegundos<br />**Estatísticas significativas:** Média | 
| `kafka.producer.request-rate` | [DEFAULT], `client-id` | O número médio de solicitações enviadas por segundo.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** Média | 
| `kafka.producer.response-rate` | [DEFAULT], `client-id` | O número de respostas recebidas por segundo.<br />**Unidade:** nenhuma<br />**Estatísticas significativas: **Mínimo, Máximo, Média | 
| `kafka.producer.byte-rate` | [DEFAULT], `client-id`, `topic` | O número médio de bytes enviados por segundo para um tópico.<br />**Unidade:** bytes<br />**Estatísticas significativas:** Média | 
| `kafka.producer.compression-rate` | [DEFAULT], `client-id`, `topic` | A taxa média de compactação dos lotes de registros de um tópico.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** Média | 
| `kafka.producer.record-error-rate` | [DEFAULT], `client-id`, `topic` | O número médio por segundo de envios de registros que resultaram em erros para um tópico.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** Média | 
| `kafka.producer.record-retry-rate` | [DEFAULT], `client-id`, `topic` | O número médio por segundo de tentativas de envio de registros de um tópico.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** Média | 
| `kafka.producer.record-send-rate` | [DEFAULT], `client-id`, `topic` | O número médio de registros enviados por segundo para um tópico.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** Média | 

As métricas do produtor do Kafka são coletadas com as seguintes dimensões:


| Dimensão | Descrição | 
| --- | --- | 
| [DEFAULT] | No Amazon EC2, por padrão, o host também é publicado como uma dimensão de métricas coletadas pelo agente do CloudWatch, a menos que você esteja usando o campo `append_dimensions` na seção `metrics`. Veja `omit_hostname` na seção do agente de [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obter mais informações.<br />No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`, `k8s.node.name`, `k8s.pod.name` e `k8s.replicaset.name`). Eles podem ser filtrados usando o campo `aggregation_dimensions`. | 
| `client-id` | O ID do cliente. | 
| `topic` | O tópico do Kafka. | 

## Coleta métricas do Tomcat
<a name="CloudWatch-Agent-Tomcat-metrics"></a>

Você pode usar o agente do CloudWatch para coletar métricas do Apache Tomcat. Para configurar, adicione uma seção `tomcat` à seção `metrics_collected` do arquivo de configuração do atendente do CloudWatch.

As seguintes métricas podem ser coletadas.


| Métrica | Dimensões | Descrição | 
| --- | --- | --- | 
| `tomcat.sessions` | [DEFAULT] | O número de sessões ativas.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `tomcat.errors` | [DEFAULT], `proto_handler` | A quantidade de erros encontrada.<br />**Unidade:** nenhuma<br />**Estatísticas significativas:** mínimo, máximo, média | 
| `tomcat.processing_time` | [DEFAULT], `proto_handler` | O tempo total de processamento.<br />**Unidade:** milissegundos<br />**Estatísticas significativas: **Mínimo, Máximo, Média  | 
| `tomcat.traffic` | [DEFAULT], `proto_handler` | O número de bytes recebidos e enviados.<br />**Unidade:** bytes<br />**Estatísticas significativas: **Mínimo, Máximo, Média  | 
| `tomcat.threads` | [DEFAULT], `proto_handler` | O número de threads.<br />**Unidade:** nenhuma<br />**Estatísticas significativas: **Mínimo, Máximo, Média  | 
| `tomcat.max_time` | [DEFAULT], `proto_handler`, `direction` | Tempo máximo para processar uma solicitação.<br />**Unidade:** milissegundos<br />**Estatísticas significativas: **Máximo  | 
| `tomcat.request_count` | [DEFAULT], `proto_handler` | O total de solicitações.<br />**Unidade:** nenhuma<br />**Estatísticas significativas: **Mínimo, Máximo, Média  | 

As métricas do Tomcat são coletadas com as seguintes dimensões:


| Dimensão | Descrição | 
| --- | --- | 
| [DEFAULT] | No Amazon EC2, por padrão, o host também é publicado como uma dimensão de métricas coletadas pelo agente do CloudWatch, a menos que você esteja usando o campo `append_dimensions` na seção `metrics`. Veja `omit_hostname` na seção do agente de [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md) para obter mais informações.<br />No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas (`k8s.container.name`, `k8s.deployment.name`, `k8s.namespace.name`, `k8s.node.name`, `k8s.pod.name` e `k8s.replicaset.name`). Eles podem ser filtrados usando o campo `aggregation_dimensions`. | 
| `proto_handler` | O `proto_handler` é um identificador para um conector, que é fornecido no formato `<protocol>-<type>-<port>` (por exemplo, `http-nio-8080`). | 
| `direction` | A direção do tráfego. Os possíveis valores são `received` e `sent`. | 