--- name: health-check description: > Verifica la salud de servicios y sistemas. Valida que servicios esten corriendo, endpoints HTTP respondan, uso de recursos este dentro de limites, y no haya errores criticos en logs recientes. --- # Health Check Skill Esta skill realiza verificaciones de salud completas de servicios y sistemas. ## Proposito - Verificar que servicios criticos esten corriendo - Validar que endpoints HTTP respondan correctamente - Detectar uso excesivo de recursos (CPU, memoria, disco) - Identificar errores criticos en logs recientes - Generar reporte de salud con score y recomendaciones ## Verificaciones realizadas ### 1. Estado de servicios (systemd) Para cada servicio configurado: ```bash systemctl is-active ``` Estado esperado: `active` ### 2. Health endpoints HTTP Si el servicio expone endpoint de salud: ```bash http_get http://:/health ``` Validaciones: - Status code: 200 - Response time: < 1000ms - Body contiene: `"status": "ok"` (o similar) ### 3. Recursos del sistema ```bash # CPU usage top -bn1 | grep "Cpu(s)" | awk '{print $2}' # Memory usage free -m | awk 'NR==2{printf "%.0f", $3*100/$2}' # Disk usage df -h / | awk 'NR==2{print $5}' | sed 's/%//' ``` Thresholds: - CPU: warning >70%, critical >90% - Memory: warning >80%, critical >95% - Disk: warning >85%, critical >95% ### 4. Logs recientes (ultimos 15 minutos) ```bash journalctl -u --since "15 minutes ago" | grep -i "error\|fatal\|panic" ``` Validacion: sin errores criticos en los ultimos 15 minutos ### 5. Conectividad de red (opcional) Si el servicio depende de servicios externos: ```bash # Test conectividad curl -f --max-time 5 http:///health ``` ## Formato del reporte ```markdown # Health Check Report - ## Overall Health: Score: /100 ## Service Status | Service | Status | Health Endpoint | Response Time | |---------|--------|----------------|---------------| | myapp | running | OK (200) | 45ms | | worker | running | OK (200) | 32ms | ## System Resources | Metric | Value | Status | |--------|-------|--------| | CPU Usage | 45% | OK | | Memory Usage | 62% | OK | | Disk Usage | 71% | OK | ## Issues Found - None ## Warnings - Disk usage on / approaching 75% threshold ## Recommendations - Monitor disk usage trend - Consider log rotation policy --- Next check: ``` ## Score calculation Score total (0-100): - Services running: 40 puntos (dividido entre servicios) - Health endpoints OK: 30 puntos (dividido entre endpoints) - Resources within limits: 20 puntos - No critical errors in logs: 10 puntos Estado general: - HEALTHY: score >= 90 - DEGRADED: score >= 70 && < 90 - CRITICAL: score < 70 ## Parametros Parametros requeridos: - `services`: lista de servicios a verificar (default: todos configurados) Parametros opcionales: - `include_resources`: verificar recursos del sistema (default: true) - `include_logs`: verificar logs recientes (default: true) - `log_timeframe`: ventana de logs a verificar (default: "15 minutes ago") - `output_format`: "markdown" o "json" (default: "markdown") ## Configuracion Ejemplo de configuracion en agent YAML: ```yaml health_check: services: - name: myapp host: localhost health_url: http://localhost:8080/health dependencies: - http://db.example.com:5432 - name: worker host: localhost health_url: http://localhost:8081/health thresholds: cpu_warning: 70 cpu_critical: 90 memory_warning: 80 memory_critical: 95 disk_warning: 85 disk_critical: 95 check_interval: "5m" ``` ## Ejemplo de uso Usuario: "Verifica la salud de todos los servicios" Agente: 1. skill_search("health check") 2. skill_load("health-check") 3. Ejecutar verificaciones en orden 4. Calcular score 5. Generar reporte 6. Enviar al usuario ## Alertas automaticas Esta skill puede configurarse para ejecutarse periodicamente via cron y alertar solo si: - Score < 90 (DEGRADED o CRITICAL) - Algun servicio esta down - Recursos exceden threshold critico Ver `crons/health-check/` para la configuracion de automatizacion.