Saltar a contenido

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

  1. 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).
  2. 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.
  3. Cada panel con umbral refleja una alerta existente con los mismos valores y colores, y lo dice en su descripción.
  4. Tablas con una fila por entidad: todas las consultas de una tabla agregan por la misma clave (consumergroup, contenedor, workflow_name) y se unen con joinByField. Sin eso Grafana muestra una columna por serie.
  5. 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.