Documentación técnica
Observabilidad interna
14.1 Métricas Prometheus
El backend expone métricas en GET /metrics (formato Prometheus):
| Métrica | Tipo | Descripción |
|---|---|---|
evaiops_http_requests_total | Counter | Requests por endpoint y status code |
evaiops_http_request_duration_seconds | Histogram | Latencia por endpoint |
evaiops_active_incidents_total | Gauge | Incidentes abiertos por tenant |
evaiops_correlation_events_processed | Counter | Eventos procesados por el motor de correlación |
evaiops_kafka_consumer_lag | Gauge | Lag por topic y consumer group |
evaiops_anomaly_detections_total | Counter | Anomalías detectadas por algoritmo |
evaiops_celery_task_duration_seconds | Histogram | Duración de tareas Celery |
evaiops_llm_tokens_used_total | Counter | Tokens LLM consumidos por proveedor |
14.2 Distributed tracing
Cada request HTTP recibe un X-Request-ID generado por el TracingMiddleware. Este ID se propaga a:
- Logs estructurados JSON (campo
request_id) - Headers de respuesta
- Tareas Celery disparadas por el request
- Eventos Kafka producidos por el request
14.3 Logging estructurado
El backend usa JSON structured logging (SIEM-ready). Campos estándar:
{
"timestamp": "ISO8601",
"level": "INFO|WARNING|ERROR",
"request_id": "uuid",
"tenant_id": "uuid",
"user_id": "uuid",
"module": "backend.api.incident_routes",
"message": "...",
"duration_ms": 42
}
14.4 Platform Health
GET /api/v1/platform/health retorna el estado de todos los subsistemas:
{
"status": "ok",
"components": {
"database": "ok",
"redis": "ok",
"kafka": "ok",
"opensearch": "ok",
"neo4j": "ok",
"minio": "ok"
}
}
14.5 Docker health checks
Todos los servicios críticos tienen health checks configurados en docker-compose.yml:
| Servicio | Endpoint/Comando de health check | Intervalo |
|---|---|---|
backend | GET /health | 30s |
ingestion-gateway | GET /health | 30s |
collector_core | GET :9090/health | 30s |
postgres | pg_isready | 10s |
redis | redis-cli ping | 10s |
kafka | kafka-broker-api-versions | 30s |
opensearch | GET /_cluster/health | 30s |
14.6 Audit Trail
Todas las acciones sensibles de usuarios quedan registradas en la tabla audit_log:
- Login / logout
- Cambio de estado de incidente
- Acknowledge de alertas
- Cambios en configuración
- Operaciones IAM (creación de usuarios, cambio de roles)
