Esta página documenta as métricas coletadas ao monitorar o Apache Kafka com OpenTelemetry. As métricas são coletadas por meio do Kafka metrics receiver, JMX receiver e OpenTelemetry Java agent para métricas do lado do cliente.
Métodos de coleta de métricas
O monitoramento do Kafka OpenTelemetry usa dois receptores complementares:
- Coletor de métricas Kafka: Conecta-se à porta de bootstrap do Kafka para coletar métricas de cluster, tópico, partição e grupo de consumidores
- Receptor JMX: Conecta-se à porta JMX (normalmente 9999) para coletar métricas detalhadas do broker e métricas da JVM
Métricas do receptor de métricas do Kafka
Essas métricas são coletadas de corretores Kafka usando o protocolo Kafka (porta de bootstrap). Com base nos metadados do kafkametricsreceiver, com algumas métricas desativadas por padrão ou em configurações típicas.
Nome da métrica | Descrição | Tipo |
|---|---|---|
| Número total de corretores no cluster | Medidor (int) |
Nome da métrica | Descrição | Tipo | Atributo |
|---|---|---|---|
| Número de partições no tópico | Soma (int) | tema |
| Réplicas mínimas em sincronia de um tópico | Medidor (int) | tema |
| Fator de replicação de um tópico | Medidor (int) | tema |
Nome da métrica | Descrição | Tipo | Atributo |
|---|---|---|---|
| Número de réplicas em sincronia para uma partição | Soma (int) | tópico, partição |
| Número total de réplicas sincronizadas agregadas em todas as partições para um tópico | Soma (int) | tema |
Nome da métrica | Descrição | Tipo | Atributo |
|---|---|---|---|
| Contagem de membros no grupo de consumidores | Soma (int) | grupo |
| Deslocamento atual do grupo de consumidores na partição do tópico | Medidor (int) | grupo, tópico, partição |
| Soma do deslocamento do grupo de consumidores em todas as partições do tópico | Medidor (int) | grupo, tópico |
| Atraso aproximado atual do grupo de consumidores na partição do tópico | Medidor (int) | grupo, tópico, partição |
| Soma aproximada atual do atraso do grupo de consumidores em todas as partições do tópico | Medidor (int) | grupo, tópico |
Métricas do coletor JMX
O receptor JMX coleta métricas detalhadas dos MBeans do broker Kafka via JMX (normalmente porta 9999). As métricas são coletadas usando duas configurações:
- Sistema de destino Kafka padrão - Métricas específicas do Kafka integradas de
target_system: kafka(kafka.yaml) - Métricas JMX personalizadas - Métricas Kafka e JVM adicionais definidas na configuração personalizada
Métricas padrão do sistema de destino do Kafka
Essas métricas são coletadas automaticamente ao usar target_system: kafka:
Essas métricas são coletadas do broker do controlador e fornecem informações em todo o cluster:
Nome da métrica | Descrição | Tipo |
|---|---|---|
| O número de partições offline no cluster | Medidor |
| A contagem de eleição do líder | Contador |
| Contagem de eleição de líder suja - o aumento indica falhas no broker | Contador |
Nome da métrica | Descrição | Tipo |
|---|---|---|
| O número de mensagens recebidas pelo broker | Contador |
| O número de solicitações recebidas pelo broker | Contador |
| O número de solicitações com falha | Contador |
| O tempo total gasto no processamento de solicitações (ms) | Contador |
| Tempo médio de processamento da solicitação (ms) | Medidor |
| Tempo de solicitação do percentil 50 (ms) | Medidor |
| Tempo de solicitação no percentil 99 (ms) | Medidor |
| Bytes recebidos ou enviados pelo broker por segundo (inclui o atributo de direção: entrada/saída) | Contador |
| O número de solicitações aguardando no purgatório (operações de produção e busca) | Medidor |
| O número de partições no broker | Medidor |
| O número de partições sub-replicadas neste corretor | Medidor |
| Operações de réplica em sincronia (reduzir ou expandir) | Contador |
| Lag máximo entre réplicas seguidoras e líderes | Medidor |
| Se este broker é o controlador ativo (0 ou 1) | Medidor |
| Contagem de flush de log | Contador |
| Tempo de liberação de log - percentil 50 (ms) | Medidor |
| Tempo de liberação de log - percentil 99 (ms) | Medidor |
Atributos: Muitas métricas incluem o atributo type indicando o tipo de solicitação (por exemplo, fetch, produce) ou state para operações ISR (por exemplo, shrink, expand) ou direction para E/S de rede (entrada, saída).
Métricas JMX personalizadas
Essas métricas Kafka adicionais e métricas JVM são coletadas ao usar um arquivo de configuração JMX personalizado (conforme mostrado na configuração self-hosted). A configuração personalizada permite que você colete métricas específicas do Kafka adicionais além do conjunto padrão, bem como métricas de integridade da JVM.
Nome da métrica | Descrição | Tipo |
|---|---|---|
| O número total de tópicos no cluster | Medidor |
| O número total de partições no cluster | Medidor |
| O número de brokers cercados no cluster | Medidor |
| A contagem de partições de tópico para as quais o líder não é o líder preferido | Medidor |
Nome da métrica | Descrição | Tipo |
|---|---|---|
| O número de partições onde o número de réplicas em sincronia é menor que o mínimo | Medidor |
| Tempo de atividade do broker (ms) | Medidor |
| Número de partições para as quais este corretor é o líder | Medidor |
Nome da métrica | Descrição | Tipo | Atributo |
|---|---|---|---|
| O número de mensagens recebidas por tópico | Contador | tema |
| Os bytes recebidos ou enviados por tópico | Contador | tópico, direção (entrada/saída) |
Nome da métrica | Descrição | Tipo |
|---|---|---|
| Memória de heap atual usada (bytes) | Medidor |
| Memória de heap máxima disponível (bytes) | Medidor |
| Memória de heap confirmada (bytes) | Medidor |
| Número total de coletas de lixo que ocorreram | Contador |
| O tempo decorrido aproximado de coleta acumulada (ms) | Contador |
| Contagem total de threads (intervalo típico do Kafka de 100 a 300 threads) | Medidor |
| Média de carga do sistema (1 minuto) - alerta se for maior que a contagem da CPU | Medidor |
| Número de processadores disponíveis | Medidor |
| Utilização recente da CPU para o processo JVM (0,0 a 1,0) | Medidor |
| Utilização recente da CPU para todo o sistema (0,0 a 1,0) | Medidor |
| Número de descritores de arquivo abertos - alerta se for maior que 80% do ulimit | Medidor |
| Contagem de classes atualmente carregadas | Medidor |
| Uso do pool de memória por geração (G1 Old Gen, Eden, Survivor) em bytes | Medidor |
| Tamanho máximo do pool de memória (bytes) | Medidor |
| Memória usada após o último GC - mostra a linha de base de memória retida (bytes) | Medidor |
Atributos: As métricas da JVM incluem atributos como name (para nomes de coletores GC ou nomes de pool de memória).
Métricas do cliente Kafka (agente OpenTelemetry Java)
Essas métricas são coletadas de aplicativos produtores e consumidores Kafka instrumentados com o agente OpenTelemetry Java com instrumentação Kafka ativada. Estes fornecem visibilidade do lado do cliente nas interações do aplicativo com os brokers Kafka e complementam as métricas do lado do broker, fornecendo a perspectiva do aplicativo.
Métricas de conexão e rede
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.producer.connection_count | Número de conexões ativas | client-id |
kafka.producer.connection_creation_rate | Taxa de novas conexões estabelecidas | client-id |
kafka.producer.connection_creation_total | Total de conexões criadas | client-id |
kafka.producer.connection_close_rate | Taxa de conexões fechadas | client-id |
kafka.producer.network_io_rate | Taxa de operações de rede | client-id |
kafka.producer.network_io_total | Total de operações de rede | client-id |
kafka.producer.outgoing_byte_rate | Taxa de bytes de saída | client-id, node-id |
kafka.producer.outgoing_byte_total | Total de bytes de saída | client-id, node-id |
Métricas de solicitação e resposta
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.producer.request_rate | Taxa de solicitações enviadas | client-id, node-id |
kafka.producer.request_total | Total de solicitações enviadas | client-id, node-id |
kafka.producer.request_size_avg | Tamanho médio da solicitação | client-id, node-id |
kafka.producer.request_size_max | Tamanho máximo da solicitação | client-id, node-id |
kafka.producer.request_latency_avg | Latência média da solicitação (ms) | client-id, node-id |
kafka.producer.request_latency_max | Latência máxima da solicitação (ms) | client-id, node-id |
kafka.producer.response_rate | Taxa de respostas recebidas | client-id, node-id |
kafka.producer.response_total | Total de respostas recebidas | client-id, node-id |
kafka.producer.requests_in_flight | Número de solicitações em andamento | client-id |
Registrar métricas
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.producer.record_send_rate | Taxa de registros enviados | client-id, tópico |
kafka.producer.record_send_total | Total de registros enviados | client-id, tópico |
kafka.producer.record_error_rate | Taxa de erros de envio de registros | client-id, tópico |
kafka.producer.record_error_total | Total de erros de envio de registro | client-id, tópico |
kafka.producer.record_retry_rate | Taxa de novas tentativas de registro | client-id, tópico |
kafka.producer.record_retry_total | Total de tentativas de registro | client-id, tópico |
kafka.producer.record_size_avg | Tamanho médio do registro | client-id |
kafka.producer.record_size_max | Tamanho máximo do registro | client-id |
kafka.producer.record_queue_time_avg | Tempo médio que os registros passam no buffer de envio (ms) | client-id |
kafka.producer.record_queue_time_max | Tempo máximo que os registros gastam no buffer de envio (ms) | client-id |
kafka.producer.records_per_request_avg | Média de registros por solicitação | client-id |
Métricas de throughput
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.producer.byte_rate | Taxa de bytes produzidos | client-id, tópico |
kafka.producer.byte_total | Total de bytes produzidos | client-id, tópico |
kafka.producer.compression_rate | Taxa média de compressão | client-id, tópico |
kafka.producer.compression_rate_avg | Taxa média de compressão | client-id |
Métricas de lote
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.producer.batch_size_avg | Tamanho médio do lote | client-id |
kafka.producer.batch_size_max | Tamanho máximo do lote | client-id |
kafka.producer.batch_split_rate | Taxa de divisões de lote | client-id |
kafka.producer.batch_split_total | Divisões de lote total | client-id |
Métricas do buffer
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.producer.buffer_total_bytes | Memória total do buffer | client-id |
kafka.producer.buffer_available_bytes | Memória de buffer disponível | client-id |
kafka.producer.buffer_exhausted_rate | Taxa de exaustão do buffer | client-id |
kafka.producer.buffer_exhausted_total | Exaustões totais do buffer | client-id |
kafka.producer.bufferpool_wait_ratio | Fração de tempo de espera por espaço no buffer | client-id |
kafka.producer.bufferpool_wait_time_total | Tempo total de espera por espaço no buffer | client-id |
Métricas de E/S
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.producer.io_ratio | Fração de tempo gasto em E/S | client-id |
kafka.producer.io_time_ns_avg | Tempo médio de E/S (ns) | client-id |
kafka.producer.io_wait_time_ns_avg | Tempo médio de espera de E/S (ns) | client-id |
kafka.producer.io_wait_ratio | Fração de tempo esperando por E/S | client-id |
kafka.producer.iotime_total | Tempo total de E/S | client-id |
kafka.producer.io_waittime_total | Tempo total de espera de E/S | client-id |
Métricas de limitação
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.producer.produce_throttle_time_avg | Tempo médio de limitação (ms) | client-id |
kafka.producer.produce_throttle_time_max | Tempo máximo de limitação (ms) | client-id |
Métricas de autenticação
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.producer.successful_authentication_rate | Taxa de autenticações bem-sucedidas | client-id |
kafka.producer.successful_authentication_total | Total de autenticações bem-sucedidas | client-id |
kafka.producer.successful_authentication_no_reauth_total | Autenticações bem-sucedidas sem reautenticação | client-id |
kafka.producer.successful_reauthentication_rate | Taxa de reautenticações bem-sucedidas | client-id |
kafka.producer.successful_reauthentication_total | Total de reautenticações bem-sucedidas | client-id |
kafka.producer.failed_authentication_rate | Taxa de autenticações com falha | client-id |
kafka.producer.failed_authentication_total | Total de autenticações com falha | client-id |
kafka.producer.failed_reauthentication_rate | Taxa de falhas nas reautenticações | client-id |
kafka.producer.failed_reauthentication_total | Total de reautenticações com falha | client-id |
kafka.producer.reauthentication_latency_avg | Latência média de reautenticação (ms) | client-id |
kafka.producer.reauthentication_latency_max | Latência máxima de reautenticação (ms) | client-id |
Métricas diversas
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.producer.metadata_age | Idade dos metadados atuais (segundos) | client-id |
kafka.producer.waiting_threads | Número de threads aguardando espaço no buffer | client-id |
kafka.producer.select_rate | Taxa de chamadas select | client-id |
kafka.producer.select_total | Total de chamadas de seleção | client-id |
Métricas de conexão e rede
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.consumer.connection_count | Número de conexões ativas | client-id |
kafka.consumer.connection_creation_rate | Taxa de novas conexões estabelecidas | client-id |
kafka.consumer.connection_creation_total | Total de conexões criadas | client-id |
kafka.consumer.connection_close_rate | Taxa de conexões fechadas | client-id |
kafka.consumer.connection_close_total | Total de conexões fechadas | client-id |
kafka.consumer.network_io_rate | Taxa de operações de rede | client-id |
kafka.consumer.network_io_total | Total de operações de rede | client-id |
kafka.consumer.outgoing_byte_rate | Taxa de bytes de saída | client-id, node-id |
kafka.consumer.incoming_byte_rate | Taxa de bytes de entrada | client-id, node-id |
Métricas de solicitação e resposta
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.consumer.request_rate | Taxa de solicitações enviadas | client-id, node-id |
kafka.consumer.request_total | Total de solicitações enviadas | client-id, node-id |
kafka.consumer.request_size_avg | Tamanho médio da solicitação | client-id, node-id |
kafka.consumer.request_size_max | Tamanho máximo da solicitação | client-id, node-id |
kafka.consumer.request_latency_avg | Latência média da solicitação (ms) | client-id, node-id |
kafka.consumer.request_latency_max | Latência máxima da solicitação (ms) | client-id, node-id |
kafka.consumer.response_rate | Taxa de respostas recebidas | client-id, node-id |
kafka.consumer.response_total | Total de respostas recebidas | client-id, node-id |
Métricas de consumo
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.consumer.bytes_consumed_rate | Taxa de bytes consumidos | client-id, tópico |
kafka.consumer.bytes_consumed_total | Total de bytes consumidos | client-id, tópico |
kafka.consumer.records_consumed_rate | Taxa de registros consumidos | client-id, tópico |
kafka.consumer.records_consumed_total | Total de registros consumidos | client-id, tópico |
kafka.consumer.records_per_request_avg | Média de registros por solicitação | client-id, tópico |
Métricas de lag do consumidor
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.consumer.records_lag | Atraso atual no número de registros | partição, ID do cliente, tópico |
kafka.consumer.records_lag_avg | Atraso médio do consumidor | partição, ID do cliente, tópico |
kafka.consumer.records_lag_max | Atraso máximo do consumidor | partição, ID do cliente, tópico |
kafka.consumer.records_lead | Líder atual em número de registros | partição, ID do cliente, tópico |
kafka.consumer.records_lead_avg | Lead médio do consumidor | partição, ID do cliente, tópico |
kafka.consumer.records_lead_min | Lead mínimo do consumidor | partição, ID do cliente, tópico |
Buscar métricas
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.consumer.fetch_rate | Taxa de solicitações de busca | client-id |
kafka.consumer.fetch_total | Total de solicitações de busca | client-id |
kafka.consumer.fetch_size_avg | Tamanho médio da busca | client-id, tópico |
kafka.consumer.fetch_size_max | Tamanho máximo da busca | client-id, tópico |
kafka.consumer.fetch_latency_avg | Latência média de busca (ms) | client-id |
kafka.consumer.fetch_latency_max | Latência máxima de busca (ms) | client-id |
kafka.consumer.fetch_throttle_time_avg | Tempo médio de limitação de busca (ms) | client-id |
kafka.consumer.fetch_throttle_time_max | Tempo máximo de limitação de busca (ms) | client-id |
Métricas de coordenação do grupo de consumidores
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.consumer.assigned_partitions | Número de partições atribuídas | client-id |
kafka.consumer.commit_rate | Taxa de confirmações de deslocamento | client-id |
kafka.consumer.commit_total | Total de confirmações de deslocamento | client-id |
kafka.consumer.commit_latency_avg | Latência média de commit (ms) | client-id |
kafka.consumer.commit_latency_max | Latência máxima de commit (ms) | client-id |
kafka.consumer.heartbeat_rate | Taxa de batimentos cardíacos enviados | client-id |
kafka.consumer.heartbeat_total | Total de batimentos cardíacos enviados | client-id |
kafka.consumer.heartbeat_response_time_max | Tempo máximo de resposta do heartbeat (ms) | client-id |
kafka.consumer.last_heartbeat_seconds_ago | Segundos desde o último heartbeat | client-id |
kafka.consumer.last_poll_seconds_ago | Segundos desde a última pesquisa | client-id |
Métricas de reequilíbrio
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.consumer.rebalance_total | Total de reequilíbrios | client-id |
kafka.consumer.rebalance_rate_per_hour | Reequilíbrios por hora | client-id |
kafka.consumer.rebalance_latency_avg | Latência média de rebalanceamento (ms) | client-id |
kafka.consumer.rebalance_latency_max | Latência máxima de rebalanceamento (ms) | client-id |
kafka.consumer.rebalance_latency_total | Tempo total de rebalanceamento (ms) | client-id |
kafka.consumer.failed_rebalance_total | Total de rebalanceamentos falhos | client-id |
kafka.consumer.failed_rebalance_rate_per_hour | Reequilíbrios com falha por hora | client-id |
kafka.consumer.last_rebalance_seconds_ago | Segundos desde o último rebalanceamento | client-id |
kafka.consumer.partition_assigned_latency_avg | Latência média de atribuição de partição (ms) | client-id |
kafka.consumer.partition_assigned_latency_max | Latência máxima de atribuição de partição (ms) | client-id |
kafka.consumer.partition_revoked_latency_avg | Latência média de revogação de partição (ms) | client-id |
kafka.consumer.partition_revoked_latency_max | Latência máxima de revogação de partição (ms) | client-id |
kafka.consumer.partition_lost_latency_avg | Latência média de perda de partição (ms) | client-id |
kafka.consumer.partition_lost_latency_max | Latência máxima de perda de partição (ms) | client-id |
Métricas do grupo de sincronização
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.consumer.sync_rate | Taxa de sincronizações de grupo | client-id |
kafka.consumer.sync_total | Sincronizações totais do grupo | client-id |
kafka.consumer.sync_time_avg | Tempo médio de sincronização (ms) | client-id |
kafka.consumer.sync_time_max | Tempo máximo de sincronização (ms) | client-id |
kafka.consumer.join_rate | Taxa de adesões ao grupo | client-id |
kafka.consumer.join_total | Total de entradas no grupo | client-id |
kafka.consumer.join_time_avg | Tempo médio de junção (ms) | client-id |
kafka.consumer.join_time_max | Tempo máximo de junção (ms) | client-id |
Métricas de E/S
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.consumer.io_ratio | Fração de tempo gasto em E/S | client-id |
kafka.consumer.io_time_ns_avg | Tempo médio de E/S (ns) | client-id |
kafka.consumer.io_wait_time_ns_avg | Tempo médio de espera de E/S (ns) | client-id |
kafka.consumer.io_wait_ratio | Fração de tempo esperando por E/S | client-id |
kafka.consumer.iotime_total | Tempo total de E/S | client-id |
kafka.consumer.io_waittime_total | Tempo total de espera de E/S | client-id |
Métricas de sondagem
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.consumer.poll_idle_ratio_avg | Fração média de tempo o consumidor fica ocioso durante a pesquisa | client-id |
kafka.consumer.time_between_poll_avg | Tempo médio entre as pesquisas (ms) | client-id |
kafka.consumer.time_between_poll_max | Tempo máximo entre as pesquisas (ms) | client-id |
Métricas de autenticação
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.consumer.successful_authentication_rate | Taxa de autenticações bem-sucedidas | client-id |
kafka.consumer.successful_authentication_total | Total de autenticações bem-sucedidas | client-id |
kafka.consumer.successful_authentication_no_reauth_total | Autenticações bem-sucedidas sem reautenticação | client-id |
kafka.consumer.successful_reauthentication_rate | Taxa de reautenticações bem-sucedidas | client-id |
kafka.consumer.successful_reauthentication_total | Total de reautenticações bem-sucedidas | client-id |
kafka.consumer.failed_authentication_rate | Taxa de autenticações com falha | client-id |
kafka.consumer.failed_authentication_total | Total de autenticações com falha | client-id |
kafka.consumer.failed_reauthentication_rate | Taxa de falhas nas reautenticações | client-id |
kafka.consumer.failed_reauthentication_total | Total de reautenticações com falha | client-id |
kafka.consumer.reauthentication_latency_avg | Latência média de reautenticação (ms) | client-id |
kafka.consumer.reauthentication_latency_max | Latência máxima de reautenticação (ms) | client-id |
Métricas diversas
| Nome da métrica | Descrição | Atributo |
|---|---|---|
kafka.consumer.select_rate | Taxa de chamadas select | client-id |
kafka.consumer.select_total | Total de chamadas de seleção | client-id |
Atributo métrico
As métricas podem ser filtradas e agrupadas usando os seguintes atributos:
Atributos comuns:
kafka.cluster.name- Nome do cluster Kafka (todas as métricas)instrumentation.provider- Sempreopentelemetry(todas as métricas)topic- Nome do tópico Kafkapartition- Número da partiçãogroup- Nome do grupo de consumidoresbroker.id- Identificador do broker (métricas JMX)client-id- Identificador do cliente (métricas do cliente)node-id- Identificador do nó do broker (métricas do cliente)type- Tipo de solicitação (por exemplo, busca, produção)direction- Direção dos dados (entrada, saída)state- Estado da operação ISR (shrink, expand)name- Nome do coletor GC ou pool de memória (métricas JVM)
Próximos passos
- Consultar e visualizar seus dados - Encontre métricas na interface do usuário da New Relic, escreva consultas NRQL, crie dashboards e configure alertas
- Consultar tipos de dados de métricas - Aprenda técnicas avançadas para trabalhar com métricas OpenTelemetry