HCL Commerce Version 9.1.8.0 or later

Monitoreo y comprensión de las métricas de Elasticsearch y NiFi

Puede usar Grafana y las herramientas relacionadas para analizar el rendimiento de la canalización de Ingest y Kibana para hacer lo mismo con Elasticsearch.

Debido a la gran cantidad de recursos que consume, la monitorización siempre debe comenzar con los recursos del sistema operativo y su utilización. Identifique si hay un recurso que está saturado, como CPU (utilización de procesador), E/S (red, disco o memoria), Memoria, etc., en el nivel del sistema. Este es el primer paso en el ejercicio de ajuste: garantizar que no estamos ejecutando la solución con recursos del sistema configurados, consumidos o con cuello de botella incorrectamente. La forma más sencilla de monitorear esto es con Grafana y Kibana (para métricas específicas de Elasticsearch), o cualquier otro monitor de nivel de sistema (por ejemplo, nmon ). Si un recurso del sistema está saturado, es necesario realizar ajustes en el entorno antes de intentar realizar más ajustes. Por ejemplo, no tiene sentido ajustar las hebras/concurrencia del procesador si no hay suficientes recursos de CPU disponibles en el sistema.

Se debe prestar especial atención al montón de NiFi y Elasticsearch. Si el tamaño del montón es inadecuado para la carga de trabajo, será necesario ajustarlo. La utilización de la pila debe supervisarse después de cada cambio de ajuste. Esto es especialmente crucial cuando se aumenta la concurrencia de procesadores o cuando se cambia el tamaño de bucket.size/flowfile. Puede que sea necesario ajustar estos valores de pila para cada cambio en estas variables clave de rendimiento.

La forma más sencilla de observar el progreso general de la construcción del índice es a través del gráfico Grafana NiFi Performance. Podemos observar la velocidad de ejecución general, identificar la velocidad de los principales grupos de procesadores y ver la cantidad de datos que se generan y envían a Elasticsearch.

Grafana

Puede utilizar Grafana para analizar el rendimiento de la canalización de Ingest. Los dos gráficos más útiles son Elementos en cola y Enlace de espera. Para configurar estos y otros paneles de control, consulte Métricas ampliables a la supervisión y las alertas.

En los conectores de Ingest de NiFi, los grupos de procesos WaitLink se agregan entre los grupos de procesos para garantizar que la etapa anterior se complete antes de que comience la siguiente. De esta manera, las etapas posteriores no utilizarán datos en los que se esté trabajando actualmente en un proceso sin terminar. Además, esto reduce la aparición de diferentes procesos que se ejecutan al mismo tiempo, lo que puede causar picos extremos en las solicitudes de recursos para CPU, red, memoria o E/S de disco.

El tiempo que se dedica a WaitLink se puede usar para estimar el tiempo completo que se usa para una etapa e identificar las etapas con el mayor uso de tiempo y/o recursos dentro de la compilación. Dado que no todos los grupos de procesos tienen WaitLink, el gráfico de elementos en cola proporciona más detalles sobre el tiempo necesario para el procesamiento dentro de cada grupo de procesos.

Los gráficos útiles para ver dentro de los elementos en cola son los gráficos Bulk Service - <XXXX>. Estos grupos de procesos envían los datos procesados (documentos de índice) a Elasticsearch desde NiFi. El servicio más importante es Bulk Service – Product. Dado que la curva comienza desde el principio hasta el final de la canalización de Ingest, podemos usar la marca de tiempo en Enlace de espera para obtener las etapas relacionadas.

Por ejemplo, los dos gráficos siguientes muestran que la mayor cantidad de elementos en cola se encuentra en la etapa del Producto 1e. Esta observación significa que el grupo de datos de recuperación y el grupo de datos de procesamiento pueden manejar la tarea rápidamente y enviar muchos datos al grupo de servicio Bulk para su transferencia.

En este ejemplo, la duración con 100 elementos en cola es corta y, por lo tanto, no es un problema. Si un grupo de procesos lleva más tiempo con una mayor cantidad de elementos en cola, supondría un posible cuello de botella en la canalización.

También podemos usar Grafana para monitorear otras métricas.

Kibana

Kibana se puede utilizar para supervisar el consumo de recursos de Elasticsearch. Para obtener más información sobre Kibana, consulte la documentación sobre Kibana.

Este gráfico muestra las operaciones de Elasticsearch de supervisión de Kibana. Para el proceso de creación de índices, las métricas clave son la utilización de la CPU, el montón de JVM y la tasa de operaciones de E/S. La tasa de operación de E/S es la métrica más crítica, en el sentido de que si la velocidad de E/S se utiliza completamente, no es posible enviar más rápidamente el rendimiento global. Si la velocidad no es aceptable, la mejor manera de actuar es investigar soluciones alternativas con un rendimiento más alto.

Contadores NiFi e informes

Al ejecutar la canalización de ignesta, podemos utilizar los contadores NiFi o Grafana para comprobar el informe de canalización.

Debido a la gran cantidad de recursos que consume, la recopilación decontadores NiFi para actividades de HCL Commerce está inhabilitada de forma predeterminada.

Puede habilitarla añadiendo las dos líneas siguientes dentro de nifi-app.yaml (/commerce-helmchart-master/hcl-commerce-helmchart/stable/hcl-commerce/templates/nifi-app.yaml) antes de instalar NiFi:
name: "FEATURE_NIFI_COUNTER"
value: "true"

Después de habilitarlo, puede ver el informe mientras se ejecuta la prueba o después de que se completa el proceso de ingestia. Una desventaja es que solo puede ver un informe para cada conector. Si está utilizando el mismo conector para ejecutar otra canalización de Ingest, el informe que se generó para la ejecución anterior se eliminará al comienzo del nuevo proceso de Ingest (este proceso puede demorar un par de minutos).

Una vez finalizada una canalización de Ingest, el informe de Ingest, Métricas de Ingest, se enviará al índice run dentro de Elasticsearch. Puede configurar Grafana para que muestre el informe en el formato que ha definido. Se almacenan los informes para las distintas canalizaciones de información y los distintos conectores. Puede seleccionar connector y runID para ver el informe.

Los datos de las Métricas de Ingest en Grafana son diferentes de los Elementos en cola/Enlace de espera. Las métricas solo se enviarán por NiFi a Elasticsearch después de que finalice el proceso de Ingest. Pero los elementos en cola/Enlace de espera están usando Prometheus para recopilar información en tiempo de ejecución.

A efectos de ajuste, es posible que no desee finalizar una canalización de Ingest antes de ejecutarla nuevamente, o el proceso puede fallar en cualquier punto del proceso de Ingest. En estos casos, los contadores de NiFi pueden facilitar recopilar informes para algunas de las etapas de una canalización de Ingestión.