Coletar métricas do Java Management Extensions (JMX)
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)
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.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.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 doUnit
em MetricDatum.
-
-
-
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.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.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 doUnit
em MetricDatum.
-
-
-
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.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.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 doUnit
em MetricDatum.
-
-
-
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.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.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 doUnit
em MetricDatum.
-
-
-
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.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.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 doUnit
em MetricDatum.
-
-
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 campoappend_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 é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 ometrics_collection_interval
global especificado na seçãoagent
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.
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 propriedadecom.sun.management.jmxremote.password.file
. Se o SSL estiver habilitado, ele exigirá entradas parakeystore
etruststore
e fará a correspondência aojavax.net.ssl.keyStorePassword
ejavax.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 à propriedadejavax.net.ssl.keyStore
. -
keystore_type
: se o SSL estiver habilitado, especifique o tipo de keystore que está sendo usado. Corresponde à propriedadejavax.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 à propriedadejavax.net.ssl.trustStore
. -
truststore_type
: se o SSL estiver habilitado, especifique o tipo de truststore que está sendo usado. Corresponde à propriedadejavax.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
eSASL/CRAM-MD5
. Deve ser um dos seguintes:SASL/PLAIN
,SASL/DIGEST-MD5
,SASL/CRAM-MD5
,TLS SASL/PLAIN
,TLS SASL/DIGEST-MD5
ouTLS SASL/CRAM-MD5
-
realm
: opcional. O realm, conforme exigido pelo perfilSASL/DIGEST-MD5
remoto. -
registry_ssl_enabled
: se a autenticação por registro RMI estiver habilitada. Defina como true se a JVM tiver sido configurada comcom.sun.management.jmxremote.registry.ssl=true
. -
insecure
Defina comotrue
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
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 |
---|---|---|
|
[DEFAULT] |
O número total de classes carregadas. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT], |
O número total de coletas de resíduos que ocorreram. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT], |
O tempo decorrido aproximado da coleta de resíduos acumulada. Unidade: milissegundos Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
A quantidade inicial de memória que a JVM solicita do sistema operacional para o heap. Unidade: bytes Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
A quantidade máxima de memória que pode ser usada para o heap. Unidade: bytes Estatísticas significativas: Máximo |
|
[DEFAULT] |
O uso atual da memória do heap. Unidade: bytes Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
A quantidade de memória que é garantida como disponível para o heap. Unidade: bytes Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
A quantidade inicial de memória que a JVM solicita do sistema operacional para fins não relacionados ao heap. Unidade: bytes Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
A quantidade máxima de memória que pode ser usada para fins não relacionados ao heap. Unidade: bytes Estatísticas significativas: Máximo |
|
[DEFAULT] |
O uso atual de memória não heap. Unidade: bytes Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
A quantidade de memória que é garantida como disponível para fins que não relacionados ao heap. Unidade: bytes Estatísticas significativas: Mínimo, Máximo, Média |
|
[DEFAULT], |
A quantidade inicial de memória que a JVM solicita do sistema operacional para o pool de memória. Unidade: bytes Estatísticas significativas: Mínimo, Máximo, Média |
|
[DEFAULT], |
A quantidade máxima de memória que pode ser usada para o pool de memória. Unidade: bytes Estatísticas significativas: Máximo |
|
[DEFAULT], |
O uso atual da memória do pool de memória. Unidade: bytes Estatísticas significativas: Mínimo, Máximo, Média |
|
[DEFAULT], |
A quantidade de memória que é garantida como disponível para o pool de memória. Unidade: bytes Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
O número atual de threads. Unidade: nenhuma 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 No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas ( |
|
Para as métricas Para as métricas |
Coletar métricas do Kafka
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 |
---|---|---|
|
[DEFAULT] |
O número de mensagens recebidas pelo operador do Kafka. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT], |
O número de solicitações recebidas pelo operador do Kafka. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT], |
O número de solicitações ao operador do Kafka que resultaram em uma falha. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT], |
O tempo total que o operador do Kafka levou para atender às solicitações. Unidade: milissegundos Estatísticas significativas: Mínimo, Máximo, Média |
|
[DEFAULT], |
O percentil 50 do tempo que o operador do Kafka levou para atender às solicitações. Unidade: milissegundos Estatísticas significativas: Mínimo, Máximo, Média |
|
[DEFAULT], |
O percentil 99 do tempo que o operador do Kafka levou para atender às solicitações. Unidade: milissegundos Estatísticas significativas: Mínimo, Máximo, Média |
|
[DEFAULT], |
O tempo médio que o operador do Kafka levou para atender às solicitações. Unidade: milissegundos Estatísticas significativas: Média |
|
[DEFAULT], |
O número de bytes recebidos ou enviados pelo operador do Kafka. Unidade: bytes Estatísticas significativas: Mínimo, Máximo, Média |
|
[DEFAULT], |
O número de solicitações que aguardam no purgatório. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
O número de partições no operador do Kafka. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
O número de partições que estão offline. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
O número de partições sub-replicadas. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT], |
O número de operações de redução e expansão de réplicas sincronizadas. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
O atraso máximo nas mensagens entre as réplicas seguidoras e líderes. Unidade: nenhuma Estatísticas significativas: Máximo |
|
[DEFAULT] |
O número de controladores ativos no operador. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
Taxa de eleição do líder. Caso aumente, indica falhas do operador. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
Taxa de eleição do líder indeterminada. Caso aumente, indica falhas do operador. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
O tamanho da solicitação da fila. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
A contagem de liberação de logs. Unidade: milissegundos Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
O valor do percentil 50 da contagem de liberação de logs. Unidade: milissegundos Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT] |
O valor do percentil 99 da contagem de liberação de logs. Unidade: milissegundos 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 No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas ( |
|
O tipo da solicitação. Os valores possíveis são |
|
A direção do tráfego de rede. Os possíveis valores são |
|
O tipo de operação da réplica sincronizada. Os possíveis valores são |
Métricas do consumidor do Kafka
As métricas a seguir podem ser coletadas pelos consumidores do Kafka.
Métrica | Dimensões | Descrição |
---|---|---|
|
[DEFAULT], |
O número de solicitações de busca para todos os tópicos por segundo. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT], |
O número de mensagens que o consumidor está atrasado em relação ao produtor. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT], |
O número médio de bytes consumidos por segundo para todos os tópicos. Unidade: bytes Estatísticas significativas: Média |
|
[DEFAULT], |
O número de bytes buscados por solicitação para todos os tópicos. Unidade: bytes Estatísticas significativas: Mínimo, Máximo, Média |
|
[DEFAULT], |
O número médio de registros consumidos por segundo para todos os tópicos. Unidade: nenhuma Estatísticas significativas: Média |
|
[DEFAULT], |
O número médio de bytes consumidos por segundo. Unidade: bytes Estatísticas significativas: Média |
|
[DEFAULT], |
O número de bytes buscados por solicitação. Unidade: bytes Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT], |
O número médio de registros consumidos por segundo. Unidade: nenhuma 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 No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas ( |
|
O ID do cliente. |
|
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 |
---|---|---|
|
[DEFAULT], |
O tempo médio que o thread de E/S ficou esperando por um socket pronto para leituras ou gravações. Unidade: nenhuma Estatísticas significativas: Média |
|
[DEFAULT], |
O número médio de bytes de saída enviados por segundo para todos os servidores. Unidade: bytes Estatísticas significativas: Média |
|
[DEFAULT], |
A latência média da solicitação. Unidade: milissegundos Estatísticas significativas: Média |
|
[DEFAULT], |
O número médio de solicitações enviadas por segundo. Unidade: nenhuma Estatísticas significativas: Média |
|
[DEFAULT], |
O número de respostas recebidas por segundo. Unidade: nenhuma Estatísticas significativas: Mínimo, Máximo, Média |
|
[DEFAULT], |
O número médio de bytes enviados por segundo para um tópico. Unidade: bytes Estatísticas significativas: Média |
|
[DEFAULT], |
A taxa média de compactação dos lotes de registros de um tópico. Unidade: nenhuma Estatísticas significativas: Média |
|
[DEFAULT], |
O número médio por segundo de envios de registros que resultaram em erros para um tópico. Unidade: nenhuma Estatísticas significativas: Média |
|
[DEFAULT], |
O número médio por segundo de tentativas de envio de registros de um tópico. Unidade: nenhuma Estatísticas significativas: Média |
|
[DEFAULT], |
O número médio de registros enviados por segundo para um tópico. Unidade: nenhuma 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 No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas ( |
|
O ID do cliente. |
|
O tópico do Kafka. |
Coleta métricas do Tomcat
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 |
---|---|---|
|
[DEFAULT] |
O número de sessões ativas. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT], |
A quantidade de erros encontrada. Unidade: nenhuma Estatísticas significativas: mínimo, máximo, média |
|
[DEFAULT], |
O tempo total de processamento. Unidade: milissegundos Estatísticas significativas: Mínimo, Máximo, Média |
|
[DEFAULT], |
O número de bytes recebidos e enviados. Unidade: bytes Estatísticas significativas: Mínimo, Máximo, Média |
|
[DEFAULT], |
O número de threads. Unidade: nenhuma Estatísticas significativas: Mínimo, Máximo, Média |
|
[DEFAULT], |
Tempo máximo para processar uma solicitação. Unidade: milissegundos Estatísticas significativas: Máximo |
|
[DEFAULT], |
O total de solicitações. Unidade: nenhuma 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 No Amazon EKS, por padrão, o contexto relacionado ao k8s também é publicado como dimensões de métricas ( |
|
O |
|
A direção do tráfego. Os possíveis valores são |