...
Info |
---|
Disponible a partir de Release 5.3.0 (Ultimate) de Plataforma |
Objetivo
Esta funcionalidad permite monitorizar el consumo individual y en conjunto de los notebooks. De esta forma podremos conocer el estado de cada Notebook, ver los procesos en ejecución, controlar el estado…
Funcionamiento de los Notebooks
Para entender la funcionalidad de Monitorización es importante conocer algunos conceptos de los Notebooks.
Modos de ejecución de notebooks
Los notebooks de plataforma (basados en Apache Zeppelin) se ejecutan en base a intérpretes con diferentes configuraciones, de modo que un notebook, puede ejecutar intérpretes en diferentes modos.
En plataforma se contemplan 3 modos de ejecución de intérpretes en notebooks:
Shared → El proceso del intérprete, se comparte con todos los notebooks, de modo que no se pueden hacer ejecuciones paralelas de este intérprete en varios notebook. El manager es el mismo para ese intérprete. En estos casos, al no estar asociado el intérprete a un notebook, no podrá saberse de forma sencilla cuál es el notebook que ha ejecutado, ya que podrá ir saltando de unos a otros y tendrá que cruzarse la entidad de recursos con la entidad de ejecuciones para poderse conocer el detalle.
Por notebook:
Scoped → El proceso del intérprete es común para todos los notebooks por lo tanto es un manager de varias ejecuciones.
Isolated → El proceso del intérprete está separado también por notebook con lo que el manager sólo maneja un notebook. En este caso, el intérprete estará asociado a un notebook con lo que se podrá saber que notebook es en todo momento por el nombre del intérprete. Si se quiere saber el detalle de párrafos habrá que cruzar la entidad de recursos con la de ejecuciones.
Además, existen los modos de ejecución en k8s de modo que la ejecución de cada notebook se delega en cada pod. El manager se mantiene en este pod a modo de control de los diversos tipos de ejecuciones.
...
Goal
This feature allows you to monitor the individual and overall consumption of the notebooks. In this way we can know the status of each Notebook, see the running processes, control the status...
Operation of the Notebooks
To understand the functionality of Monitoring it is important to know some concepts of Notebooks.
Notebook execution modes
The platform notebooks (based on Apache Zeppelin) are executed based on interpreters with different configurations, so that a notebook can execute interpreters in different modes.
There are 3 modes of execution of interpreters in notebooks:
Shared: The interpreter process is shared with all notebooks, so that parallel executions of this interpreter cannot be made in several notebooks. The manager is the same for this interpreter. In these cases, since the interpreter is not associated to a notebook, it will not be possible to know in a simple way which notebook has been executed, since it can jump from one to another and the resources entity will have to be crossed with the executions entity in order to know the details.
Per notebook:
Scoped: The interpreter process is common to all notebooks so it is a multi-run manager.
Isolated: The interpreter process is also separated by notebook so that the manager only handles one notebook. In this case, the interpreter will be associated to a notebook, so you will be able to know which notebook it is at all times by the name of the interpreter. If you want to know the detail of paragraphs, you will have to cross the resources entity with the executions entity.
In addition, there are execution modes in k8s so that the execution of each notebook is delegated to each pod. The manager is kept in this pod to control the various types of executions.
Based on this, the manager (RemoteInterpreterServer process) will be in charge of reporting metrics and execution information to the platform, regardless of where it is executed.
Métricas disponibles
Se han creado 2 métricas, ambas complementarias:
Métricas de recursos
Esta monitorización, almacenada en una entidad de tipo TimeSeries (notebooks_metrics_resources). A nivel intérprete, se sacan los procesos, tipo de intérprete (shared, scoped, isolated), si está asociado a un notebook y el consumo de CPU y RAM
...
En intérpretes “shared“, será necesario cruzar con la entidad de monitorización para saber que notebook ha consumido el intérprete.
...
Métricas de ejecución
Estas métricas (notebooks_metrics_executions) dan el detalle de ejecución de los párrafos que se ve el usuario, notebook, párrafo, intérprete...
...
Con esta monitorización, cruzada con la anterior, podremos saber el consumo real por párrafo.
...
Reporte de Métricas
Para el reporte de métricas existen dos métodos:
...
/api/interpreter/metrics/interpreter/{interpreterId} → obtener todos los recursos del intérprete por id (python, spark, onesaitplatform, …) así como su estado y consumo
Próximos pasos
Tener controles sobre los mismos en plataforma (UI de los notebooks) → poder usar los elementos anteriores en la UI de los notebooks para conocer los activos, poder pararlos de forma sencilla, etc, etc
Dashboard de visualización de métricas de forma sencilla
Limitar el uso de procesos de notebooks tanto por RAM como por CPU