Overview
Aprende a observar el comportamiento de tu conector de origen MongoDB Kafka o de tu conector de destino MongoDB Kafka mediante la supervisión. La supervisió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 en una librería 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 | |
Quieres conocer el número total de eventos del flujo de cambios que ha procesado tu conector origen. | 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.
Supervisar el Connector
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 aprender cómo activar JMX para una implementación de Kafka Connect en contenedores, consulta supervisión 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
Para algunos casos de uso, debes realizar cálculos extra con las métricas que proporciona el conector. Por ejemplo, puedes 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 proporcionan información sobre cómo tus tareas interactúan con Kafka Connect, pero solo las métricas del Conector MongoDB Kafka proporcionan información sobre cómo tus 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 bajo la ruta com.mongodb.kafka.connect.sink-task-metrics.sink-task-0 y no puede hacerlo, intenta registrar el MBean bajo com.mongodb.kafka.connect.sink-task-metrics.sink-task-0-v1.
Ejemplo
Asume que agregas un único conector fuente de MongoDB llamado my-source-connector a tu 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.
Sigue la Guía de inicio rápido hasta el paso Enviar el contenido de un documento a través de tus conectores.
Explore las métricas de sus conectores.
Navegue hasta la pestaña MBeans en JConsole.
Inspeccionar las métricas del conector. Observa que el atributo
com.mongodb.kafka.connect.sink-task-metrics.sink-task-0.recordstiene un valor de0. Este valor indica que tu tarea sink (de destino) no ha recibido ningún registro desde Apache Kafka.Continúe con la configuración rápida hasta, pero sin incluir, el paso Remover la zona de pruebas.
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.
Detén y remueve el entorno de Inicio Rápido.
Para detener y eliminar el entorno de inicio rápido, siga el paso remover el Sandbox del proceso de 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 fuente de MongoDB tiene un método poll() para recuperar documentos de MongoDB y enviarlos a Apache Kafka. Una tarea de conector de sink 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 JMX del Connector Sink
Nombre del atributo | Descripción |
|---|---|
registro | El número total de registros de Kafka que recibió una tarea de sink de MongoDB. |
registros-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 | La cantidad de milisegundos del registro más reciente de la diferencia de tiempo entre una tarea sink de MongoDB y Kafka. Este valor se calcula restando el tiempo actual del reloj del conector y la marca de tiempo del último registro que la tarea recibió. |
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 MongoDB |
in-tarea-put-duration-over-1000-ms | El número total de ejecuciones del método MongoDB sink tarea |
en-la-tarea-poner-duración-mayor-a-10000-ms | El número total de ejecuciones del método de tarea de sink de MongoDB |
en-marco-conector | 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 |
in-connect-framework-duration-over-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. |
in-connect-framework-duration-over-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 | El número total de veces que el código en el framework de Kafka Connect se ejecutó durante una duración que excedió los 10000 milisegundos. |
fases de procesamiento | El número total de veces que una tarea de sumidero de MongoDB ejecutó la fase de procesamiento en un lote de registros de Kafka. La fase de procesamiento de una tarea de sink de MongoDB es el conjunto de acciones que inicia después de obtener los registros de Kafka y finaliza antes de guardar los registros en MongoDB. |
procesamiento-fases-duración-ms | El número total de milisegundos que una tarea de suministro de MongoDB ha dedicado al procesamiento de 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. |
procesamiento-fases-duración-más-de-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 | El número total de agrupaciones que una tarea de sumidero MongoDB guardó con éxito en el clúster de MongoDB. |
duración exitosa de escrituras por lotes en ms | El número total de milisegundos que una tarea de sumidero de MongoDB gastó escribiendo con éxito en el clúster de MongoDB. |
duración de escrituras por lotes exitosas superior a 1 ms | El número total de escrituras por lotes exitosas realizadas por la tarea de sumidero de MongoDB con una duración que superó 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 | El número total de escrituras por lotes exitosas realizadas por la tarea de sumidero de MongoDB con una duración que superó los 10000 milisegundos. |
fallo-en-guardados-agrupados | El número total de lotes que una tarea de sink de MongoDB no pudo guardar en el clúster de MongoDB. |
agrupar-guardados-failed-duration-ms | El número total de milisegundos que una tarea de sink de MongoDB pasó intentando, sin éxito, guardar agrupaciones en el clúster de MongoDB. |
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 | El número total de escrituras por lotes fallidas intentadas por la tarea de salida de MongoDB con una duración que superó los 100 milisegundos. |
agrupar-guardados-failed-duration-over-1000-ms | El número total de intentos fallidos de escritura por lotes por parte de la tarea de destino de MongoDB con una duración que superó los 1000 milisegundos. |
fallas-en-guardados-agrupar-tiempos-superiores-a-10000-ms | El número total de guardados agrupados fallidos intentados por la tarea del sumidero MongoDB con una duración que superó los 10000 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 en tarea | El número total de veces que el marco Kafka Connect ejecutó el método |
in-task-poll-duration-ms | El número total de milisegundos que el marco de Kafka Connect se gastó ejecutando el método |
en-tarea-poll-duración-sobre-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 MongoDB source tarea |
in-tarea-poll-duration-over-10000-ms | El número total de ejecuciones del método de tarea de origen MongoDB |
en-marco-conector | 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 |
in-connect-framework-duration-over-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. |
in-connect-framework-duration-over-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 | El número total de veces que el código en el framework de Kafka Connect se ejecutó durante una duración que excedió los 10000 milisegundos. |
initial-commands-successful | El número total de comandos iniciales emitidos por una tarea fuente de MongoDB que se realizó con éxito. Un comando inicial es un comando de búsqueda o de 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 | El número total de comandos iniciales exitosos emitidos por una tarea de fuente de MongoDB con una duración que superó los 1000 milisegundos. |
initial-commands-successful-duration-over-10000-ms | El número total de comandos iniciales exitosos emitidos por una tarea de fuente MongoDB con una duración que excedió los 10000 milisegundos. |
getmore-commands-exitoso | El número total de comandos de |
getmore-commands-exitoso-duration-ms | El número total de milisegundos que una tarea fuente de MongoDB gastó ejecutando |
Comandos exitosos que tardaron más de 1 ms | El número total de comandos exitosos de |
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 |
getmore-comandos-exitosos-duración-más-de-1000-ms | El número total de comandos exitosos de |
getmore-commands-exitosos-duración-superior-a-10000-ms | El número 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 | El número total de milisegundos que una tarea de origen de MongoDB pasó intentando sin éxito emitir los comandos iniciales al servidor de 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 | El número total de |
getmore-commands-failed-duration-over-100-ms | El número total de comandos |
Duración de ejecución: más de 1000 ms | El número total de comandos fallidos de |
getmore-commands-failed-duration-over-10000-ms | El número total de comandos |