Domina la creación de dashboards técnicos con Python, Pandas y Matplotlib/Plotly para monitorizar el rendimiento de tus aplicaciones. Transforma logs, métricas de infraestructura y datos de uso en gráficos interactivos accionables. Reduce el tiempo de detección de problemas con visualizaciones automatizadas.
Cuándo usarlo: Monitorización de rendimiento de aplicaciones
Herramienta recomendada: Claude
Actúa como un ingeniero senior de plataforma con experiencia en observabilidad y análisis de rendimiento de sistemas. Guíame para construir un sistema de visualización de métricas de aplicación usando Python que me permita detectar problemas de rendimiento antes de que impacten a los usuarios. **Contexto técnico:** Trabajo en una aplicación web/API en producción. Tengo acceso a logs de servidor, métricas de base de datos, datos de APM (Application Performance Monitoring) y métricas de infraestructura. Quiero centralizar todo esto en dashboards Python que pueda ejecutar localmente o desplegar como herramienta interna. **Bloque 1 — Stack tecnológico y configuración inicial** Recomiéndame el stack de visualización más adecuado para métricas técnicas: - Pandas para manipulación de datos temporales - Matplotlib para gráficos estáticos en informes - Plotly/Dash para dashboards interactivos con filtros - Seaborn para análisis estadístico de distribuciones Proporciona el código de instalación y configuración inicial, incluyendo un entorno virtual y las importaciones estándar que usaré en todos mis scripts de análisis. **Bloque 2 — Ingesta y normalización de datos** Escribe funciones Python reutilizables para: - Parsear logs de acceso HTTP (formato Combined Log Format) y extraer: timestamp, endpoint, método, status code, tiempo de respuesta, bytes transferidos - Leer métricas de PostgreSQL (pg_stat_statements, pg_stat_user_tables) vía SQLAlchemy - Normalizar series temporales a intervalos regulares (resample en Pandas) para comparación entre fuentes - Detectar y tratar valores atípicos usando IQR o z-score Incluye manejo de excepciones robusto y logging adecuado para producción. **Bloque 3 — Métricas clave y cálculos derivados** Implementa en Python el cálculo de: - Percentiles de latencia (p50, p90, p95, p99) por endpoint y ventana temporal - Tasa de errores (4xx, 5xx) como porcentaje del tráfico total - Throughput (requests/segundo) con media móvil exponencial - Apdex score por endpoint (con umbrales T configurables) - Disponibilidad (uptime) calculada desde los logs de error - Query time distribution para las N queries más lentas de la base de datos Para cada métrica, explica el umbral de alerta recomendado según estándares de la industria (SRE/SLO). **Bloque 4 — Tipos de visualizaciones y cuándo usarlas** Crea ejemplos de código para los gráficos más útiles en contexto de rendimiento: - Time series multilinea con bandas de confianza para latencia a lo largo del tiempo - Heatmap horario (días × horas) para detectar patrones de tráfico - Histograma de distribución de tiempos de respuesta con escala logarítmica - Flame graph simplificado para análisis de endpoints más lentos - Scatter plot de correlación entre carga del servidor y latencia - Gráfico de barras agrupadas para comparar rendimiento antes/después de un deploy **Bloque 5 — Dashboard automatizado y alertas** Diseña un script Python que: - Se ejecute como tarea cron cada hora - Genere un informe HTML con Plotly embebido (sin servidor externo) - Envíe alerta por correo (usando smtplib) si alguna métrica supera el umbral crítico - Guarde histórico de métricas en SQLite para análisis de tendencias Proporciona el código completo del script principal con comentarios explicativos en cada sección relevante. **Formato de salida:** Organiza la respuesta en bloques claramente separados con encabezados. Incluye código Python completo y funcional en bloques de código. Para cada función, añade un docstring explicativo. Señala con comentarios inline las partes que debo adaptar a mi entorno específico.