Visualiza métricas en Grafana: data sources, paneles y dashboards de la comunidad
Conecta Grafana a Prometheus, construye un panel desde cero y luego importa un dashboard ya hecho en lugar de construirlo todo a mano.
Prometheus almacena y consulta métricas; no está pensado para ser el lugar donde las miras día a día. Grafana es la capa de dashboards más comúnmente combinada con él. Esta guía conecta ambos, construye un panel a mano para entender qué ocurre por debajo y luego importa un dashboard de la comunidad en lugar de construirlo todo desde cero, que es como realmente funciona la mayor parte del uso real de Grafana.
Añade Prometheus como data source
# docker-compose.yml (añadir a la pila de la guía anterior)
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
Tras docker compose up -d, abre http://localhost:3000 e inicia sesión con el admin / admin predeterminado (se te pedirá cambiarlo). Añade un data source en Connections → Data sources → Add new data source, elige Prometheus y apunta su URL a http://prometheus:9090, el nombre de servicio de Compose de la guía anterior, ya que Grafana y Prometheus comparten la misma red de Docker. Guarda y prueba; una conexión exitosa confirma que Grafana puede llegar a Prometheus antes de construir nada encima.
Construye un panel a mano
Crea un dashboard nuevo, añade una visualización y selecciona el data source de Prometheus. En lugar de escribir PromQL directamente, el query builder de Grafana te permite construir una consulta campo por campo, una forma razonable de aprender qué hace realmente una consulta:
- Métrica: selecciona
node_cpu_seconds_total. - Filtros de etiquetas: añade
mode != "idle", ya que el tiempo de CPU en modo idle no es la parte que te interesa visualizar. Si solo tienes una instancia de node_exporter, las etiquetasjobeinstanceno distinguirán nada y pueden omitirse; importan cuando monitorizas más de un host. - Grafana te indicará que un counter como este necesita una función de tasa. Cámbialo a
rate()(oirate(), aunque, como se cubrió en la guía de PromQL,rate()es la opción más estable por defecto) sobre una ventana como1m. - En Options, cambia la leyenda de Auto a un formato personalizado,
{{mode}}, para que las líneas resultantes se etiquetensystem,user,iowaity así sucesivamente, en lugar del conjunto de etiquetas completo y repetitivo.
Guarda el panel con un nombre y añádelo a un dashboard. Debajo del builder, una vista Code muestra el PromQL real que construyó Grafana, algo que conviene mirar una vez para poder eventualmente saltarte el builder y escribir las consultas directamente.
Un segundo panel: uso de disco a partir de una expresión
No todos los paneles provienen de una sola métrica; algunos provienen de combinar unas cuantas:
node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}
Esto calcula los bytes realmente usados en el sistema de archivos raíz restando los bytes libres del tamaño total, filtrado al punto de montaje raíz para que los sistemas de archivos temporales y virtuales no ensucien el resultado. Pega esto directamente en la vista Code del panel en lugar de intentar construirlo campo por campo; cualquier cosa que implique aritmética entre dos métricas suele ser más rápida de escribir que de armar con clics en un builder.
Importa un dashboard de la comunidad en lugar de construir desde cero
Construir cada panel a mano no escala cuando tienes decenas de métricas que vale la pena seguir, y para exporters comunes, alguien casi con seguridad ya ha construido y publicado un dashboard completo. La biblioteca de dashboards de Grafana permite buscar por nombre de exporter, y cada dashboard tiene un ID numérico:
- Busca en la biblioteca el exporter que usas (
node exporter,cadvisor) y elige uno con buenas valoraciones y una actualización reciente. - Copia el ID del dashboard.
- En Grafana, ve a Dashboards → New → Import, pega el ID y cárgalo.
- Selecciona tu data source de Prometheus cuando se te pida e importa.
Esto te da un conjunto completo y prediseñado de paneles, CPU, memoria, swap, E/S de disco, errores de red, uptime y más, sin construir cada uno a mano. También es una forma realmente útil de aprender PromQL: abre el editor de un panel importado y lee las consultas que usa para una métrica que entiendas bien, lo que suele ser más claro que leer documentación de forma aislada.
Personaliza a partir de ahí
Un dashboard importado es un punto de partida, no una respuesta final. Cada panel sigue siendo totalmente editable: ajusta filtros de etiquetas, cambia tipos de visualización, retoca umbrales y colores, o elimina paneles que no necesites. Trata la importación como un andamiaje a partir del cual construyes hacia fuera, en lugar de algo que o bien usas sin modificar o evitas por completo.
Guías populares
-
Arquitectura de Prometheus y el modelo pull Por qué Prometheus recopila en lugar de recibir, y cómo encajan los targets, los exporters y el service discovery. -
El modelo de datos de Prometheus: métricas, etiquetas y tipos de métrica Qué es realmente una serie temporal en Prometheus y el formato de texto plano en el que los targets las exponen. -
Primeros pasos con PromQL: seleccionar, calcular tasas y agregar Construye desde un simple selector de métrica hasta una consulta real: la tasa de errores por ruta, calculada en vivo. -
Monitoriza un host y sus contenedores con node_exporter y cAdvisor Ejecuta juntos Prometheus, node_exporter y cAdvisor, recopila métricas de ambos y confirma que los targets están sanos.