📈 Grafana Cheatsheet Completo 📈

Grafana es una herramienta de código abierto para la visualización y analítica de series de tiempo, diseñada para consultar, visualizar, alertar y comprender tus métricas dondequiera que se almacenen. Es ampliamente utilizada para monitorear infraestructura, aplicaciones y logs.


1. 🌟 Conceptos Clave


2. 🛠️ Instalación y Acceso

2.1. Con Docker (Recomendado para Desarrollo/Pruebas)

docker run -d --name grafana -p 3000:3000 grafana/grafana:latest
# Accede a http://localhost:3000
# Usuario/Contraseña por defecto: admin/admin (te pedirá cambiarla al primer login)

2.2. Configuración (conf/defaults.ini o conf/custom.ini)


3. 📊 Módulos Principales de la UI

Grafana se organiza en una barra lateral izquierda con los siguientes iconos:


4. 📈 Creación de un Dashboard y Paneles

4.1. Añadir una Fuente de Datos

  1. Ve a Connections -> Data sources -> Add data source.
  2. Selecciona el tipo (ej. Prometheus).
  3. Configura los detalles de conexión (ej. URL de Prometheus: http://localhost:9090).
  4. Haz clic en Save & test.

4.2. Crear un Nuevo Dashboard

  1. Haz clic en el icono Dashboard -> New dashboard.
  2. Haz clic en Add a new panel.

4.3. Configurar un Panel


5. 🧰 Variables (Templating)

Permiten hacer tus dashboards dinámicos y reutilizables.

  1. Configurar Variable:
    • En Dashboard Settings (icono de engranaje) -> Variables -> Add variable.
    • Name: Nombre de la variable (ej. service).
    • Type:
      • Query: Obtener valores de una consulta a la fuente de datos (ej. label_values(up, job) para jobs de Prometheus).
      • Custom: Valores definidos manualmente.
      • Text box: Permite al usuario escribir un valor.
      • Constant: Valor oculto.
    • Multi-value: Permitir seleccionar múltiples valores.
    • Include All option: Añadir una opción “All”.
  2. Usar Variables en Consultas:
    • $variable_name: Para una única selección.
    • ${variable_name}: Para una única selección, donde se requiere interpolación completa.
    • ${variable_name:pipe_variable_name}: Para múltiples selecciones (ej. query_result(up{job=~"$service"} o query_result(up{job=~"${service:pipe_variable_name}"})).
    • Ejemplo: rate(http_requests_total{service_name="$service"}[5m])

6. 🔔 Alerting (Alertas)

Grafana Alerting te permite configurar reglas que monitorean tus métricas y envían notificaciones.

  1. Contact Points: Define dónde se enviarán las notificaciones (Email, Slack, PagerDuty, Webhook).
    • Alerting -> Contact points.
  2. Notification Policies: Define qué alertas van a qué Contact Points y cómo se agrupan.
    • Alerting -> Notification policies.
  3. Alert Rules: Define la condición de la alerta.
    • Alerting -> Alert rules -> Create alert rule.
    • Alert name: Nombre de la alerta.
    • Datasource: Fuente de datos.
    • Query: Consulta para la alerta (ej. sum(rate(errors_total[5m])) > 0).
    • Condition: Condición para disparar la alerta.
    • Evaluate every: Frecuencia de evaluación.
    • For: Duración de la condición para que la alerta se considere activa.
    • Notification: A qué Contact Point enviar.

7. 💡 Buenas Prácticas y Consejos


Este cheatsheet te proporciona una referencia completa de Grafana, cubriendo sus conceptos esenciales, cómo instalarlo y acceder a él, la creación de dashboards y paneles, el uso de variables, el sistema de alertas y las mejores prácticas para visualizar y analizar tus datos de manera efectiva.