Data Team MICGrafana es la plataforma open-source de análisis y monitoreo para infraestructura y datos. Proporciona dashboards interactivos para visualizar métricas conectando con Prometheus (métricas) y Loki (logs), permitiendo monitoreo 24/7 de componentes como Trino, Spark, Kafka y NiFi.
Abrir la interfaz web
<tu-url>
Acceder con credenciales provistos por el equipo de plataforma. Usuario por defecto: admin.
| Sección | Descripción |
|---|---|
| Dashboards | Ver, crear y editar dashboards de monitoreo |
| Explore | Explorador visual para consultar métricas/logs |
| Alerts | Gestión de alertas y notificaciones |
| Data Sources | Conexiones a Prometheus, Loki, etc. (admin) |
| Settings | Configuración global, usuarios, roles, plugins |
| Atajo | Acción |
|---|---|
Ctrl + K |
Abrir búsqueda/navegación rápida |
? |
Ver todos los atajos disponibles |
d |
Abrir selector de dashboard |
s |
Abrir selector de series (en dashboards) |
g |
Ir a panel ganador (dashboard favorito) |
| Panel Type | Uso recomendado |
|---|---|
| Time series | Evolución de métricas en el tiempo |
| Stat | Valor único con formato condicional |
| Gauge | Indicador visual de rango (0-100%) |
| Bar chart | Comparativa por categoría |
| Table | Datos tabulares con filtros y orden |
| Log panel | Visualización de logs de Loki |
| Pie chart | Distribución porcentual |
| Heatmap | Intensidad de eventos por hora/día |
Crear filtros dinámicos para reutilizar dashboards:
Name: environment
Type: Query
Data source: Prometheus
Query: label_values(up, env)
Usar en queries con $environment:
up{env="$environment"}
metric_name # Métrica simple
metric_name{label="value"} # Con filtro de etiqueta
metric_name{env="prod"} # Múltiples etiquetas
rate(requests_total[5m]) # Tasa de cambio en 5 minutos
sum(rate(metric[5m])) by (job) # Agregación por grupo
Monitoreo de Trino
# Queries activas en Trino
active_queries{cluster="<tu-url>"}
# Tiempo de ejecución promedio
histogram_quantile(0.95, rate(query_execution_time_seconds_bucket[5m]))
# Nodos Trino disponibles
up{job="trino"}
Monitoreo de Kafka
# Lag de consumer groups
kafka_consumer_lag{group="analytics-pipeline"}
# Rate de mensajes por segundo
rate(kafka_messages_in_total[1m])
# Replicas sincronizadas por topic
kafka_topic_partitions{topic="events"}
Monitoreo de Spark
# Tasks ejecutando
spark_executor_task_time
# Memoria usada por executor
spark_executor_memory_used_bytes
{job="trino"} # Logs del job Trino
{env="prod"} | "error" # Filtrar por patrón
{job="nifi"} | json # Parsear JSON
{cluster="prod"} | logfmt # Parsear logfmt
Errores en Trino
{job="trino"} | "error" | json | level="ERROR"
Logs de ejecución de Spark
{job="spark-driver"} |= "task failed" | json
Logs de NiFi
{job="nifi"} | "ERROR" | logfmt
Condition: avg() of query result > 0.8
For: 1m (tiempo antes de dispara)
Evaluate every: 30s (frecuencia de check)
Nombre: High CPU on Data Nodes
Condition: 100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) * 100) > 80
For: 5m
Notify to: #data-platform-alerts (Slack)
Nombre: Kafka Consumer Lag Critical
Condition: kafka_consumer_lag{group="analytics-pipeline"} > 100000
For: 2m
Notify to: PagerDuty
Name: Prometheus
URL: <tu-url>
Name: Loki
URL: <tu-url>
| Convención | Descripción |
|---|---|
| Nombre | [Componente] - [Tipo Monitoreo] |
| Ejemplo | Trino - Query Performance o Kafka - Broker Health |
| Tags | Aplicar tags por equipo: platform, data-eng, infra |
| Refresh Rate | 30s para dashboards operacionales, 5m para históricos |
| Descripción | Incluir información de cómo leer e interpretar métricas |
| Severidad | Threshold | Notificación | Ejemplo |
|---|---|---|---|
| CRITICAL | Requiere acción inmediata | PagerDuty + #critical-alerts | Componente down (up = 0) |
| WARNING | Monitorear, prepararse | #data-platform-alerts | CPU > 80%, Lag > 50K msgs |
| INFO | Informativo | Slack (no urgente) | Deploy iniciado, caché limpio |
Dashboard de infraestructura crítica debe incluir:
up metric)Dashboard de pipelines de datos debe incluir:
docker logs prometheus o docker logs lokitelnet <tu-url> <puerto><tu-url>label_values(metric_name, label_key)