Si Prometheus es el bibliotecario de métricas, Grafana es el artista que las convierte en obras maestras.
Inmersión profunda en Grafana: creación de dashboards informativos
Antes de empezar: asegúrate de que ya tienes Prometheus y Grafana instalados y configurados según la instrucción de la lección anterior. Si no — vuelve a la sección "Configuración de Grafana" en la lección "Integración de Actuator con sistemas de monitorización".
Hoy aprenderemos a convertir métricas secas en dashboards bonitos e informativos. ¡Vamos a sumergirnos en el mundo de la visualización de datos!
Creación del dashboard
Empezaremos con lo más básico: crear un dashboard para monitorizar métricas básicas, como la carga de CPU y el uso de memoria.
1. Creamos un nuevo dashboard
- Entra en Grafana y haz clic en "Create" -> "Dashboard".
- Haz clic en "Add new panel". Aquí añadiremos gráficos y diagramas.
2. Configuramos el gráfico para la carga de CPU
- En el campo "Query" selecciona la fuente de datos (Prometheus).
- Introduce la siguiente consulta PromQL para monitorizar los recursos de CPU:
rate(process_cpu_seconds_total{job="spring-boot-app"}[1m])
Esta consulta muestra el uso de CPU de la aplicación en tiempo real.
- Ajusta la visualización. En el menú de la derecha selecciona el tipo de gráfico (por ejemplo, "Graph").
- Haz clic en "Apply" para guardar los cambios.
Ahora deberías ver el gráfico que muestra la carga de CPU de tu aplicación Spring Boot.
3. Configuramos el gráfico para el uso de memoria Añade otro gráfico usando pasos similares, pero cambia la consulta:
jvm_memory_used_bytes{area="heap", job="spring-boot-app"}
Esta consulta muestra el uso de la memoria heap (Java Virtual Machine).
- Asegúrate de que la fuente de datos está seleccionada correctamente.
- Configura la visualización (Graph u otro tipo según prefieras).
- Guarda los cambios.
4. Añadimos un panel para el número de peticiones procesadas Puedes añadir otro panel con una consulta para monitorizar las peticiones HTTP:
rate(http_server_requests_seconds_count{status="200", job="spring-boot-app"}[1m])
Esta consulta muestra la cantidad de peticiones HTTP exitosas con código 200 en el último minuto.
Ejercicio práctico: configuración del dashboard
En este punto deberías tener un dashboard con al menos tres métricas:
- Carga de CPU.
- Uso de memoria.
- Cantidad de peticiones HTTP procesadas.
Intenta por tu cuenta:
- Añadir otra panel, por ejemplo, para monitorizar errores:
rate(http_server_requests_seconds_count{status="500", job="spring-boot-app"}[1m])
- Configurar colores para diferentes niveles de métricas (por ejemplo, verde — todo bien, rojo — problemas).
Magia visual: personalización de dashboards
Grafana te permite configurar el dashboard para que sea cómodo y fácil de leer. Aquí van algunos consejos:
- Agrupa los gráficos que pertenecen a la misma categoría (por ejemplo, rendimiento, memoria, peticiones).
- Añade un título y una descripción a cada panel para que quede claro qué está monitorizando.
- Usa la opción "Repeat Panel" para crear gráficos dinámicos (por ejemplo, por cada método del controlador HTTP).
Caso real: monitorización de anomalías
Imagina que tu aplicación de repente empieza a ir más lenta. ¿Cómo puedes usar Grafana para diagnosticarlo?
- Revisa el gráfico de carga de CPU. Si muestra un pico brusco, puede que algún proceso esté saturando la CPU.
- Mira el gráfico de uso de memoria. Si la memoria está casi llena, deberías investigar una posible fuga de memoria.
- Compara las peticiones exitosas y las con error. Si las peticiones con error han aumentado de golpe, puede ser consecuencia de cambios en el código.
Grafana te ayuda a localizar rápidamente el problema y a tomar medidas.
Comprobación final
Después de terminar de configurar tu dashboard:
- Revisa todos los paneles para detectar posibles errores o imprecisiones.
- Asegúrate de que tus datos se actualizan en tiempo real.
- Comprueba que la escala temporal está configurada correctamente (por ejemplo, últimos 15 minutos).
Consejos finales y errores típicos
Errores comunes:
- PromQL incorrecto: Algunas métricas pueden no estar disponibles por errores en las consultas.
- Protección insuficiente: Asegúrate de que el acceso a Grafana está restringido, especialmente si trabajas en producción.
- Exceso de gráficos: Los dashboards deben ser concisos e informativos. No añadas demasiados paneles, que te ahogarás en datos.
Poco a poco dominarás la creación de consultas PromQL más complejas y podrás visualizar prácticamente cualquier aspecto del funcionamiento de tu aplicación. Ahora eres el arquitecto de dashboards, y tu aplicación es un libro abierto. ¡Todo bajo control!
Para profundizar en PromQL y Grafana consulta la documentación de Prometheus y la documentación de Grafana.
GO TO FULL VERSION