Monitoramento do conector Kafka usando Java Management Extensions (JMX)¶
Este tópico descreve como usar Java Management Extensions (JMX) para monitorar o conector Snowflake para Kafka. O Kafka Connect fornece métricas JMX pré-configuradas que oferecem informações sobre o conector Kafka. O conector Snowflake para Kafka fornece vários Managed Beans (MBeans) que você pode usar para ingerir métricas sobre o ambiente Kafka. Você pode carregar essas informações em ferramentas de terceiros, entre elas Prometheus e Grafana.
O recurso JMX está habilitado no conector por padrão. Para desativar o JMX, defina a propriedade jmx
como false
.
Importante
Snowpipe oferece suporte à versão do conector Kafka 1.6.0 e posterior.
Snowpipe Streaming oferece suporte à versão do conector Kafka 2.1.2 e posterior.
Neste tópico:
Configuração do JMX no conector Kafka¶
O JMX fica ativado por padrão no conector Snowflake para Kafka. Para habilitar o JMX no Kafka, execute o seguinte:
Habilite o JMX para se conectar à sua instalação do Kafka:
Para realizar conexões JMX a uma instalação do Kafka rodando em um servidor remoto, defina a variável de ambiente
KAFKA_JMX_OPTS
em seu script de inicialização do Kafka Connect:export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<ip_address> -Dcom.sun.management.jmxremote.port=<jmx_port>"
Onde:
ip_address
: especifica o endereço IP da sua instalação do Kafka Connect.jmx_port
: especifica a porta JMX onde o Kafka Connect ouve as conexões JMX.
Para realizar conexões JMX com o Kafka rodando no mesmo servidor, defina a variável de ambiente
JMX_PORT
em seu script de inicialização do Kafka:export JMX_PORT=<port_number>
Onde
port_number
é a porta JMX da sua instalação do Kafka.
Reinicie o conector Kafka.
Como usar Managed Beans (MBeans) no conector Snowflake para Kafka¶
O JMX usa MBeans para representar objetos que podem ser monitorados no Kafka (por exemplo, contagem de threads, carga de cpu, etc.). O conector Snowflake para Kafka fornece MBeans para acessar objetos gerenciados pelo conector. Você pode usar esses MBeans para criar painéis de monitoramento.
O formato geral do MBean do conector Kafka é o nome do objeto:
snowflake.kafka.connector:connector=connector_name,pipe=pipe_name,category=category_name,name=metric_name
Onde:
connector=connector_name
especifica o nome do conector definido no arquivo de configuração do Kafka.pipe=pipe_name
especifica o objeto Snowpipe utilizado para ingerir dados. O conector Kafka define os objetos Snowpipe para cada partição.category=category_name
especifica a categoria do MBean. Cada categoria contém um conjunto de métricas.name=metric_name
especifica o nome da métrica.
As seções seguintes listam os nomes das categorias e métricas fornecidas pelo conector Snowflake para Kafka.
Categoria: file-counts
¶
Esta categoria de métricas se aplica apenas ao conector Kafka baseado em Snowpipe e não se aplica ao Snowpipe Streaming.
Nome da métrica |
Tipo de dados |
Descrição |
---|---|---|
|
long |
O número de arquivos em um estágio interno atualmente. Este valor é determinado após o início do processo de limpeza dos arquivos. Esta propriedade fornece uma estimativa de quantos arquivos estão em um estágio interno atualmente. |
|
long |
O número de arquivos no Snowpipe, determinado chamando a API REST |
|
long |
O número de arquivos no estágio da tabela que falharam na ingestão. |
|
long |
O número de arquivos presentes na tabela de estágio que corresponde a um offset quebrado. |
|
long |
O número de arquivos removidos do estágio interno depois da determinação do status de ingestão. |
Categoria: offsets
¶
As métricas offsetPersistedInSnowflake
e latestConsumerOffset
se aplicam ao conector Kafka baseado em Snowpipe Streaming. O restante desta categoria se aplica apenas ao conector Kafka baseado em Snowpipe.
Nome da métrica |
Tipo de dados |
Descrição |
---|---|---|
|
long |
Um offset referente ao registro mais recente enviado para o buffer de memória. |
|
long |
Um offset referente a um registro que está sendo esvaziado em um estágio interno depois que o limite do buffer foi atingido. O buffer pode atingir seu limite por tempo, número de registros ou tamanho. |
|
long |
Um offset referente a um registro que teve uma API pré-confirmada chamada e chamou o |
|
long |
Um offset referente a um registro que está sendo eliminado do estágio interno. Este número é o valor o maior offset recente que foi eliminado do estágio interno. |
|
long |
Um offset que se refere a um registro que possui os dados persistentes mais recentes no Snowflake. O offset é determinado pela chamada da |
|
long |
Um offset que se refere ao registro mais recente enviado para o buffer de memória. Ele só é usado para reenviar o offset quando o token de offset do canal é |
Categoria: buffer
¶
Esta categoria de métricas está disponível apenas para o conector Kafka baseado em Snowpipe.
Nome da métrica |
Tipo de dados |
Descrição |
---|---|---|
|
long |
Com base nos limites do buffer, retorna o tamanho do buffer (em bytes) antes de ser esvaziado para um estágio interno. Este valor pode não ser igual ao tamanho do arquivo, uma vez que os arquivos são compactados ao serem carregados em um estágio interno. |
|
long |
Com base nos limites do buffer, retorna o número de registros do Kafka armazenados na memória antes que o buffer seja esvaziado para um estágio interno. |
Categoria: latencies
¶
Esta categoria de métricas está disponível apenas para o conector Kafka baseado em Snowpipe.
Nome da métrica |
Tipo de dados |
Descrição |
---|---|---|
|
long |
A diferença (em segundos) entre o momento em que o registro é colocado no Kafka e o momento em que o registro é obtido no Kafka Connect. Note que este valor pode ser nulo se o valor não tiver sido estabelecido dentro de um registro. |
|
long |
A diferença (em segundos) entre o momento em que o arquivo é carregado em um estágio interno e o momento em que o |
|
long |
A diferença (em segundos) entre o momento em que um arquivo é carregado m um estágio interno e o momento em que o status de ingestão do arquivo é relatado através da API |