55c907a3ac
Agregar 4 skills de ejemplo funcionales y README del sistema: Skills de ejemplo: - devops/deploy-service: deploy completo con rollback - analysis/log-analyzer: analisis de logs con metricas - communication/daily-report: reportes diarios automaticos - system/health-check: verificacion de salud multi-servicio Cada skill incluye: - SKILL.md con frontmatter YAML + instrucciones markdown - Descripcion de parametros y proceso paso a paso - Ejemplos de uso y consideraciones de seguridad skills/README.md documenta: - Diferencia entre tools (atomicas) y skills (flujos multi-paso) - Formato de SKILL.md y carga progresiva (3 niveles) - Categorias disponibles y uso desde agentes Las skills son contenido declarativo, no codigo Go.
4.1 KiB
4.1 KiB
name, description
| name | description |
|---|---|
| health-check | 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:
systemctl is-active <service-name>
Estado esperado: active
2. Health endpoints HTTP
Si el servicio expone endpoint de salud:
http_get http://<host>:<port>/health
Validaciones:
- Status code: 200
- Response time: < 1000ms
- Body contiene:
"status": "ok"(o similar)
3. Recursos del sistema
# 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)
journalctl -u <service> --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:
# Test conectividad
curl -f --max-time 5 http://<dependency-host>/health
Formato del reporte
# Health Check Report - <timestamp>
## Overall Health: <HEALTHY|DEGRADED|CRITICAL>
Score: <N>/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: <timestamp>
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:
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:
- skill_search("health check")
- skill_load("health-check")
- Ejecutar verificaciones en orden
- Calcular score
- Generar reporte
- 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.