Dashboard de Administración
El middleware incluye un dashboard web para monitoreo y control.
Acceso
Vista General
┌─────────────────────────────────────────────────────────────────┐
│ ERP-WMS Sync Admin Last update: 14:32:45│
├─────────────────────────────────────────────────────────────────┤
│ │
│ Queue Stats │
│ ┌─────────┬─────────┬───────────┬────────┬─────────┐ │
│ │ Waiting │ Active │ Completed │ Failed │ Delayed │ │
│ │ 5 │ 2 │ 1,234 │ 3 │ 0 │ │
│ └─────────┴─────────┴───────────┴────────┴─────────┘ │
│ │
│ Sources: tango, tango-development, wms-source │
│ Destinations: wms, wms-development, mysql-web, tango │
│ │
├─────────────────────────────────────────────────────────────────┤
│ Sync Flows │
│ ┌────────────┬─────────┬───────────┬─────────┬────────┬──────┐│
│ │ Flow │ Status │ Last Run │ Avg │ P95 │ Ctrl ││
│ ├────────────┼─────────┼───────────┼─────────┼────────┼──────┤│
│ │ articulos │ Running │ 14:32:00 │ 1.2s │ 2.1s │ ⏸🔢↻⟳🗑││
│ │ clientes │ Paused │ 14:30:00 │ 0.4s │ 0.8s │ ▶🔢↻⟳🗑││
│ │ pedidos │ 3/5 │ 14:31:30 │ 0.8s │ 1.5s │ ⏸🔢↻⟳🗑││
│ └────────────┴─────────┴───────────┴─────────┴────────┴──────┘│
│ │
├─────────────────────────────────────────────────────────────────┤
│ Sync Individual │
│ Flow: [articulos ▼] PK: [ART001 ] [Sync Item] │
│ │
├─────────────────────────────────────────────────────────────────┤
│ Activity Log │
│ 14:32:45 - Sync articulos completed │
│ 14:32:00 - Flow pedidos: 3/5 runs │
│ 14:31:30 - Error in clientes: timeout │
│ │
└─────────────────────────────────────────────────────────────────┘
Secciones
Queue Stats
Muestra el estado de la cola BullMQ:
| Stat | Descripción |
|---|---|
| Waiting | Jobs esperando procesamiento |
| Active | Jobs en ejecución |
| Completed | Jobs completados exitosamente |
| Failed | Jobs fallidos (después de todos los reintentos) |
| Delayed | Jobs programados para más tarde |
Sources y Destinations
Lista de adaptadores registrados.
Sync Flows
Tabla con todos los flows y sus métricas:
| Columna | Descripción |
|---|---|
| Flow | Nombre del flow |
| Status | Running / Paused / N/M (limitado) |
| Last Run | Última ejecución |
| Avg | Duración promedio |
| P95 | Percentil 95 de duración |
| Ctrl | Botones de control |
Controles
| Botón | Acción |
|---|---|
| ⏸ / ▶ | Pause / Resume |
| 🔢 | Establecer límite de ejecuciones |
| ↻ | Sync ahora (sin limpiar cache) |
| ⟳ | Resync (limpiar cache + sync) |
| 🗑 | Reset (solo limpiar cache) |
Sync Individual
Sincronizar un item específico por PK:
- Seleccionar flow del dropdown
- Ingresar Primary Key
- Click en "Sync Item"
Útil para testing sin ejecutar todo el flow.
Activity Log
Log en tiempo real de acciones realizadas.
Modal de Detalles
Click en cualquier fila de flow para ver detalles:
┌─────────────────────────────────────────┐
│ articulos - Details X │
├─────────────────────────────────────────┤
│ │
│ Last Run │
│ ──────────────────────────────────── │
│ Timestamp: 08/01/2026, 14:32:00 │
│ Duration: 1,234 ms │
│ Rows Found: 35,000 │
│ Changes: 15 │
│ Jobs Created: 30 │
│ │
│ Timings Breakdown │
│ ──────────────────────────────────── │
│ Query: 800 ms │
│ Transform: 50 ms │
│ Compare Hash: 200 ms │
│ Detect Del: 50 ms │
│ Enqueue: 100 ms │
│ Save Hashes: 34 ms │
│ │
│ Statistics │
│ ──────────────────────────────────── │
│ Total Runs: 500 │
│ Total Errors: 2 │
│ Avg Duration: 1,234 ms │
│ P95 Duration: 2,100 ms │
│ │
└─────────────────────────────────────────┘
Bull Board
Acceder a http://localhost:8080/admin/queues para gestión detallada:
flowchart LR
A[Dashboard] --> B["/admin"]
A --> C["/admin/queues"]
B --> D[Vista general]
B --> E[Control de flows]
C --> F[Lista de jobs]
C --> G[Retry jobs]
C --> H[Limpiar completados]
C --> I[Ver errores]
Funcionalidades Bull Board
- Ver jobs por estado: Waiting, Active, Completed, Failed, Delayed
- Detalles de job: Data, errores, intentos
- Retry manual: Reintentar jobs fallidos
- Limpiar: Eliminar jobs completados/fallidos
- Pausar cola: Pausar todo el procesamiento
Formato de Fechas
Todas las fechas se muestran en formato argentino 24h:
Auto-refresh
El dashboard actualiza automáticamente:
- Stats de cola: cada 5 segundos
- Tabla de flows: cada 10 segundos
- Activity log: en tiempo real
Acceso Remoto
El dashboard solo escucha en 127.0.0.1. Para acceso remoto, usar SSH tunnel:
Luego abrir http://localhost:8080/admin en navegador local.