Observabilidad
This content is not available in your language yet.
Qué cubre esta página
- Qué “observabilidad” existe hoy en Puruto (MVP)
- Qué señales usar por tipo de repo
- Cómo inspeccionar actividad sin instrumentación compleja
Punto importante
Puruto no trae una plataforma centralizada de observabilidad.
La observabilidad actual es principalmente:
- salida de comandos (
status,logs, scripts) - ficheros de estado (
.jobs.json,.channels.json) - artefactos locales (
db/,runs/,notifications/,inbox/) - validación estructural (
validate.py)
Capas de observabilidad (prácticas)
1. Estructura del repo (salud estática)
Usa:
python3 .claude/skills/validate/scripts/validate.py /ruta/repo --jsonTe dice:
kinddetectado- errores/warnings
- rutas faltantes
Esto responde “¿el repo está completo?” antes de preguntar “¿está funcionando?”.
2. Estado operativo (salud dinámica)
Usa la skill status del Puruto (si estás en modo agente) o los comandos que la skill ejecuta.
Ejemplos:
puruto-telegram/statusrevisa token, chat, canales, DB e inboxpuruto-cron/statusrevisa jobs, runs recientes y rutas de notificación- Puruto estándar
statusrevisa.env,PURUTO_DATA_PATHy DB (si aplica)
3. Eventos/artefactos runtime (actividad)
Según el tipo de Puruto:
puruto-cron:notifications/events.jsonl,runs/puruto-telegram:inbox/cron-events.jsonl,.channels.json,db/telegram.db- estándar con DB:
db/
Qué observar por tipo de Puruto
Puruto estándar
Señales útiles:
.envexiste / cargadoPURUTO_DATA_PATHresuelve a una ruta existente- DB (si
--db true) existe enDB_PATH listrefleja skills reales del repo
Comprobaciones rápidas:
ls -la .claude/skillsls -la db 2>/dev/null || truepuruto-cron
Señales útiles (MVP scaffold):
.jobs.json(config declarativa)- DB local (
db/cron.db) notifications/events.jsonlruns/(artefactos de ejecución, según evolución del runtime)
Comandos recomendados (alineados con la skill /logs):
ls -la notifications runstail -n 20 notifications/events.jsonlpython3 main.py statuspuruto-data
Señales útiles (MVP scaffold):
registry.json(Purutos registrados)shared/(carpeta compartida)- carpetas
<puruto-name>/declaradas en el registro
Comandos útiles:
python3 -c "import json; from pathlib import Path; reg=json.loads(Path('registry.json').read_text()); print(len(reg.get('purutos', [])))"ls -la sharedpuruto-telegram
Señales útiles (MVP scaffold):
.channels.json(canales registrados)- DB (
db/telegram.db) - inbox local (
inbox/cron-events.jsonl) - token/chat configurados en
.env
Comandos útiles:
ls -la db inboxpython3 inbox.py --limit 20puruto-gateway
Señales útiles (MVP scaffold):
GET /health- discovery de Purutos (
/purutos) - estado de
PURUTO_GATEWAY_API_KEY
Comandos útiles:
python3 -c "import os; print('OK' if os.getenv('PURUTO_GATEWAY_API_KEY') else 'FALTA')"python3 -c "from registry import list_purutos; print([i['name'] for i in list_purutos()])"Señales de observabilidad para IPC
En repos con --ipc true:
.puruto-ipc.jsonválidoipc.pyyinvoker.pypresentes- allowlists coherentes (
allowed_targets,allowed_actions)
Antes de probar llamadas IPC:
python3 .claude/skills/validate/scripts/validate.py /ruta/repo --jsonChecklist de observabilidad mínima (MVP)
Para cualquier Puruto en operación local:
validate.py --jsonsin erroresstatusejecutable y con resumen útil.envpresente y variables clave configuradas- artefactos runtime del tipo de repo accesibles
- logs/archivos de eventos inspeccionables (
tail,ls)
Qué falta todavía (normal en MVP)
- métricas centralizadas
- trazas distribuidas reales entre Purutos
- dashboards
- alerting automático de fábrica
Puedes añadirlo después, pero este baseline ya permite depurar bastante.
Siguientes pasos
- → Debug y logs
- → Diagnóstico de puruto-data
- → Diagnóstico de puruto-cron
- → Diagnóstico de puruto-telegram
- → Artefactos runtime locales (MVP)
- → CI/CD
- → Ejecutar con puruto-cron
Última verificación
Contenido contrastado con snapshots de puruto-cron, puruto-telegram y validate.py el 25 de febrero de 2026.