Enmilocalfunciona

Thoughts, stories and ideas.

Mostrando resultados de Jenkins en Grafana mediante InfluxDB

Publicado por Cristina Lopez-Goicochea Juarez el

QAGrafanaJenkinsInfluxDB

En este post vamos a ver cómo visualizar en Grafana los resultados de una serie de tests automatizados en Selenium y lanzados desde Jenkins. Para ello, utilizaremos InfluxDB como base de datos.

Instalación previa de las herramientas

En primer lugar, necesitaremos hacer la instalación previa de las siguientes herramientas:

Instalación de InfluxDB

Al descomprimir el fichero zip correspondiente a InfluxDB, veremos lo siguiente:

Accedemos a la carpeta donde hayamos descomprimido InfluxDB para ejecutar el comando "influxd.exe". Este comando arrancará InfluxDB y podremos ir añadiendo datos. En este momento se generará automáticamente la carpeta "data".

Por defecto, se ejecuta en el puerto 8086. En el caso de querer configurar otro puerto, simplemente habrá que modificar el fichero "influxdb.conf".

Por otro lado, mediante el comando "influx.exe" podremos consultar los datos introducidos dentro de la BBDD. En este enlace se podrá consultar los comandos : https://docs.influxdata.com/influxdb/v1.8/query_language/manage-database/#delete-a-database-with-drop-database

Instalación de Grafana

Para instalar Grafana, bastará con descargar y lanzar el fichero ejecutable. Una vez instalada la aplicación, para verificar que se ha ejecutado correctamente, simplemente hay que abrir una ventana en el navegador y ejecutar "http://localhost:3000/". Veremos una pantalla como la siguiente:

Configuración del DataSource

Una vez tengamos configuradas y arrancadas ambas herramientas, necesitaremos vincularlas para que Grafana pueda obtener los datos de InfluxDB. Para ello, es necesario crear dentro de InfluxDB una base de datos, que posteriormente usaremos para configurar el Data Source en Grafana.

Creación de la base de datos en InfluxDB

Ejecutamos el comando "influx.exe", recordad hacerlo desde el directorio de instalación si no habeis añadido la ruta en el PATH.

Para crear la base de datos escribiremos el siguiente comando:

CREATE DATABASE [name]  

Con ello, crearemos la base de datos con la cual Grafana obtendrá los datos a mostrar. Si quieremos verificar que la base de datos se ha generado correctamente ejecutaremos:

show databases  

Creación del DataSource en Grafana

Dentro de Grafana, en la barra de herramientas izquierda iremos al menú Herramientas > Data Sources y seleccionaremos la opción de Add Data Source del botón que se encuentra abajo a la derecha. De todas las opciones posibles, seleccionamos InfluxDB.

Configuramos el nuevo datasource añadiendo la url de InfluxDB, en nuestro caso  http://localhost:8086, un nombre que identifique al datasource y la base de datos creada en InfluxDB.

Verificamos, mediante el botón "Save & Test" que la vinculación se ha realizado correctamente.

Creación del Dashboard

Para la generación del Dashboard, utilizamos el que Grafana ha generado específicamente para Jenkins. No obstante, podemos realizar nuestros propios cambios a posteriori y adaptarlo a nuestras necesidades.

Podeis descargarlo desde la siguiente url: https://grafana.com/grafana/dashboards/10557, se os descargará en un fichero json que posteriormente tendremos que importar desde Grafana.

Para ello iremos al menú de la izquierda Create > Import e importaremos el json descargado.

Vinculación con Jenkins

En Jenkins será necesario instalar algunos plugins. Para ello iremos a Administrar Jenkins > Administrar Plugins y procederemos a instalar los tres plugins siguientes:

Una vez instalados y reiniciado Jenkins, debereremos configurarlos. Podemos hacerlo, desde Administrar Jenkins > Configura el sistema. Dentro de InfluxDB Targets configuraremos nuestro acceso a InfluxDB, tal y como indica la imagen:

La base de datos será la misma que hemos creado anteriormente. La url corresponderá a la de InfluxDB y dejaremos el resto de opciones tal y como se ve en la imagen.

Por otro lado, dentro de Autostatus Config también configuraremos el acceso a InfluxDB, tal y como indica la imagen:

Configuración del job

Para configurar el job, únicamente es necesitaremos añadir la opción Publish build data to InfluxDB seleccionando Publish build data to InfluxDB dentro del menú de opciones de: Acciones para ejecutar después

Si ejecutamos el job, podrémos observar como finalmente realiza el envío de los datos de resultados a "InfluxDB"

Visualización en Grafana

Si accedemos al Dashboard en Grafana, podremos ver los gráficos generados automáticamente a partir de los resultados enviados desde Jenkins a InfluxDB. Si ejecutamos más de un job, dentro de la lista de jobs podremos seleccionar el nombre de la tarea para ver sus gráficas.

Conclusión

En resumen, Grafana nos permite ver de una forma gráfica cualquier tipo de resultado, incluso realizar tareas de monitoreo en los que debamos verificar cada ciertos segundos cualquier dato fluctuante. Es una herramienta recomendable y potente que puede ser utilizada para muchas cosas.

Si te ha gustado, ¡síguenos en Twitter para estar al día de nuevos posts!