Gráficos en un plugin de vCheck

vCheck es un script de PowerShell / PowerCLI publicado por Alan Renouf (más concretamente un conjunto de scripts que casi se puede describir como un framework) que permite obtener de una forma muy sencilla un informe en el que se muestra el estado de una infraestructura. Aunque inicialmente se creo como un script pensado en una infraestructura de VMware, hay distintas versiones para otros productos (Exchange, SCVMM…)

El diseño de este script, permite añadir nuevas secciones al informe generado a través de lo que se llaman plugins, que son scripts cuyo contenido de salida es añadido al informa.

Esos plugins pueden generar distintos tipos de información, aunque la principal y que más se utiliza son las tablas de datos. Desde la versión 6.21 también soporta la opción de que los plugins generen gráficos (charts). En ocasiones puede ser interesante tener los datos de una forma más visual que una tabla así que vamos a ver como crear un plugin para vCheck que genere un gráfico en el informe.

Lo primero es entender de forma resumida, que tipos de plugin podemos crear. Los plugins pueden generar 3 tipos de datos:

  • List
  • Table
  • Chart

Podemos ver un ejemplo de la información que muestra cada uno de los tipos de plugins:

Tipo Ejemplo
List vCheck-001
Table vCheck-002
Chart vCheck-003

 

Como vemos la diferencia entre la información mostrada en el tipo List y la de tipo Table es pequeña, pero la de tipo Chart si que nos permite ver de forma más visual la información generada por el plugin.

No he visto publicado ningún plugin que muestre la informacion en tipo chart, así que vamos a ver los sencillos pasos para crear uno.

Lo primero es saber que tiene que devolver el plugin.

El plugin tiene que devolver un objeto creado con la función New-Chart, cuya definición en el archivo vCheck.ps1 es la siguiente:

 

Por esto, en nuestro archivo del plugin añadiremos la siguiente línea de código:

Vamos a ir viendo cada uno de los parámetros (son los mismos datos que hemos ido viendo en anteriores entradas para ver como se utilizan gráficos en PowerShell):

  • height: indica el tamaño en altura de la imagen que se va a generar
  • width: indica el tamaño de ancho de la imagen que se va a generar
  • title: es el título del gráfico
  • titleX: es el texto indicado en el eje X
  • titleY: es el texto indicado en el eje Y
  • ChartType: es el tipo de gráfico de Microsoft Chart Control (Bar, Column, Area, Pie…)
  • data: contiene la información de los datos a mostrar

Vamos a centrarnos en este último parámetro, ya que es el que creo más importa

En el parámetro data tenemos que indicar un objeto de tipo Hashtable que contiene la información de los datos a mostrar. Como normalmente solemos trabajar con datos de tipo Table, lo que he hecho es crear en unas sencillas líneas de código la conversión a un objeto de tipo Hashtable, como se puede ver a continuación:

El objeto $SO_maquinas es una tabla con la información de los sistemas operativos y el número de máquinas asociadas a cada uno de ellos. Creo un nuevo objeto $output de tipo Hashtable y voy añadiendo los distintos elementos de $SO_maquinas

De esta forma, un ejemplo básico de un plugin completo que genera el número de máquinas virtuales por cada sistema operativo sería el siguiente:

 

Y así es como se vería el gráfico en el informe generado

vCheck-004

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.