Navegación bilingüe: English version
Este directorio contiene la configuración operativa y el stack de observabilidad para la referencia de arquitectura progresiva. Todos los componentes son OSS, auto-hospedados y agnósticos al proveedor según el ADR-0028.
Meta: hacer que la plataforma de referencia sea observable y operable en local con un stack completamente OSS y neutral respecto de proveedores.
Objetivos:
- Proveer un stack de observabilidad listo para ejecutar (OpenTelemetry, Grafana, Tempo, Loki) con un solo comando.
- Mantener cada componente operativo trazable al ADR que lo gobierna.
- Documentar la ruta de verificación desde una petición de la aplicación hasta su traza distribuida completa.
| Componente | Rol | Puerto Local |
|---|---|---|
| OpenTelemetry Collector | Recibe trazas y logs de todos los servicios y los distribuye a los backends | — |
| Grafana | Dashboards, consultas de logs (Loki), exploración de trazas | 3001 |
| Tempo | Backend de trazado distribuido (almacena spans) | 3200 |
| Loki | Backend de agregación de logs | 3100 |
La estrategia de instrumentación completa está definida en el ADR-0007.
# Desde la raíz del repositorio — inicia OTel, Grafana, Tempo, Loki
docker-compose -f reference/infrastructure/docker-compose.yml up -d otel-collector grafana tempo loki
# Verificar que Grafana es accesible
open http://localhost:3001 # credenciales por defecto: admin / adminPara ver trazas distribuidas: abrir Grafana → Explore → seleccionar la fuente de datos Tempo → pegar un traceId desde los logs de la aplicación.
| Documento | Descripción | Objetivo / Meta | Tipo | Obligatorio |
|---|---|---|---|---|
| otel-collector-config.yaml | Pipeline del Collector OTel: receivers, processors, exporters | Enrutar telemetría a los backends | Archivo de configuración | Sí |
| tempo.yaml | Configuración del backend Tempo | Configurar el backend de trazado | Archivo de configuración | Sí |
| datasources.yml | Datasources de Grafana aprovisionados automáticamente (Tempo, Loki) | Aprovisionar dashboards automáticamente | Archivo de configuración | Sí |
- Ejecutar la API y realizar cualquier petición autenticada.
- Copiar el
traceIdde la salida de logs JSON estructurado. - Abrir
http://localhost:3001→ Explore → Tempo → pegar eltraceId. - Aparece el árbol completo de spans (Traefik → BFF → CoreAPI → PostgreSQL).