Saltar a contenido

Monitoreo

Cómo monitorear la salud y performance del Sistema A3.

Logs

Heroku Logs

# Logs en tiempo real
heroku logs --tail --app aterceros

# Últimas 1000 líneas
heroku logs -n 1000 --app aterceros

# Solo errores
heroku logs --source app --app aterceros | grep ERROR

# Logs de PostgreSQL
heroku logs --source heroku-postgres --app aterceros

Tipos de Logs

  • INFO: Información general
  • WARNING: Advertencias no críticas
  • ERROR: Errores que requieren atención
  • CRITICAL: Errores críticos del sistema

Métricas de Heroku

# Ver estado de dynos
heroku ps --app aterceros

# Métricas de BD
heroku pg:info --app aterceros

# Uso de disco
heroku pg:diagnose --app aterceros

Monitoreo de Performance

Queries Lentas

# Ver queries lentas en PostgreSQL
heroku pg:ps --app aterceros

# Kill query problemática
heroku pg:kill 12345 --app aterceros

Django Debug Toolbar (Local)

En desarrollo, usar Django Debug Toolbar para analizar: - Queries SQL - Cache hits/misses - Templates renderizados - Tiempo de respuesta

Alertas

Configurar alertas para:

  • Errores 500 frecuentes
  • Uso de BD >80%
  • Timeout de requests
  • Dyno crasheado
  • Backup fallido

Health Checks

Endpoint de health check:

# api/health.py
def health_check(request):
    return JsonResponse({
        'status': 'ok',
        'database': check_database(),
        's3': check_s3(),
        'sap_api': check_sap_api()
    })

Monitorear en: /api/health/

Métricas Clave (KPIs)

  • Uptime: >99.5%
  • Response time: <500ms (promedio)
  • Error rate: <1%
  • DB connections: <80% del límite

Herramientas Recomendadas

  • Sentry: Error tracking
  • New Relic: APM
  • Datadog: Monitoring completo
  • PagerDuty: Alertas y on-call

Dashboard de Monitoring

Crear dashboard con: - Requests por minuto - Errores por hora - Tiempo de respuesta (p50, p95, p99) - Uso de recursos (DB, dynos)


Revisar métricas diariamente para detectar problemas temprano.