Kafka

El plugin muestra las métricas de rendimiento de los productores y consumidores.

Introducción

Ver. 11-10-2022

El plugin obtiene métricas sobre el rendimiento del productor y del consumidor

Esto es portado desde el productor de Java, para más detalles ver:

https://kafka.apache.org/documentation/#consumer_monitoring
https://kafka.apache.org/documentation/#producer_monitoring

Tipo: Plug-in de servidor

Matriz de compatibilidad

Sistemas donde se ha probado

Rocky linux

Sistemas donde debería funcionar

Cualquier sistema linux 

Pre requisitos

Parámetros


Parámetro Descripción
--bootstrap_servers Cadena 'host[:port]' (o lista de cadenas 'host[:port]') que el productor debe contactar para arrancar los metadatos del clúster inicial. Esta no tiene que ser la lista completa de nodos. Solo necesita tener al menos un corredor que responda a una solicitud de API de metadatos. El puerto predeterminado es 9092. Si no se especifica ningún servidor, el puerto predeterminado será localhost:9092.
--topics Lista de topics separados por coma
--topic_regex Regex para suscripción (sobrescribe --topics)
--agent_prefix Prefijo para el nombre de los agentes creados
--module_prefix Prefijo para el nombre de los módulos creados
--transfer_mode Modo de envío (tentacle por defecto)
--tentacle_ip IP del servidor Tentacle (default: 127.0.0.1)
--tentacle_port Puerto Tentacle (default: 41121)
--verbose Activa debug


Ejecución manual

./pandora_kafka \
  --bootstrap_servers <ip:port[,ip:port,...]> \
  [ --topics <topic1,topic2,...> ] \
  [ --topic_regex <regex_pattern> ] \
  [ --agent_prefix <prefix> ] \
  [ --module_prefix <prefix> ] \
  [ --transfer_mode <tentacle|local> ] \
  [ --tentacle_ip <ip> ] \
  [ --tentacle_port <port> ] \
  [ --verbose ]

Por ejemplo :

./pandora_kafka \
  --bootstrap_servers kafka1:9092,kafka2:9092 \
  --topic_regex "^prod-.*" \
  --agent_prefix KAFKA_ \
  --module_prefix METRIC_ \
  --transfer_mode tentacle \
  --tentacle_ip 10.0.0.20 \
  --tentacle_port 41121 \
  --verbose

Configuración en PandoraFMS

Como plugin de servidor

Instalación manual

Iremos a servidores > plugins:

image-1629974405286.png

Pinchamos en añadir:

image-1629974430627.png

Le ponemos en nombre y la descripción que se prefiera.

Metemos como comando la ejecución con la ruta del plugin:

/path_pandora_kafka

Recuerda que la ruta recomendada para el uso de los plugins de servidor es: /usr/share/pandora_server/util/plugin/

Y en parámetros del plugin introduciremos estos seguidos de la macro "_field<N>_", el obligatorio para que funcione  es --conf.

Aunque no es obligatorio, es muy recomendable el uso del parámetro --agent_alias , ya que nos permite personalizar el nombre del agente que contendrá los módulos creados para cada consulta personalizada. También es recomendable usar el parámetro --module_prefix ya que este nos permitirá asignar un prefijo a los módulos, lo que puede ser útil para reconocerlos más rápido y diferenciarlos si creamos varias ejecuciones para bases de datos diferentes.

 

Una vez hecho esto, daremos a "crear".

Una vez hecho esto, solo queda llamarlo por lo que iremos a la vista de algún agente y crearemos un módulo de complementos:

image-1646741530197.png

Le daremos un nombre y en el apartado "plugin" pondremos el que acabamos de configurar.

Una vez hecho esto, damos a crear.

Si el modulo se muestra con 1, quiere decir que se esta ejecutando correctamente.

Módulos generados por el plugin

El plugin creará un agente con un nombre personalizable con el parámetro --agent_alias o con nombre "Kafka" por defecto que contendrá todos los módulos de la ejecución.

image-1665505347992.png

Módulos

 Producer

kafka-metrics-count

count

producer-metrics

connection-close-rate
connection-creation-rate
select-rate
io-wait-time-ns-avg
io-wait-ratio
io-time-ns-avg
io-ratio
connection-count
network-io-rate
outgoing-byte-rate
request-rate
request-size-avg
request-size-max
incoming-byte-rate
response-rate
request-latency-avg
request-latency-max
bufferpool-wait-ratio
batch-size-avg
batch-size-max
compression-rate-avg
record-queue-time-avg
record-queue-time-max
produce-throttle-time-avg
produce-throttle-time-max
record-send-rate
records-per-request-avg
byte-rate
record-retry-rate
record-error-rate
record-size-max
record-size-avg
requests-in-flight
metadata-age

producer-node-metrics.node-<node>

outgoing-byte-rate
request-rate
request-size-avg
request-size-max
incoming-byte-rate
response-rate
request-latency-avg
request-latency-max

Consumer

kafka-metrics-count

count

consumer-metrics

connection-close-rate
connection-creation-rate
select-rate
io-wait-time-ns-avg
io-wait-ratio
io-time-ns-avg
io-ratio
connection-count
network-io-rate
outgoing-byte-rate
request-rate
request-size-avg
request-size-max
incoming-byte-rate
response-rate
request-latency-avg
request-latency-max

consumer-node-metrics.node-<node>

outgoing-byte-rate
request-rate
request-size-avg
request-size-max
incoming-byte-rate
response-rate
request-latency-avg
request-latency-max

consumer-fetch-manager-metrics

fetch-size-avg
fetch-size-max
bytes-consumed-rate
records-per-request-avg
records-consumed-rate
fetch-latency-avg
fetch-latency-max
fetch-rate
records-lag-max
fetch-throttle-time-avg
fetch-throttle-time-max

consumer-coordinator-metrics

heartbeat-response-time-max
heartbeat-rate
join-time-avg
join-time-max
join-rate
sync-time-avg
sync-time-max
sync-rate
last-heartbeat-seconds-ago
commit-latency-avg
commit-latency-max
commit-rate
assigned-partitions