Files
agents_and_robots/skills/system/health-check/SKILL.md
T
egutierrez 55c907a3ac feat: skills de ejemplo y README del sistema
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.
2026-03-08 22:13:41 +00:00

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:

  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.