Requisitos
Runtime
Sección titulada «Runtime»| Ítem | Versión | Para qué |
|---|---|---|
| Node.js | ≥ 20 | Compilar y probar los paquetes. El campo engines del repositorio lo exige. |
| Docker | cualquiera reciente | Correr el runner en un contenedor. La imagen es node:22-alpine. |
| npm | 10+ | Los workspaces del repositorio. |
No necesitas Node instalado para correr el runner en contenedor: solo para compilar los paquetes o desarrollar connectors.
Un control-plane del otro lado
Sección titulada «Un control-plane del otro lado»El Agent es la mitad “manos”. Por sí solo arranca, se conecta y espera: sin un control-plane escuchando en el túnel, no hace nada útil. Antes de instalar, ten a mano:
- La dirección de la imagen y la autorización de pull para tu cuenta o proyecto.
- La URL del túnel (
RUNNER_TUNNEL_URL), en producción:wss://tunnel.whystack.ai:8443. - El certificado de tu tenant:
runner.crt,runner.keyyca.pem.
Los tres los entrega WhyStack cuando se abre tu entorno.
Red de salida
Sección titulada «Red de salida»El runner necesita egress, y solo egress. Ningún puerto de entrada.
Siempre:
tunnel.whystack.ai:8443(WSS + mTLS), el túnel.- El registry del que viene la imagen (ECR o Artifact Registry), en el pull.
Según los connectors que habilites (solo los que uses):
| Connector | Host de salida |
|---|---|
datadog |
api.datadoghq.com |
github |
api.github.com |
aws, kubernetes |
*.amazonaws.com, *.eks.amazonaws.com |
gcp |
*.googleapis.com |
amplitude |
amplitude.com |
slack |
slack.com |
cloudflare |
api.cloudflare.com |
azion |
api.azion.com |
vercel |
api.vercel.com |
checkly |
api.checklyhq.com |
grafana |
los endpoints de tus datasources (Mimir, Loki, Tempo, stack) |
mongo, sonarqube, jira |
tus propios hosts, que indicas en la configuración |
Dimensionamiento
Sección titulada «Dimensionamiento»Este repositorio no publica cifras de CPU ni de memoria, porque aquí no hay un benchmark versionado, e inventar uno sería peor que omitirlo. Lo que la construcción sí permite afirmar:
- El proceso es un proceso Node de un solo contenedor, sin worker pool.
- La caché SQLite es
:memory:por defecto, así que la memoria crece con el volumen de estado aprendido durante la sesión y se reinicia en cada boot. RUNNER_IDEMPOTENCY_MAX_ENTRIES(por defecto2000) limita la caché de idempotencia a propósito, para que un runner de vida larga no crezca sin techo.
Empieza pequeño, observa, ajusta. El runner es cattle: redimensionar es levantar otro.
Credenciales de tus fuentes
Sección titulada «Credenciales de tus fuentes»Ninguna es obligatoria para arrancar. Cada connector es lazy, se instancia en el primer uso, así
que una clave faltante solo hace que esas operaciones respondan auth_error; todo lo demás sigue
funcionando. La lista completa está en Credenciales por connector.
El Profiler tiene sus propios requisitos, y más exigentes
Sección titulada «El Profiler tiene sus propios requisitos, y más exigentes»Todo lo anterior es sobre el Agent. El WhyStack Profiler es un segundo artefacto, opcional y privilegiado, y lo que exige del host no se superpone con esta página: kernel ≥ 5.8 con BTF compilado, cgroup v2, tracefs montado y cinco capabilities de kernel.
Esas barreras rechazan hosts que nadie espera ver rechazados, así que se verifican antes de la POC
y no durante: curl -O https://docs.whystack.ai/profiler-preflight.sh && sh profiler-preflight.sh.
El script se publica completo en la página del Profiler, para que se pueda
leer antes de ejecutarlo.