feat: import agents_and_robots platform as unibots (Matrix-out, unibus transport)
Reemplaza el scaffold del echobot por la plataforma completa de bots traida desde ~/DataProyects/Github/agents_and_robots tras la operacion Matrix-out: los bots ya no hablan por Matrix sino por el bus unibus (modelo todo-rooms + E2E via shell/transportunibus sobre github.com/enmanuel/unibus/pkg/client). - go.mod: replace de unibus -> ../unibus y de fn-registry -> ../../../.. (paths relativos reajustados a la nueva ubicacion dentro de fn_registry). - app.md: bump a 0.2.0, descripcion + arquitectura + comandos + gotchas reales. - modulo Go conservado como github.com/enmanuel/agents (sin reescribir imports). agents_and_robots queda archivado como museo de la era Matrix.
This commit is contained in:
@@ -0,0 +1,187 @@
|
||||
---
|
||||
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 <service-name>
|
||||
```
|
||||
|
||||
Estado esperado: `active`
|
||||
|
||||
### 2. Health endpoints HTTP
|
||||
|
||||
Si el servicio expone endpoint de salud:
|
||||
```bash
|
||||
http_get http://<host>:<port>/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 <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:
|
||||
```bash
|
||||
# Test conectividad
|
||||
curl -f --max-time 5 http://<dependency-host>/health
|
||||
```
|
||||
|
||||
## Formato del reporte
|
||||
|
||||
```markdown
|
||||
# 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:
|
||||
|
||||
```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.
|
||||
Reference in New Issue
Block a user