gpfs_performance_monitoring
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| gpfs_performance_monitoring [2026/07/31 16:58] – [Configurar performance monitoring tool] bbruzzo | gpfs_performance_monitoring [2026/08/14 13:56] (current) – [Containerizando el bridge] bbruzzo | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Performance Monitoring ====== | ====== Performance Monitoring ====== | ||
| - | La **performance monitoring tool** colecciona métricas de GPFS y provee información de performance del sistema. | + | |
| + | ===== Intro a componentes ====== | ||
| + | |||
| + | La [[https:// | ||
| Está habilitada por default e incluye // | Está habilitada por default e incluye // | ||
| - | ===== Collector | + | ==== Collector ==== |
| Un collector soporta hasta 150 sensor nodes. Con un collector debería ser suficiente para nuestro sistema. Se pueden armar esquemas con más de un collector (multi-collector federation) por razones de escala y de tolerancia a fallas. | Un collector soporta hasta 150 sensor nodes. Con un collector debería ser suficiente para nuestro sistema. Se pueden armar esquemas con más de un collector (multi-collector federation) por razones de escala y de tolerancia a fallas. | ||
| Line 11: | Line 14: | ||
| Podemos utilizar mmgt01 como Node Collector en el cluster de storage y vlmgt02 en el cluster cliente, ya que es buena práctica mantener servicios extra (como monitoreo) fuera de los quorum nodes. | Podemos utilizar mmgt01 como Node Collector en el cluster de storage y vlmgt02 en el cluster cliente, ya que es buena práctica mantener servicios extra (como monitoreo) fuera de los quorum nodes. | ||
| - | ===== Sensors | + | ==== Sensors ==== |
| El componente que recopila datos de performance de un nodo | El componente que recopila datos de performance de un nodo | ||
| - | ===== Proxy ===== | + | ==== Proxy ==== |
| Se corre un proxy por cada protocolo para recopilar métricas de ese protocolo. | Se corre un proxy por cada protocolo para recopilar métricas de ese protocolo. | ||
| Line 25: | Line 28: | ||
| Para eso necesitamos configurar la performance monitoring tool de GPFS. | Para eso necesitamos configurar la performance monitoring tool de GPFS. | ||
| - | ==== Configurar performance monitoring tool ==== | + | ==== Resolución de dependencias |
| Necesitamos los paquetes | Necesitamos los paquetes | ||
| Line 132: | Line 135: | ||
| systemctl status pmcollector | systemctl status pmcollector | ||
| systemctl status pmsensors</ | systemctl status pmsensors</ | ||
| + | |||
| + | ==== CherryPy ==== | ||
| + | |||
| + | En el nodo collector tiene que estar instalado el paquete de python CherryPy. | ||
| + | |||
| + | < | ||
| + | [root@vlmgt02 gpfs_perf_testing]# | ||
| + | (env) [root@vlmgt02 gpfs_perf_testing]# | ||
| + | |||
| + | ==== Generación de API Keys ==== | ||
| + | |||
| + | Leer archivo ubicado en ''/ | ||
| + | |||
| + | ==== Set Up de prueba ==== | ||
| + | |||
| + | [[https:// | ||
| + | ]] | ||
| + | |||
| + | Necesitamos python3.11. | ||
| + | |||
| + | Para una prueba de concepto voy a usar micromamba, pero vamos a tener que containerizar con podman. | ||
| + | |||
| + | < | ||
| + | curl -Ls https:// | ||
| + | source ~/.bashrc | ||
| + | micromamba create -n grafana_bridge python=3.11 -c conda-forge -y | ||
| + | micromamba run -n grafana_bridge pip install CherryPy | ||
| + | micromamba run -n grafana_bridge pip install requests | ||
| + | micromamba run -n grafana_bridge python zimonGrafanaIntf.py | ||
| + | </ | ||
| + | |||
| + | No está armada la config de perf monitoring | ||
| + | |||
| + | < | ||
| + | 2026-07-31 14:50 - MainThread | ||
| + | 2026-07-31 14:50 - MainThread | ||
| + | 2026-07-31 14:50 - MainThread | ||
| + | 2026-07-31 14:51 - MainThread | ||
| + | 2026-07-31 14:51 - MainThread | ||
| + | 2026-07-31 14:52 - MainThread | ||
| + | 2026-07-31 14:52 - MainThread | ||
| + | %s Server internal error occurred. Reason: Empty results received | ||
| + | 2026-07-31 14:53 - MainThread | ||
| + | </ | ||
| + | |||
| + | ==== Containerizando el bridge ==== | ||
| + | |||
| + | Utilizamos podman en mmgt02 | ||
| + | |||
| + | < | ||
| + | |||
| + | |||
| + | Actualmente estamos trabajando con la [[https:// | ||
| + | | release 9.1.0]] del bridge. | ||
| + | |||
| + | Tiene un bug que debemos parchear para poder ver correctamente las métricas que son counters. | ||
| + | |||
| + | Editar el archivo source/ | ||
| + | |||
| + | Cambiar la sección que figura como: | ||
| + | |||
| + | < | ||
| + | 345- if self.raw_data or " | ||
| + | 346: attrs.update({' | ||
| + | 347- self.logger.debug(MSG[' | ||
| + | </ | ||
| + | |||
| + | Para que skipNullValues sea False | ||
| + | |||
| + | < | ||
| + | 345- if self.raw_data or " | ||
| + | 346: attrs.update({' | ||
| + | 347- self.logger.debug(MSG[' | ||
| + | </ | ||
| + | |||
| + | Esto generaba que se inyecte la flag -s en la REST API de GPFS, que no era soportada. Generaba un log: | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | [podman@vlmgt02 ~]$ cd ibm-spectrum-scale-bridge-for-grafana-9.1.0 | ||
| + | </ | ||
| + | |||
| + | Buildeamos la imagen | ||
| + | |||
| + | < | ||
| + | |||
| + | Generamos unit file en / | ||
| + | |||
| + | El contenido del unit file es: | ||
| + | |||
| + | < | ||
| + | [Unit] | ||
| + | Description=GPFS Grafana Bridge | ||
| + | After=pmcollector.service | ||
| + | |||
| + | [Container] | ||
| + | ContainerName=gpfs_bridge | ||
| + | Image=localhost/ | ||
| + | Volume=/ | ||
| + | Volume=/ | ||
| + | Volume=/ | ||
| + | |||
| + | Network=host | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=default.target | ||
| + | </ | ||
| + | |||
| + | Asegurarse que los permisos de / | ||
| + | |||
| + | Luego se puede lanzar o detener el container con systemd. | ||
| + | |||
| + | < | ||
| + | podman $ systemctl --user daemon-reload | ||
| + | podman $ systemctl --user start gpfs-bridge | ||
| + | podman $ podman logs gpfs_bridge | ||
| + | </ | ||
| + | |||
gpfs_performance_monitoring.1785517130.txt.gz · Last modified: by bbruzzo
