2.0 KiB
2.0 KiB
API de Métricas y Analítica - Resumen de Implementación
✅ Integración Completada
Estructura Creada
Dominio:
src/domain/metrics.py- Modelos:Metric,DailyStats,AnalyticsReport,EventType
Aplicación:
src/application/ports/metrics_repository.py- Interfaz del repositoriosrc/application/services/metrics_services.py- Lógica de negocio
Infraestructura:
src/infrastructure/adapters/persistence/metrics_repository_postgres.py- Implementación PostgreSQLsrc/infrastructure/api/metrics/- API REST FastAPIapp.py- Factory de la aplicaciónrouter.py- Endpointsschemas.py- Modelos Pydantic
Consumidor:
src/consumers/metrics_consumer.py- Listener RabbitMQ para todos los eventos
Base de Datos
PostgreSQL añadido al docker-compose:
- Host: localhost:5432
- DB: voxpopuli_metrics
- Usuario: voxpopuli / voxpopuli_pass
- Tabla
metricscreada automáticamente
Integración sin Cambios Significativos
✅ main.py - Añadida API y consumer de métricas sin modificar APIs existentes ✅ docker-compose.yaml - PostgreSQL añadido sin cambiar servicios existentes ✅ requirements.txt - Añadido psycopg2-binary ✅ RabbitMQ NO añadido al docker-compose (usa instancias previas)
Endpoints API (Puerto 8004)
POST /metrics/record - Registrar métrica
GET /metrics/report - Reporte de últimos N días
GET /metrics/daily-stats - Estadísticas diarias
GET /metrics/summary - Resumen de eventos por rango
GET /metrics/health - Health check
GET /docs - Swagger UI
Eventos Automáticos Capturados
El consumer escucha automáticamente:
users_queue→ user_created, user_updated, user_deletedreports_queue→ report_created, report_resolvednotifications_queue→ notification_sentmoderations_queue→ moderation_completed
Cada evento genera una métrica en PostgreSQL con timestamp, usuario_id, metadata y tipo de evento.