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 saber cómo funciona la monitorización en el conector y cómo utilizarla, consulte la Sección decasos de uso.
Para ver un ejemplo que muestra cómo monitorear un conector en ejecución, consulte la sección Ejemplo: Monitorear el inicio rápido.
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 casos de uso para monitorear conectores de origen y destino de MongoDB, y cómo puede usar las métricas que proporciona su conector para satisfacer esos casos de uso.
Tip
Valores calculados
Para conocer qué tipos de métricas proporciona el conector y cuándo implementar la lógica para calcular un valor, consulte Tipos de métricas.
Connector de sumidero
La siguiente tabla describe algunos casos de uso para monitorear el conector de sumidero de MongoDB y las métricas que proporciona el conector de sumidero 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. | Uso el |
Desea saber la cantidad total de registros que su conector escribió en MongoDB. | Utilice la métrica |
Desea saber la cantidad total de errores de escritura que encontró su conector al intentar escribir en MongoDB. | Utilice la métrica |
Quiere saber si el rendimiento de su MongoDB se está volviendo más lento con el tiempo. | Utilice la métrica Utiliza las siguientes métricas para diagnosticar cualquier problema:
|
Desea saber el tiempo que Kafka Connect y el conector de receptor MongoDB dedican a escribir registros en MongoDB. | Compare los valores de las siguientes métricas:
|
Puede encontrar descripciones de todas las métricas del conector receptor de MongoDB en la sección Métricas JMX del conector receptor.
Connector de origen
La siguiente tabla describe algunos casos de uso para monitorear el conector de origen de MongoDB y las métricas que proporciona el conector de origen 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. | Utilice la métrica | |
Desea saber la cantidad total de eventos de flujo de cambios que su conector de origen ha procesado. | Utilice la métrica | |
Desea saber el porcentaje de registros que su conector recibió pero no pudo escribir en Apache Kafka. | Realice el siguiente cálculo con las métricas | |
Se desea conocer el tamaño medio de los documentos que el conector ha procesado. | Realice el siguiente cálculo con las métricas Para aprender a calcular el tamaño promedio de los registros durante un período de tiempo, consulte lectura de bytes de mongodb. | |
Desea saber el tiempo que Kafka Connect y el conector de origen MongoDB dedican a escribir registros en Apache Kafka. | Compare los valores de las siguientes métricas:
| |
Quiere saber si el rendimiento de su MongoDB se está volviendo más lento con el tiempo. | Utilice la métrica Utiliza las siguientes métricas para diagnosticar cualquier problema:
|
Puede 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 MongoDB Kafka utiliza Extensiones de Administración de Java (JMX) para la monitorización. JMX es una tecnología incluida en la plataforma Java, Edición Estándar, que proporciona herramientas para monitorizar aplicaciones y dispositivos. Puede ver las métricas generadas por el conector con cualquier consola JMX, como JConsole.
El Conector Kafka de MongoDB proporciona métricas para tareas individuales. Las tareas son clases instanciadas por Kafka Connect que copian datos hacia y desde 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 datos de 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 receptor configura una o más tareas de receptor. Un conector de origen configura una o más tareas de origen.
Para obtener más información sobre JMX, consulte los siguientes recursos de Oracle:
Para obtener más información sobre las tareas y los conectores en Kafka Connect, consulte los siguientes recursos:
Documentación de la API de Kafka Connect para la interfaz de tareas
Documentación de la API de Kafka Connect para la clase abstracta Connector
Habilitar la monitorización
El conector Kafka de MongoDB utiliza la infraestructura de métricas de Kafka Connect para gestionar las métricas. Para leer las métricas generadas por el conector, habilite JMX en su implementación de Kafka Connect.
Para saber 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
Tanto MongoDB Kafka Connector como Kafka Connect producen métricas para las tareas del conector 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 conector MongoDB Kafka produce 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 produce 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 de MongoDB Kafka Connector, debe recordar el orden en el que agregó sus conectores a Kafka Connect.
Nota
Conflictos de nombres
Si el conector MongoDB Kafka alguna vez encuentra un conflicto de nombres cuando intenta registrar un MBean en una ruta JMX, el conector MongoDB Kafka agrega 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 de origen 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 en 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 su máquina host en el URI localhost:35000.
Para ver estas métricas con JConsole, realice las siguientes acciones:
Descargar JConsole.
JConsole forma parte de la Plataforma Java, Edición Estándar. Para descargar JConsole, descargue el Kit de Desarrollo de Java SE de Oracle.
Inicie el pipeline de inicio rápido y agregue 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
Utilice los atributos de las tablas de esta sección para supervisar el comportamiento de sus conectores de origen y destino a través de Java Management Extensions (JMX).
Tip
Atributos JMX
JMX representa una métrica individual como atributo de MBean un. Para obtener más información sobre atributos MBeans y, consulte el Tutorial de MBeans Estándar de Oracle.
Nota
Métodos de encuesta 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 |
|---|---|
registros | La cantidad total de registros de Kafka que recibió una tarea de receptor de MongoDB. |
récords exitosos | La cantidad total de registros de Kafka que una tarea de receptor de MongoDB escribió exitosamente en MongoDB. |
registros fallidos | La cantidad total de registros de Kafka que una tarea de receptor de MongoDB no pudo escribir en MongoDB. |
última diferencia de tiempo de Kafka (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. |
puesta en tarea | La cantidad total de veces que el marco de Kafka Connect ejecutó el método |
duración de la colocación en la tarea en ms | La cantidad total de milisegundos que el marco de trabajo Kafka Connect gastó ejecutando el método |
duración de colocación en tarea superior a1ms | El número total de ejecuciones del método de tarea de sumidero |
duración de colocación en tarea superior a10ms | El número total de ejecuciones del método de tarea de sumidero |
duración de colocación en tarea superior a100ms | El número total de ejecuciones del método de tarea de sumidero |
duración de colocación en tarea superior a1000ms | El número total de ejecuciones del método de tarea de sumidero |
duración de colocación en tarea superior a10000ms | El número total de ejecuciones del método de tarea de sumidero |
marco de conexión | La cantidad total de veces que se ejecutó el código en el marco de Kafka Connect después de la primera invocación del método |
duración del marco de conexión en 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 a1ms | La cantidad total de veces que el código en el marco de Kafka Connect se ejecutó durante una duración que superó los 1 milisegundos. |
duración del marco de conexión superior a10ms | La cantidad total de veces que el código en el marco de Kafka Connect se ejecutó durante una duración que excedió 10 milisegundos. |
duración del marco de conexión superior a100ms | 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. |
duración del marco de conexión superior a1000ms | 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. |
duración del marco de conexión superior a10000ms | La cantidad total de veces que el código en el marco de Kafka Connect se ejecutó durante una duración que excedió 10000 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. |
fases de procesamiento-duración-ms | La cantidad total de milisegundos que una tarea de receptor de MongoDB pasó procesando registros antes de escribirlos en MongoDB. |
duración de las fases de procesamiento durante1ms | El número total de ejecuciones de la fase de procesamiento de la tarea de sumidero de MongoDB con una duración que excedió 1 milisegundos. |
duración de las fases de procesamiento durante10ms | El número total de ejecuciones de la fase de procesamiento de la tarea de sumidero de MongoDB con una duración que excedió 10 milisegundos. |
duración de las fases de procesamiento durante100ms | El número total de ejecuciones de la fase de procesamiento de la tarea de sumidero de MongoDB con una duración que excedió 100 milisegundos. |
duración de las fases de procesamiento durante1000ms | El número total de ejecuciones de la fase de procesamiento de la tarea de sumidero de MongoDB con una duración que excedió 1000 milisegundos. |
duración de las fases de procesamiento durante10000ms | El número total de ejecuciones de la fase de procesamiento de la tarea de sumidero de MongoDB con una duración que excedió 10000 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. |
escrituras por lotes con éxito (duración 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 de1ms | La cantidad total de escrituras por lotes exitosas realizadas por la tarea de receptor de MongoDB con una duración que excedió 1 milisegundos. |
escrituras por lotes con una duración exitosa de más de10ms | La cantidad total de escrituras por lotes exitosas realizadas por la tarea de receptor de MongoDB con una duración que excedió los 10 milisegundos. |
escrituras por lotes con una duración exitosa de más de100ms | La cantidad total de escrituras por lotes exitosas realizadas por la tarea de receptor de MongoDB con una duración que excedió los 100 milisegundos. |
escrituras por lotes con una duración exitosa de más de1000ms | La cantidad total de escrituras por lotes exitosas realizadas por la tarea de receptor de MongoDB con una duración que excedió los 1000 milisegundos. |
escrituras por lotes con una duración exitosa de más de10000ms | La cantidad total de escrituras por lotes exitosas realizadas por la tarea de receptor de MongoDB con una duración que excedió los 10000 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. |
Duración de errores de escritura por lotes (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. |
escrituras por lotes con duración fallida superior a1ms | La cantidad total de escrituras por lotes fallidas que intentó la tarea de receptor de MongoDB con una duración que excedió 1 milisegundos. |
escrituras por lotes con duración fallida superior a10ms | 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. |
escrituras por lotes con duración fallida superior a100ms | La cantidad total de escrituras por lotes fallidas que intentó la tarea de receptor de MongoDB con una duración que excedió los 100 milisegundos. |
escrituras por lotes con duración fallida superior a1000ms | La cantidad total de escrituras por lotes fallidas que intentó la tarea de receptor de MongoDB con una duración que excedió los 1000 milisegundos. |
escrituras por lotes con duración fallida superior a10000ms | La cantidad total de escrituras por lotes fallidas que intentó la tarea de receptor de MongoDB con una duración que excedió los 10000 milisegundos. |
Métricas JMX del conector de origen
Nota
Comandos iniciales y comandos getMore
Algunas métricas para las tareas del conector de origen distinguen entre comandos iniciales y getMore comandos. 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 getMore comando es el comando de MongoDB que recupera los siguientes conjuntos de documentos en un cursor.
Para obtener más información sobre getMore los comandos, consulte la página getMore.
Nombre del atributo | Descripción |
|---|---|
registros | La cantidad total de registros que una tarea de origen de MongoDB pasó al marco de Kafka Connect. |
registros filtrados | Número de registros que una tarea de origen de MongoDB pasó al framework de Kafka Connect y que este filtró. Un registro filtrado no se escribe en Kafka. |
registros reconocidos | La cantidad total de registros que una tarea de origen de MongoDB pasó al marco de Kafka Connect y que luego se escribieron correctamente en Kafka. |
mongodb-bytes-read | La cantidad total de bytes que una tarea de origen de MongoDB leyó del clúster de MongoDB. Para calcular el tamaño promedio de los registros que su conector de sumidero procesó durante un período de tiempo, realice las siguientes acciones:
|
última diferencia de tiempo de mongodb en segundos | El número de segundos de la diferencia horaria más reciente registrada entre un clúster de MongoDB y el token de reanudación posterior al lote que posee una tarea de origen de MongoDB. Este valor se calcula restando la marca de tiempo del token de reanudación posterior al lote de la tarea al valor |
encuesta durante la tarea | La cantidad total de veces que el marco de Kafka Connect ejecutó el método |
duración de la encuesta en tarea (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 a1ms | El número total de ejecuciones del método de la tarea de origen MongoDB |
duración de la encuesta en tarea superior a10ms | El número total de ejecuciones del método de tarea de origen de MongoDB |
duración de la encuesta en tarea superior a100ms | El número total de ejecuciones del método de la tarea de origen MongoDB |
duración de la encuesta en tarea superior a1000ms | El número total de ejecuciones del método de la tarea de origen MongoDB |
duración de la encuesta en tarea superior a10000ms | El número total de ejecuciones del método de tarea de origen MongoDB |
marco de conexión | La cantidad total de veces que se ejecutó el código en el marco de Kafka Connect después de la primera invocación del método |
duración del marco de conexión en ms | Número total de milisegundos dedicados a la ejecución de código en el marco de Kafka Connect desde que este invocó por primera vez el método |
duración del marco de conexión superior a1ms | La cantidad total de veces que el código en el marco de Kafka Connect se ejecutó durante una duración que superó los 1 milisegundos. |
duración del marco de conexión superior a10ms | La cantidad total de veces que el código en el marco de Kafka Connect se ejecutó durante una duración que excedió 10 milisegundos. |
duración del marco de conexión superior a100ms | 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. |
duración del marco de conexión superior a1000ms | 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. |
duración del marco de conexión superior a10000ms | La cantidad total de veces que el código en el marco de Kafka Connect se ejecutó durante una duración que excedió 10000 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 | La cantidad total de milisegundos que una tarea de origen MongoDB dedicó a ejecutar comandos iniciales que tuvieron éxito. |
comandos iniciales con duración exitosa superior a1ms | El número total de comandos iniciales exitosos emitidos por una tarea de origen de MongoDB con una duración que superó 1 milisegundo. |
comandos iniciales con duración exitosa superior a10ms | La cantidad total de comandos iniciales exitosos emitidos por una tarea de origen MongoDB con una duración que excedió 10 milisegundos. |
comandos iniciales con duración exitosa superior a100ms | La cantidad total de comandos iniciales exitosos emitidos por una tarea de origen MongoDB con una duración que excedió 100 milisegundos. |
comandos iniciales con duración exitosa superior a1000ms | La cantidad total de comandos iniciales exitosos emitidos por una tarea de origen MongoDB con una duración que excedió 1000 milisegundos. |
comandos iniciales con duración exitosa superior a10000ms | La cantidad total de comandos iniciales exitosos emitidos por una tarea de origen MongoDB con una duración que excedió 10000 milisegundos. |
obtener más comandos exitosos | El número total de comandos de |
Obtener más comandos: duración exitosa (ms) | La cantidad total de milisegundos que una tarea de origen de MongoDB dedicó a ejecutar |
Obtener más comandos con una duración exitosa de más de1ms | La cantidad total de comandos |
Obtener más comandos con una duración exitosa de más de10ms | La cantidad total de comandos |
Obtener más comandos con una duración exitosa de más de100ms | La cantidad total de comandos |
Obtener más comandos con una duración exitosa de más de1000ms | La cantidad total de comandos |
Obtener más comandos con una duración exitosa de más de10000ms | La cantidad total de comandos |
initial-commands-failed | El número total de comandos iniciales emitidos por una tarea de origen de MongoDB que fallaron. 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. |
Los comandos iniciales fallaron con una duración superior a1ms | La cantidad total de comandos iniciales fallidos emitidos por una tarea de origen de MongoDB con una duración que superó los 1 milisegundos. |
Los comandos iniciales fallaron con una duración superior a10ms | El número total de comandos iniciales fallidos emitidos por una tarea fuente de MongoDB con una duración que excedió los 10 milisegundos. |
Los comandos iniciales fallaron con una duración superior a100ms | La cantidad total de comandos iniciales fallidos emitidos por una tarea de origen de MongoDB con una duración que superó los 100 milisegundos. |
Los comandos iniciales fallaron con una duración superior a1000ms | 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. |
Los comandos iniciales fallaron con una duración superior a10000ms | La cantidad total de comandos iniciales fallidos emitidos por una tarea de origen de MongoDB con una duración que superó los 10000 milisegundos. |
Error en los comandos getmore | El número total de |
Obtener más comandos: duración fallida (ms) | La cantidad total de milisegundos que una tarea de origen de MongoDB pasó intentando sin éxito emitir comandos |
getmore-commands-failed-duration-over-1-ms | La cantidad total de comandos |
getmore-commands-failed-duration-over-10-ms | La cantidad total de comandos |
Obtener más comandos fallidos con una duración superior a100ms | La cantidad total de comandos |
Obtener más comandos fallidos con una duración superior a1000ms | La cantidad total de comandos |
Obtener más comandos fallidos con una duración superior a10000ms | La cantidad total de comandos |