Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Objetivo

En esta release se ha añadido la posibilidad de desplegar un nuevo componente para la monitorización de recursos del Flow Engine.

Para facilitar la monitorización de consumo de recursos por parte de cada dominio (instancia de NodeRED) de Flow Engine, hemos creado una serie de elementos de plataforma que nos permiten analizar los propios logs de dicho módulo y visualizar la información de consumo de recursos y ejecución de procesos de manera sencilla mediante un dashboard.

¿Cómo funciona?

Para poder interpretar los logs, filtrar la información relevante y plasmarla en un dashboard se han creado una serie de elementos con la siguiente funcionalidad:

Se crean dos entidades:

  • flowEngineResourceConsumption: Para el uso de recursos por dominio. Dicha entidad almacenará el consumo de CPU, memoria RAM, número de conexiones abiertas y estado del mismo (activo o no), así como el timestamp. Estas medidas se generan cada 30 segundos.

  • flowEngineDomainLogs: Almacenará el resto de trazas de log por dominio, teniendo como campos:

    • timestamp/timestampISO: millis e interpretación texto en ISO 8601 del momento de generación del registro

    • level/leve_name: Nivel de traza e interpretación a texto (INFO, WARN, ERROR, …)

    • domain: Dominio del Flow Engine (instancia de nodeRED)

    • id: Identificador del nodo que genera la traza

    • type: Tipo de nodo (nombre del tipo nodeRED) que genera la traza

    • msg: Objeto con el contenido del mensaje. En la mayoría de casos este objeto contendrá el ID del mensaje.

    • z: Identificador del flujo (pestaña nodeRED) donde se genera la traza.

Estas entidades estarán disponibles

Se crea un Cliente Digital para acceder a dichas entidades: FlowEngine-logging-client

Se crea un Dataflow para leer los logs, procesarlos y realizar la carga de las entidades anteriores: FlowEngineLogProcessor

Para poder atacar estos datos, se han creado también una serie de Datasources, Gadgets y un Dashboard. La lista de elementos es la siguiente:

  • Datasources: FlowEngineDomains, FlowEngineMonitor_cpu_usage, FlowEngineMonitor_logs, FlowEngineMonitor_ram_usage, FlowEngineMonitor_sockets_count

  • Gadgets: FlowEngineMonitor_gadget_cpu_usage, FlowEngineMonitor_gadget_Domain_Logs, FlowEngineMonitor_gadget_memory_usage, FlowEngineMonitor_gadget_socket_count

  • Dashboard: Dashboard Flow Engine Monitoring

En dicho dashboard tenemos dos pestañas:

  • Resource consumption: Para visualizar el consumo por dominio, filtrando por nombre de dominio y rango temporal.

  • Domain Logs: Para visualizar los logs del dominio directamente, permitiendo el mismo filtrado por dominio y rango de fechas/hora

¿Cómo desplegarlo?

Para que no se tengan que crear todos estos elementos a mano, hemos añadido al módulo configInit un proceso de generación automática de los mismos. Por defecto estará activado, pero pueden crearse lanzando el módulo con la propiedad “onesaitplatform.init.flowEngineMonitor“ o la variable de entorno “LOADFLOWENGINEMONITOR“ activada a true.

Esto creará todos los elementos ya descritos. Lo único necesario para que el Dataflow pueda acceder a los logs es mapear un volumen al módulo Streamsets/Dataflow, apuntando con el directorio local “/var/log/platform-logs” al volumen donde el Flow Engine está generando los logs.

  • No labels