docs: add visualization setup guide and update Rill config
Añadida documentación de configuración de herramientas de visualización. Cambios: - Nuevo archivo VISUALIZATION_SETUP.md con guía de setup de Grafana/Metabase/Rill - Actualizada configuración de Rill (rill-data/rill.yaml) con nuevas fuentes de datos Contenido de VISUALIZATION_SETUP.md: - Configuración de datasources para Grafana - Setup de Metabase con PostgreSQL/ClickHouse - Configuración de Rill con DuckDB - Ejemplos de queries y dashboards
This commit is contained in:
@@ -0,0 +1,305 @@
|
||||
# 📊 Configuración de Herramientas de Visualización
|
||||
|
||||
## ✅ Estado de Configuración
|
||||
|
||||
Todas las herramientas de visualización están conectadas a PostgreSQL y ClickHouse:
|
||||
|
||||
- ✅ **Grafana** - Datasources configurados via provisioning YAML
|
||||
- ✅ **Metabase** - Configuración automática via API (sin UI)
|
||||
- ✅ **Rill** - Sources configurados en rill.yaml
|
||||
|
||||
---
|
||||
|
||||
## 🔑 Credenciales de Acceso
|
||||
|
||||
### Grafana
|
||||
- **URL**: http://localhost:3500
|
||||
- **Usuario**: `admin`
|
||||
- **Contraseña**: `admin123`
|
||||
- **Datasources configurados**:
|
||||
- PostgreSQL (postgres-main:5432)
|
||||
- ClickHouse (clickhouse:8123)
|
||||
- Prometheus
|
||||
- Loki
|
||||
- Tempo
|
||||
|
||||
### Metabase
|
||||
- **URL**: http://localhost:3200
|
||||
- **Usuario**: `admin@example.com`
|
||||
- **Contraseña**: `Admin123!@#`
|
||||
- **Datasources configurados**:
|
||||
- PostgreSQL Main (postgres-main:5432)
|
||||
- ClickHouse Analytics (clickhouse:8123)
|
||||
- Sample Database (H2 - demo)
|
||||
|
||||
### Rill
|
||||
- **URL**: http://localhost:9009
|
||||
- **Autenticación**: No requiere
|
||||
- **Sources configurados**:
|
||||
- `postgres_main` (postgres-main:5432)
|
||||
- `clickhouse_main` (clickhouse:9000)
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Configuración Automática de Metabase
|
||||
|
||||
El script `configure_metabase.py` configura automáticamente Metabase:
|
||||
|
||||
### Primera vez (setup inicial):
|
||||
```bash
|
||||
cd /home/lucas/dagu/scripts
|
||||
./configure_metabase.py
|
||||
```
|
||||
|
||||
Este script:
|
||||
1. ✅ Detecta si Metabase necesita setup inicial
|
||||
2. ✅ Crea usuario admin automáticamente
|
||||
3. ✅ Configura datasources de PostgreSQL y ClickHouse
|
||||
4. ✅ Todo sin interacción manual
|
||||
|
||||
### Si reseteas Metabase:
|
||||
```bash
|
||||
# Eliminar datos de Metabase
|
||||
docker-compose -f docker-compose-analytics.yml down metabase metabase-db
|
||||
docker volume rm automatic_process_metabase-data
|
||||
|
||||
# Reiniciar y configurar automáticamente
|
||||
docker-compose -f docker-compose-analytics.yml up -d metabase-db metabase
|
||||
sleep 50 # Esperar a que inicie
|
||||
./configure_metabase.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Archivos de Configuración
|
||||
|
||||
### Grafana
|
||||
**Ubicación**: `/home/lucas/DataProyects/suite_logs/config/grafana/provisioning/datasources/datasources.yml`
|
||||
|
||||
Datasources PostgreSQL y ClickHouse añadidos automáticamente al desplegar Grafana.
|
||||
|
||||
### Rill
|
||||
**Ubicación**: `/home/lucas/AutomaticProyects/automatic_process/rill-data/rill.yaml`
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
- name: postgres_main
|
||||
type: sql
|
||||
connector: postgres
|
||||
settings:
|
||||
host: postgres-main
|
||||
port: 5432
|
||||
database: postgres
|
||||
user: postgres
|
||||
password: postgres
|
||||
ssl_mode: disable
|
||||
raw_sql: true
|
||||
|
||||
- name: clickhouse_main
|
||||
type: sql
|
||||
connector: clickhouse
|
||||
settings:
|
||||
host: clickhouse
|
||||
port: 9000
|
||||
database: default
|
||||
user: default
|
||||
password: clickhouse
|
||||
ssl: false
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Verificación de Conectividad
|
||||
|
||||
### Script de Verificación
|
||||
```bash
|
||||
/home/lucas/dagu/scripts/test_db_connections.sh
|
||||
```
|
||||
|
||||
Verifica:
|
||||
- ✓ PostgreSQL (localhost:5434)
|
||||
- ✓ ClickHouse (localhost:8123)
|
||||
- ✓ Grafana (localhost:3500)
|
||||
- ✓ Metabase (localhost:3200)
|
||||
- ✓ Rill (localhost:9009)
|
||||
|
||||
### Verificación Manual
|
||||
|
||||
#### Grafana
|
||||
1. Login en http://localhost:3500
|
||||
2. Ir a **Connections** > **Data sources**
|
||||
3. Verificar datasources "PostgreSQL" y "ClickHouse"
|
||||
4. Hacer clic en cada uno y presionar **Test** (debe mostrar ✓)
|
||||
|
||||
#### Metabase
|
||||
1. Login en http://localhost:3200
|
||||
2. Ir a **Admin Settings** > **Databases**
|
||||
3. Verificar "PostgreSQL Main" y "ClickHouse Analytics"
|
||||
4. Estado debe mostrar "Connected"
|
||||
|
||||
#### Rill
|
||||
1. Abrir http://localhost:9009
|
||||
2. Ver pestaña **Sources**
|
||||
3. Verificar `postgres_main` y `clickhouse_main`
|
||||
4. Ejecutar query de prueba: `SELECT 1`
|
||||
|
||||
---
|
||||
|
||||
## 📊 Bases de Datos Disponibles
|
||||
|
||||
### PostgreSQL
|
||||
- **Host interno**: `postgres-main:5432`
|
||||
- **Host externo**: `localhost:5434`
|
||||
- **Usuario**: `postgres`
|
||||
- **Contraseña**: `postgres`
|
||||
- **Base de datos**: `postgres`
|
||||
- **Estado**: Vacía (sin tablas)
|
||||
|
||||
### ClickHouse
|
||||
- **Host interno**: `clickhouse:9000` (native), `clickhouse:8123` (HTTP)
|
||||
- **Host externo**: `localhost:9000`, `localhost:8123`
|
||||
- **Usuario**: `default`
|
||||
- **Contraseña**: `clickhouse`
|
||||
- **Base de datos**: `default`
|
||||
- **Estado**: Vacía (sin tablas)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Próximos Pasos
|
||||
|
||||
### 1. Crear Tablas de Ejemplo (Opcional)
|
||||
|
||||
#### PostgreSQL
|
||||
```sql
|
||||
-- Conectar vía psql
|
||||
PGPASSWORD=postgres psql -h localhost -p 5434 -U postgres -d postgres
|
||||
|
||||
-- Crear tabla de eventos
|
||||
CREATE TABLE events (
|
||||
id SERIAL PRIMARY KEY,
|
||||
timestamp TIMESTAMP DEFAULT NOW(),
|
||||
event_type VARCHAR(100),
|
||||
user_id INTEGER,
|
||||
data JSONB
|
||||
);
|
||||
|
||||
-- Insertar datos de prueba
|
||||
INSERT INTO events (event_type, user_id, data)
|
||||
VALUES
|
||||
('login', 1, '{"ip": "192.168.1.1"}'),
|
||||
('purchase', 1, '{"product": "laptop", "amount": 1200}'),
|
||||
('logout', 1, '{"duration": 3600}');
|
||||
```
|
||||
|
||||
#### ClickHouse
|
||||
```sql
|
||||
-- Conectar vía clickhouse-client
|
||||
clickhouse-client --host localhost --port 9000 --user default --password clickhouse
|
||||
|
||||
-- Crear tabla de métricas
|
||||
CREATE TABLE metrics (
|
||||
timestamp DateTime,
|
||||
metric_name String,
|
||||
metric_value Float64,
|
||||
tags Map(String, String)
|
||||
) ENGINE = MergeTree()
|
||||
ORDER BY timestamp;
|
||||
|
||||
-- Insertar datos de prueba
|
||||
INSERT INTO metrics VALUES
|
||||
(now(), 'cpu_usage', 45.2, {'host': 'server1'}),
|
||||
(now(), 'memory_usage', 72.8, {'host': 'server1'}),
|
||||
(now(), 'disk_usage', 58.3, {'host': 'server1'});
|
||||
```
|
||||
|
||||
### 2. Crear Dashboards de Ejemplo
|
||||
|
||||
#### En Grafana
|
||||
1. New Dashboard → Add visualization
|
||||
2. Seleccionar datasource "PostgreSQL"
|
||||
3. Query: `SELECT * FROM events ORDER BY timestamp DESC LIMIT 10`
|
||||
4. Visualizar como tabla o gráfico
|
||||
|
||||
#### En Metabase
|
||||
1. New → Question
|
||||
2. Seleccionar "PostgreSQL Main"
|
||||
3. Simple Question → Pick Table → events
|
||||
4. Guardar y añadir a dashboard
|
||||
|
||||
#### En Rill
|
||||
1. Crear modelo en `rill-data/rill.yaml`:
|
||||
```yaml
|
||||
models:
|
||||
- name: recent_events
|
||||
sql: |
|
||||
SELECT * FROM events
|
||||
ORDER BY timestamp DESC
|
||||
LIMIT 100
|
||||
source: postgres_main
|
||||
```
|
||||
2. Restart Rill: `docker-compose -f docker-compose-analytics.yml restart rill`
|
||||
|
||||
### 3. Configurar Pipelines con Dagu
|
||||
|
||||
Ver `TRANSFORMATIONS.md` para ejemplos de DAGs que:
|
||||
- Extraigan datos de APIs
|
||||
- Transformen datos
|
||||
- Carguen a PostgreSQL/ClickHouse
|
||||
- Generen visualizaciones automáticas
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Troubleshooting
|
||||
|
||||
### Metabase no se configura
|
||||
```bash
|
||||
# Verificar logs
|
||||
docker logs metabase
|
||||
|
||||
# Resetear y reconfigurar
|
||||
docker-compose -f docker-compose-analytics.yml down metabase metabase-db
|
||||
docker volume rm automatic_process_metabase-data
|
||||
docker-compose -f docker-compose-analytics.yml up -d metabase-db metabase
|
||||
sleep 50
|
||||
/home/lucas/dagu/scripts/configure_metabase.py
|
||||
```
|
||||
|
||||
### Grafana no ve las bases de datos
|
||||
```bash
|
||||
# Verificar que Grafana está en ambas redes
|
||||
docker inspect grafana | grep -A 10 Networks
|
||||
|
||||
# Debe mostrar: suite-logs_monitoring y automatic_process_default
|
||||
|
||||
# Probar DNS desde Grafana
|
||||
docker exec grafana nslookup postgres-main
|
||||
docker exec grafana nslookup clickhouse
|
||||
```
|
||||
|
||||
### Rill no carga sources
|
||||
```bash
|
||||
# Verificar configuración
|
||||
cat /home/lucas/AutomaticProyects/automatic_process/rill-data/rill.yaml
|
||||
|
||||
# Revisar logs
|
||||
docker logs rill
|
||||
|
||||
# Reiniciar
|
||||
docker-compose -f docker-compose-analytics.yml restart rill
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 Referencias
|
||||
|
||||
- **Grafana Datasources**: http://localhost:3500/connections/datasources
|
||||
- **Metabase Admin**: http://localhost:3200/admin/databases
|
||||
- **Rill Dashboard**: http://localhost:9009
|
||||
- **DBGate** (DB Manager): http://localhost:3300
|
||||
- **Marquez** (Lineage): http://localhost:3001
|
||||
- **Homer** (Dashboard Hub): http://localhost:8080
|
||||
|
||||
---
|
||||
|
||||
**Última actualización**: 2026-03-23
|
||||
**Configuración**: Automática via scripts
|
||||
+24
-1
@@ -1,2 +1,25 @@
|
||||
sources: []
|
||||
sources:
|
||||
- name: postgres_main
|
||||
type: sql
|
||||
connector: postgres
|
||||
settings:
|
||||
host: postgres-main
|
||||
port: 5432
|
||||
database: postgres
|
||||
user: postgres
|
||||
password: postgres
|
||||
ssl_mode: disable
|
||||
raw_sql: true
|
||||
|
||||
- name: clickhouse_main
|
||||
type: sql
|
||||
connector: clickhouse
|
||||
settings:
|
||||
host: clickhouse
|
||||
port: 9000
|
||||
database: default
|
||||
user: default
|
||||
password: clickhouse
|
||||
ssl: false
|
||||
|
||||
models: []
|
||||
|
||||
Reference in New Issue
Block a user