ADR-0007 · Un tablero de detalle por componente y uno de operación por producto¶
- Estado: aceptado
- Decisores: Hugo Quintero
- Fecha de la decisión: 2026-09-08
Contexto y problema¶
Con un tablero por exporter (Postgres, Redis, Kafka, n8n, contenedores, probes) operar el ecommerce exigía abrir seis tableros para responder "¿está bien la tienda?".
Decisión¶
- Tablero de detalle por componente, generado desde el repo, con uid
estable y nombre del componente (
postgres-db,redis,kafka,n8n,contenedores,stack-observabilidad,blackbox-compulandia-v2). - Tablero de operación por producto (
ecommerce-stack) con una fila por capa: disponibilidad, pipeline, automatización, datos, contenedores y hosts. Cada stat enlaza al tablero de detalle; los de detalle enlazan de vuelta. - Cada panel con umbral refleja una alerta existente con los mismos valores y colores, y lo dice en su descripción.
- Tablas con una fila por entidad: todas las consultas de una tabla
agregan por la misma clave (
consumergroup,contenedor,workflow_name) y se unen conjoinByField. Sin eso Grafana muestra una columna por serie. - Todo tablero vive en el repo. Lo creado en la UI se exporta a
grafana/provisioning/dashboards/(hecho con el de Blackbox). Un uid duplicado bloquea el provisioning de todos los tableros nuevos.
Consecuencias¶
- Operación mira
ecommerce-stack; diagnóstico baja al detalle con un clic. - Los tableros se generan por script: cambiar un panel es cambiar el JSON en el repo, no la UI.