Overview
Aprenda a observar el comportamiento de su conector de origen o de destino de MongoDB Kafka mediante la monitorización. La monitorización es el proceso de obtener información sobre las actividades que realiza un programa en ejecución para su uso en una aplicación o una biblioteca de gestión del rendimiento de aplicaciones.
Para aprender cómo funciona la supervisión en el conector y cómo usarlo, consulte el caso de uso section.
Para ver un ejemplo que muestra cómo supervisar un conector en funcionamiento, consulta la sección Ejemplo: Supervisar la configuración rápida.
Para ver una lista de todas las métricas producidas por los conectores de origen y destino de MongoDB, consulte la sección Métricas disponibles.
Casos de uso
Esta sección describe los casos de uso para la supervisión de los conectores fuente y sumidero de MongoDB, y cómo se pueden utilizar las métricas que proporciona el conector para satisfacer esos casos de uso.
Tip
Valores calculados
Para aprender qué tipos de métricas proporciona el conector y cuándo implementar lógica para calcular un valor, consulta Tipos de métricas.
Connector de sumidero
La siguiente tabla describe algunos casos de uso para la supervisión de el conector de sumidero de MongoDB y las métricas que el conector proporciona para satisfacer esos casos de uso:
Caso de uso | Métricas a utilizar |
|---|---|
Quisieras saber si un componente de tu pipeline se está quedando atrás. | Usa el |
Quieres saber el número total de registros que tu conector ha guardado en MongoDB. | Utiliza la métrica |
Desea conocer el número total de errores de guardar que su conector encontró al intentar guardar en MongoDB. | Utiliza la métrica |
Deseas saber si el rendimiento de tu MongoDB se vuelve más lento con el tiempo. | Utilice la métrica Utiliza las siguientes métricas para diagnosticar cualquier problema:
|
Quieres averiguar cuánto tiempo dedican Kafka Connect y el conector de sumidero de MongoDB a escribir registros en MongoDB. | Compara los valores de las siguientes métricas:
|
Puede encontrar descripciones de todas las métricas del Connector de sumidero MongoDB en la sección Métricas JMX del Connector de sumidero.
Connector de origen
La siguiente tabla describe algunos casos de uso para la supervisión del conector de origen de MongoDB y las métricas que el conector de origen proporciona para satisfacer esos casos de uso:
Caso de uso | Métricas a utilizar | |
|---|---|---|
Quisieras saber si un componente de tu pipeline se está quedando atrás. | Utiliza la métrica | |
Desea saber la cantidad total de eventos de flujo de cambios que su conector de origen ha procesado. | Utiliza la métrica | |
Deseas saber el porcentaje de registros que tu conector recibió, pero no pudo guardar en Apache Kafka. | Realiza el siguiente cálculo con las métricas | |
Se desea conocer el tamaño medio de los documentos que el conector ha procesado. | Realiza el siguiente cálculo con las métricas Para aprender a calcular el tamaño promedio de los registros durante un periodo de tiempo, consulte mongodb-bytes-read. | |
Quieres averiguar el tiempo que Kafka Connect y el conector de origen de MongoDB dedican a escribir registros en Apache Kafka. | Compara los valores de las siguientes métricas:
| |
Deseas saber si el rendimiento de tu MongoDB se vuelve más lento con el tiempo. | Utilice la métrica Utiliza las siguientes métricas para diagnosticar cualquier problema:
|
Puedes encontrar descripciones de todas las métricas del conector de origen de MongoDB en la sección Métricas JMX del conector de origen.
Monitorear el conector
El Conector Kafka de MongoDB utiliza Java Management Extensions (JMX) para habilitar la supervisión. JMX es una tecnología incluida en la plataforma Java, edición estándar, que proporciona herramientas para supervisar aplicaciones y dispositivos. Puedes ver las métricas producidas por el conector con cualquier consola JMX, como JConsole.
El Conector de Kafka para MongoDB proporciona métricas para tareas individuales. Las tareas son clases instanciadas por Kafka Connect que copian datos hacia y desde los almacenes de datos y Apache Kafka. Los nombres y responsabilidades de los dos tipos de tareas en Kafka Connect son los siguientes:
Una tarea de origen copia los datos desde un almacén de datos a Apache Kafka.
Una tarea de sumidero copia datos de Apache Kafka a un almacén de datos.
Un conector de destino configura una o más tareas de destino. Un conector fuente configura una o más tareas fuente.
Para conocer más sobre JMX, consulta los siguientes recursos de Oracle:
Para obtener más información sobre las tareas y conectores en Kafka Connect, consulta los siguientes recursos:
Documentación API de Kafka Connect para la interfaz de tarea
Documentación de la API de Kafka Connect para la clase abstracta Connector
Activar supervisión
El MongoDB Kafka Connector utiliza la infraestructura de métricas de Kafka Connect para servir métricas. Para leer las métricas producidas por tu conector, habilita JMX en tu implementación de Kafka Connect.
Para aprender cómo habilitar JMX para una instancia de Kafka Connect que se ejecuta en su máquina host, consulte la documentación oficial de Kafka.
Para saber cómo habilitar JMX para una implementación de Kafka Connect en contenedores, consulte Monitoreo y métricas de Kafka usando JMX con Docker.
Tipos de métricas
El conector proporciona métricas relacionadas con los siguientes tipos de cantidades:
El número de veces que ha ocurrido un evento en total para una tarea conectora
El valor relacionado con la ocurrencia más reciente de un evento
En algunos casos de uso, es necesario realizar cálculos adicionales con las métricas proporcionadas por el conector. Por ejemplo, se pueden calcular los siguientes valores a partir de las métricas proporcionadas:
La tasa de cambio de una métrica
El valor de una métrica durante un periodo de tiempo
La diferencia entre una métrica y otra métrica
Para ver algunos ejemplos de métricas calculadas, consulte la sección Casos de uso.
Rutas JMX
El conector MongoDB Kafka y Kafka Connect producen métricas para tareas de conectores MongoDB.
Ambos conjuntos de métricas brindan información sobre cómo sus tareas interactúan con Kafka Connect, pero solo las métricas de MongoDB Kafka Connector brindan información sobre cómo sus tareas interactúan con MongoDB.
El MongoDB Kafka Connector genera métricas bajo las siguientes rutas JMX:
com.mongodb.kafka.connect.sink-task-metrics.sink-task-<monitonically increasing number>com.mongodb.kafka.connect.source-task-metrics.source-task-<monitonically increasing number>com.mongodb.kafka.connect.source-task-metrics.source-task-change-stream-<monitonically increasing number>com.mongodb.kafka.connect.source-task-metrics.source-task-copy-existing-<monitonically increasing number>
Kafka Connect genera métricas bajo las siguientes rutas JMX:
kafka.connect.sink-task-metrics.<connector-name>kafka.connect.source-task-metrics.<connector-name>kafka.connect.connector-task-metrics.<connector-name>
Para relacionar las métricas de Kafka Connect con las métricas del MongoDB Kafka Connector, debes recordar el orden en que agregaste tus conectores a Kafka Connect.
Nota
Conflictos de denominación
Si el MongoDB Kafka Connector encuentra alguna vez un conflicto de nombres cuando intenta registrar un MBean en una ruta JMX, el MongoDB Kafka Connector añade un sufijo de versión al MBean.
Por ejemplo, si el conector intenta registrar un MBean en la ruta com.mongodb.kafka.connect.sink-task-metrics.sink-task-0 y no puede hacerlo, intenta registrar el MBean en com.mongodb.kafka.connect.sink-task-metrics.sink-task-0-v1.
Ejemplo
Supongamos que agrega un único conector de origen MongoDB llamado my-source-connector a su implementación.
El conector fuente de MongoDB escribe métricas en la siguiente ruta JMX:
com.mongodb.kafka.connect.sink-task-metrics.sink-task-0
Kafka Connect escribe métricas para esta tarea bajo la siguiente ruta:
kafka.connect.sink-task-metrics.my-source-connector
Ejemplo: Supervisar el inicio rápido
El entorno de muestra proporcionado en el inicio rápido expone métricas en tu máquina host en el URI localhost:35000.
Para visualizar estas métricas con JConsole, realiza las siguientes acciones:
Descargar JConsole.
JConsole es parte de Java Platform, Standard Edition. Para descargar JConsole, descargue el Java SE Development Kit de Oracle.
Inicia la pipeline de inicio rápido y añade conectores.
Siga el Inicio rápido hasta el paso Enviar el contenido de un documento a través de sus conectores.
Explora las métricas de tus conectores.
Vaya a la pestaña MBeans en JConsole.
Inspeccione las métricas del conector. Observe que el atributo
com.mongodb.kafka.connect.sink-task-metrics.sink-task-0.recordstiene un valor de0. Este valor indica que su tarea de recepción no ha recibido ningún registro de Apache Kafka.Continúe con el Inicio rápido hasta el paso Eliminar la zona protegida.
Vuelve a la pestaña MBeans en JConsole. El atributo
com.mongodb.kafka.connect.sink-task-metrics.sink-task-0.recordsahora debería tener un valor de1.
Detener y eliminar el entorno de inicio rápido.
Para detener y eliminar el entorno de Inicio rápido, siga el paso Eliminar el entorno sandbox del Inicio rápido.
Métricas disponibles
Utiliza los atributos de las tablas de esta sección para supervisar el comportamiento de tus conectores fuente y receptores a través de Java Management Extensions (JMX).
Tip
Atributos JMX
JMX representa una métrica individual como un atributo de un MBean. Para obtener más información sobre atributos y MBeans, consulta el Tutorial estándar de MBeans de Oracle.
Nota
Métodos de sondeo y colocación
Una tarea de conector de origen de MongoDB tiene un método poll() para recuperar documentos de MongoDB y enviarlos a Apache Kafka. Una tarea de conector de destino de MongoDB tiene un método put() para recuperar documentos de Apache Kafka y enviarlos a MongoDB.
Para obtener más información sobre los métodos poll() y put(), consulte los siguientes recursos:
Métricas del conector de fregadero JMX
Nombre del atributo | Descripción |
|---|---|
registro | El número total de registros de Kafka que recibió una tarea de sink de MongoDB. |
récords exitosos | El número total de registros Kafka que una tarea de destino de MongoDB guardó correctamente en MongoDB. |
registros fallidos | El número total de registros de Kafka que una tarea sink de MongoDB no pudo guardar en MongoDB. |
latest-kafka-tiempo-diferencia-ms | Número de milisegundos de la diferencia horaria más reciente registrada entre una tarea receptora de MongoDB y Kafka. Este valor se calcula restando la hora actual del reloj del conector y la marca de tiempo del último registro recibido por la tarea. |
in-tarea-put | El número total de veces que el framework de Kafka Connect ejecutó el método |
en-tarea-poner-duración-ms | La cantidad total de milisegundos que el marco de trabajo Kafka Connect gastó ejecutando el método |
in-tarea-put-duration-over-1-ms | El número total de ejecuciones del método MongoDB sink tarea |
in-tarea-put-duration-over-10-ms | El número total de ejecuciones del método |
en-tarea-introduzca-duración-mayor-100-ms | El número total de ejecuciones del método de tarea de sumidero |
in-tarea-put-duration-over-1000-ms | El número total de ejecuciones del método MongoDB sink tarea |
duración de la colocación en la tarea superior a 10000 ms | El número total de ejecuciones del método de tarea de sink de MongoDB |
marco de conexión | El número total de veces que el código en el framework de Kafka Connect se ejecutó después de la primera invocación del método |
in-connect-framework-duration-ms | El número total de milisegundos que se ha empleado ejecutando código en el framework de Kafka Connect desde que el framework invocó por primera vez el método |
duración del marco de conexión superior a 1 ms | El número total de veces que el código en el framework de Kafka Connect se ejecutó durante un periodo que superó 1 milisegundo. |
duración del marco de conexión superior a 10 ms | El número total de veces que el código en el framework Kafka Connect se ejecutó durante un período que superó los 10 milisegundos. |
Duración del marco de conexión superior a 100 ms | El número total de veces que el código del framework de Kafka Connect se ejecutó durante un período que excedió los 100 milisegundos. |
in-connect-framework-duration-over-1000-ms | La cantidad total de veces que el código en el framework Kafka Connect se ejecutó durante un período que superó los 1000 milisegundos. |
in-connect-framework-duration-over-10000-ms | La cantidad total de veces que el código en el marco de Kafka Connect se ejecutó durante una duración que superó los 10 000 milisegundos. |
fases de procesamiento | Número total de veces que una tarea receptora de MongoDB ejecutó la fase de procesamiento en un lote de registros de Kafka. La fase de procesamiento de una tarea receptora de MongoDB es el conjunto de acciones que comienza después de obtener los registros de Kafka y finaliza antes de escribirlos en MongoDB. |
procesamiento-fases-duración-ms | La cantidad total de milisegundos que una tarea de receptor de MongoDB pasó procesando registros antes de escribirlos en MongoDB. |
Fases de procesamiento cuya duración supera 1 milisegundo | El número total de ejecuciones de la fase de procesamiento de la tarea de destino de MongoDB con una duración que superó 1 milisegundo. |
fases de procesamiento con una duración superior a 10 ms | El número total de ejecuciones de la fase de procesamiento de tareas de sumidero de MongoDB cuya duración superó los 10 milisegundos. |
procesamiento-fases-duración-superior-a-100-ms | El número total de ejecuciones de la fase de procesamiento de tareas de sink de MongoDB con una duración que excedió los 100 milisegundos. |
procesamiento-fases-duración-superior-a-1000-ms | El número total de ejecuciones de la fase de procesamiento de la tarea sink de MongoDB con una duración que excedió los 1000 milisegundos. |
Duración de las fases de procesamiento superior a 10.000 ms | El número total de ejecuciones de la fase de procesamiento de tareas de sumidero de MongoDB con una duración que superó los 10,000 milisegundos. |
escrituras por lotes exitosas | La cantidad total de lotes que una tarea de receptor de MongoDB escribió exitosamente en el clúster de MongoDB. |
duración exitosa de escrituras por lotes en ms | La cantidad total de milisegundos que una tarea de receptor de MongoDB pasó escribiendo exitosamente en el clúster de MongoDB. |
escrituras por lotes con una duración exitosa de más de 1 ms | La cantidad total de escrituras por lotes exitosas realizadas por la tarea de receptor de MongoDB con una duración que excedió 1 milisegundo. |
duración de escrituras por lotes exitosas superior a 10 ms | El número total de guardados agrupados exitosas realizadas por la tarea de sumidero de MongoDB con una duración que excedió los 10 milisegundos. |
duración-exitosa-de-escritura-por-lotes-superior-a-100-ms | El número total de escrituras por lotes exitosas realizadas por la tarea de receptores MongoDB sink con una duración que excedió los 100 milisegundos. |
agrupar-guardar-exitoso-duration-over-1000-ms | El número total de escrituras en lote exitosas realizadas por la tarea sink de MongoDB con una duración que superó los 1000 milisegundos. |
agrupados-guardados-exitosos-duración-por-encima-de-10000-ms | La cantidad total de escrituras por lotes exitosas realizadas por la tarea de receptor de MongoDB con una duración que superó los 10 000 milisegundos. |
escrituras por lotes fallidas | La cantidad total de lotes que una tarea de receptor de MongoDB no pudo escribir en el clúster de MongoDB. |
agrupar-guardados-failed-duration-ms | La cantidad total de milisegundos que una tarea de receptor de MongoDB pasó intentando escribir lotes en el clúster de MongoDB sin éxito. |
duración fallida de guardados agrupados más de 1 ms | El número total de guardados agrupados fallidos intentados por la tarea del sumidero de MongoDB con una duración que superó 1 milisegundo. |
agrupar-guardar fallidas - duración superior a 10 ms | El número total de guardados agrupados que fallaron realizadas por la tarea conectada al almacenamiento de MongoDB con una duración que superó los 10 milisegundos. |
agrupar-guardar-failed-duration-over-100-ms | La cantidad total de escrituras por lotes fallidas que intentó la tarea de receptor de MongoDB con una duración que superó los 100 milisegundos. |
agrupar-guardados-failed-duration-over-1000-ms | La cantidad total de escrituras por lotes fallidas que intentó la tarea de receptor de MongoDB con una duración que superó los 1000 milisegundos. |
fallas-en-guardados-agrupar-tiempos-superiores-a-10000-ms | La cantidad total de escrituras por lotes fallidas que intentó la tarea de receptor de MongoDB con una duración que superó los 10 000 milisegundos. |
Source Connector JMX Métricas
Nota
Comandos Iniciales y Comandos getMore
Algunas métricas de tareas de conectores de origen distinguen entre comandos iniciales y comandos getMore. Un comando inicial es un comando find o aggregate enviado a una instancia de MongoDB que recupera el primer conjunto de documentos en un cursor de MongoDB del lado del cliente. El comando getMore es el comando de MongoDB que recupera los siguientes conjuntos de documentos en un cursor.
Para obtener más información sobre los comandos de getMore, consulte la página getMore.
Nombre del atributo | Descripción |
|---|---|
registro | El número total de registros que una tarea de origen de MongoDB transfirió al marco de Kafka Connect. |
registros filtrados | La cantidad de registros que una tarea de origen de MongoDB pasó al marco de trabajo de Kafka Connect y que luego fueron filtrados por el marco de trabajo. Un registro filtrado no se escribe en Kafka. |
registros-confirmados | El número total de registros que una tarea origen de MongoDB pasó al marco de trabajo de Kafka Connect que luego se escribieron exitosamente en Kafka. |
mongodb-bytes-read | El número total de bytes que una tarea fuente de MongoDB leyó desde el clúster de MongoDB. Para calcular el tamaño promedio de los registros que tu conector de sumidero ha procesado durante un período de tiempo, realiza las siguientes acciones:
|
última-diferencia-tiempo-mongodb-secs | El número de segundos de la diferencia de tiempo más reciente registrada entre un clúster de MongoDB y el token de reanudación posterior al agrupar que posee una tarea fuente de MongoDB. Este valor se calcula restando el timestamp del token de reanudación post-lote de la tarea del valor |
encuesta durante la tarea | El número total de veces que el marco Kafka Connect ejecutó el método |
in-task-poll-duration-ms | La cantidad total de milisegundos que el marco de Kafka Connect dedicó a ejecutar el método |
duración de la encuesta en tarea superior a 1 ms | El número total de ejecuciones del método |
in-tarea-poll-duration-over-10-ms | El número total de ejecuciones del método de tarea de origen de MongoDB |
in-tarea-poll-duration-over-100-ms | El número total de ejecuciones del método de tarea de origen de MongoDB |
La duración de la encuesta en la tarea ha sido superior a 1000 ms | El número total de ejecuciones del método de la tarea de origen MongoDB |
in-tarea-poll-duration-over-10000-ms | El número total de ejecuciones del método de tarea de origen MongoDB |
marco de conexión | El número total de veces que el código en el framework Kafka Connect se ejecutó después de la primera invocación del método |
in-connect-framework-duration-ms | El número total de milisegundos invertidos en ejecutar código en el marco Kafka Connect desde que el marco invocó por primera vez el método |
duración del marco de conexión superior a 1 ms | El número total de veces que el código en el framework de Kafka Connect se ejecutó durante un periodo que superó 1 milisegundo. |
duración del marco de conexión superior a 10 ms | El número total de veces que el código en el framework Kafka Connect se ejecutó durante un período que superó los 10 milisegundos. |
Duración del marco de conexión superior a 100 ms | El número total de veces que el código del framework de Kafka Connect se ejecutó durante un período que excedió los 100 milisegundos. |
in-connect-framework-duration-over-1000-ms | La cantidad total de veces que el código en el framework Kafka Connect se ejecutó durante un período que superó los 1000 milisegundos. |
in-connect-framework-duration-over-10000-ms | La cantidad total de veces que el código en el marco de Kafka Connect se ejecutó durante una duración que superó los 10 000 milisegundos. |
initial-commands-successful | El número total de comandos iniciales emitidos por una tarea de origen de MongoDB que se completaron correctamente. Un comando inicial es un comando de búsqueda o agregación enviado a un clúster de MongoDB que recupera el primer conjunto de documentos en un cursor. Un comando |
initial-commands-successful-duration-ms | El número total de milisegundos que una tarea fuente de MongoDB pasó ejecutando comandos iniciales que se realizaron con éxito. |
initial-commands-successful-duration-over-1-ms | El número total de comandos iniciales exitosos emitidos por una tarea de origen de MongoDB con una duración que superó 1 milisegundo. |
initial-commands-successful-duration-over-10-ms | El número total de comandos iniciales exitosos emitidos por una tarea de origen de MongoDB con una duración que excedió los 10 milisegundos. |
initial-commands-successful-duration-over-100-ms | El número total de comandos iniciales exitosos emitidos por una tarea de origen MongoDB con una duración que excedió los 100 milisegundos. |
initial-commands-successful-duration-over-1000-ms | La cantidad total de comandos iniciales exitosos emitidos por una tarea de origen MongoDB con una duración que superó los 1000 milisegundos. |
initial-commands-successful-duration-over-10000-ms | La cantidad total de comandos iniciales exitosos emitidos por una tarea de origen MongoDB con una duración que superó los 10 000 milisegundos. |
getmore-commands-exitoso | El número total de comandos de |
Obtener más comandos: duración exitosa (ms) | El número total de milisegundos que una tarea fuente de MongoDB gastó ejecutando |
Comandos exitosos que tardaron más de 1 ms | La cantidad total de comandos |
getmore-comandos-exitosos-duración-más-de-10-ms | El número total de comandos |
getmore-commands-exitoso-duration-over-100-ms | El número total de comandos |
comandos getmore con duración exitosa superior a 1000 ms | La cantidad total de comandos |
Obtener más comandos con una duración exitosa de más de 10 000 ms | La cantidad total de comandos |
initial-commands-failed | El número total de comandos iniciales emitidos por una tarea de origen de MongoDB que falló. Un comando inicial es un comando de búsqueda o agregación enviado a un clúster de MongoDB que recupera el primer conjunto de documentos en un cursor. Un comando |
initial-commands-failed-duration-ms | La cantidad total de milisegundos que una tarea de origen de MongoDB pasó intentando sin éxito emitir comandos iniciales al servidor MongoDB. |
initial-commands-failed-duration-over-1-ms | El número total de comandos iniciales fallidos emitidos por una tarea de origen de MongoDB con una duración que superó 1 milisegundo. |
initial-commands-failed-duration-over-10-ms | El número total de comandos iniciales fallidos emitidos por una tarea fuente de MongoDB con una duración que excedió los 10 milisegundos. |
initial-commands-failed-duration-over-100-ms | El número total de comandos iniciales fallidos emitidos por una tarea de origen MongoDB con una duración que superó los 100 milisegundos. |
initial-commands-failed-duration-over-1000-ms | El número total de comandos iniciales fallidos emitidos por una tarea de origen de MongoDB con una duración que ha superado los 1000 milisegundos. |
initial-commands-failed-duration-over-10000-ms | El número total de comandos iniciales fallidos emitidos por una tarea origen de MongoDB con una duración superior a 10 000 milisegundos. |
getmore-commands-failed | El número total de comandos |
getmore-commands-failed-duration-ms | El número total de milisegundos que una tarea de origen de MongoDB pasó intentando sin éxito emitir |
getmore-commands-failed-duration-over-1-ms | El número total de comandos |
getmore-commands-failed-duration-over-10-ms | La cantidad total de comandos |
getmore-commands-failed-duration-over-100-ms | La cantidad total de comandos |
Getmore-commands-falló-duración-superior-a-1000-ms | La cantidad total de comandos |
getmore-commands-failed-duration-over-10000-ms | La cantidad total de comandos |