Files
fn_registry/bash/functions/infra/telemetry_prelude.md
T
egutierrez 47fac22230 chore: auto-commit (799 archivos)
- .claude/CLAUDE.md
- .claude/commands/subagentes.md
- .claude/rules/INDEX.md
- .mcp.json
- bash/functions/cybersecurity/analyze_dns.md
- bash/functions/cybersecurity/audit_http_headers.md
- bash/functions/cybersecurity/audit_ssh_config.md
- bash/functions/cybersecurity/check_firewall.md
- bash/functions/cybersecurity/detect_suspicious_users.md
- bash/functions/cybersecurity/encrypt_file.md
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 00:28:20 +02:00

2.6 KiB

name, lang, domain, version, purity, kind, description, tags, signature, error_type, returns_optional, params, output, uses_functions, uses_types, imports, example, file_path, tested, notes
name lang domain version purity kind description tags signature error_type returns_optional params output uses_functions uses_types imports example file_path tested notes
telemetry_prelude bash infra 0.1.0 impure function Prelude bash que envuelve cada funcion del registry definida en el shell con un wrapper que mide duration y registra cada llamada en call_monitor.operations.db. Activable con FN_TELEMETRY=1. Issue 0085c.
telemetry
monitoring
registry
bash-wrapper
pendiente-usar
source telemetry_prelude.sh error_go_core false
name desc
FN_TELEMETRY (env) Si vale '1', el prelude auto-envuelve cada funcion bash conocida del registry. Si no, return 0 inmediato sin hacer nada.
name desc
FN_REGISTRY_ROOT (env) Override de la raiz. Si no se setea, se descubre walking up desde cwd buscando registry.db.
name desc
CLAUDE_SESSION_ID (env) ID de sesion Claude Code persistido en cada fila de calls.
Sin output. Side effect: cada funcion del registry sourceada queda reemplazada por un wrapper con telemetria. Idempotente.
sqlite3 (CLI)
date (coreutils)
find (coreutils)
# Auto-wrap export FN_TELEMETRY=1 source bash/functions/infra/android_screenshot.sh # define android_screenshot() source bash/functions/infra/telemetry_prelude.sh # envuelve android_screenshot android_screenshot /tmp/out.png # registrado en calls como android_screenshot_bash_infra bash/functions/infra/telemetry_prelude.sh false Mecanismo: `declare -f <name>` extrae el cuerpo de la funcion. Se renombra a `_fn_t_orig_<name>` via eval. La funcion original queda reemplazada por un wrapper que mide `date +%s%3N` antes/despues, ejecuta `_fn_t_orig_<name>`, captura exit code, y llama `_fn_t_log function_id duration_ms success error_class`. function_id heuristic: `{name}_bash_{domain}` donde `name`=basename del .sh y `domain`=basename del directorio padre. Coincide con convencion del registry. Fail-safe: si la BD no existe, sqlite3 falta, o INSERT falla, el wrapper ignora silenciosamente y retorna el exit code del original. NUNCA aborta ni modifica el comportamiento de la funcion envuelta. Idempotente: marca cada wrapper con `_FN_T_WRAPPED_<name>=1` y no re-envuelve. Sourcear el prelude N veces es seguro. Limitacion: el wrapper requiere que las funciones del registry ya esten sourceadas antes de cargarse este prelude. Si la app sourcea una funcion DESPUES del prelude, esa funcion NO queda envuelta automaticamente — hay que llamar `_fn_t_autowrap` manualmente o usar `_fn_t_wrap <name> <id>`.