Esta página documenta as métricas coletadas ao monitorar o Apache Kafka com o OpenTelemetry. As métricas são coletadas via Kafka metrics receiver, métricas JMX (do OpenTelemetry Java Agent ou Prometheus JMX Exporter) e OpenTelemetry Java agent para métricas do lado do cliente.
Métodos de coleta de métricas
O monitoramento do Kafka com OpenTelemetry usa dois métodos de coleta 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
- Métricas JMX: Coletadas via OpenTelemetry Java Agent (auto-hospedado) ou Prometheus JMX Exporter (Kubernetes) para reunir 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 |
|---|---|---|---|
| Number of in-sync replicas for a partition. This metric is filtered out by the collector pipeline — only the aggregated | 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 JMX
As métricas JMX fornecem telemetria detalhada do broker Kafka e da JVM. Essas métricas são coletadas usando:
- Self-hosted Kafka: OpenTelemetry Java Agent or Prometheus JMX Exporter
- Kubernetes (self-managed): OpenTelemetry Java Agent or Prometheus JMX Exporter
- Kubernetes (Strimzi): Prometheus JMX Exporter com configuração personalizada do New Relic
Ambos os métodos coletam o mesmo conjunto de métricas de broker Kafka e JVM documentadas abaixo:
Essas métricas fornecem telemetria abrangente do broker do Kafka, incluindo integridade do cluster, desempenho do broker e métricas por tópico.
Métricas de todo o cluster
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 |
| The leader election count. Only appears when a leader election occurs; not emitted on stable clusters. | Contador |
| Contagem de eleição de líder suja - o aumento indica falhas no broker | Contador |
| 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 |
Métricas de nível de broker
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 |
| 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 |
| Size of the request queue on the broker | 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 por tópico
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).
Kafka client metrics
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 |
kafka.producer.incoming_byte_rate | Rate of incoming bytes (responses from brokers) | client-id, node-id |
kafka.producer.incoming_byte_total | Total incoming bytes (responses from brokers) | 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 | Average partition assignment latency (ms). Only emitted during consumer group rebalances. | client-id |
kafka.consumer.partition_assigned_latency_max | Maximum partition assignment latency (ms). Only emitted during consumer group rebalances. | client-id |
kafka.consumer.partition_revoked_latency_avg | Average partition revocation latency (ms). Only emitted during consumer group rebalances. | client-id |
kafka.consumer.partition_revoked_latency_max | Maximum partition revocation latency (ms). Only emitted during consumer group rebalances. | client-id |
kafka.consumer.partition_lost_latency_avg | Average partition loss latency (ms). Only emitted during consumer group rebalances. | client-id |
kafka.consumer.partition_lost_latency_max | Maximum partition loss latency (ms). Only emitted during consumer group rebalances. | 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
- Consulte e visualize seus dados - Encontre métricas na interface do 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 do OpenTelemetry