Aplicación
Logs en tiempo real
Establece una conexión de Server-Sent Events (SSE) para recibir el feed en tiempo real de tu aplicación (logs, métricas en vivo, estado, progreso del deploy). Al conectar, se envían las 200 líneas de log más recientes, seguidas de las nuevas actualizaciones. La conexión puede mantenerse hasta 10 minutos.
Logs en tiempo real
El API Playground está deshabilitado para este endpoint debido a la naturaleza de las conexiones SSE, que no son compatibles de forma universal con los navegadores.
La clave de API de tu cuenta. Puedes encontrarla en la configuración de tu cuenta.
Parámetros
El ID de la aplicación cuyos logs quieres monitorear. Este ID se puede encontrar en la URL del panel de administración de tu aplicación.
Respuesta
Indica si la llamada fue exitosa.
success si fue exitosa, error si no.code junto con el estado de error, detallando la causa.
Si la solicitud es exitosa, la respuesta será un stream text/event-stream que contiene el feed en tiempo real de la aplicación.
Cada conexión dura hasta 10 minutos. Cada cuenta puede mantener 5 conexiones concurrentes en tiempo real (REALTIME_MAX_CONNECTIONS) y cada aplicación 30 entre todos los usuarios (REALTIME_MAX_CONNECTIONS_APP); superar cualquiera de los dos devuelve 429.
Estructura de los Server-Sent Events (SSE)
La respuesta es un stream continuo en formatotext/event-stream. Cada mensaje se compone de un campo event y un campo data. Las estructuras varían según el evento, así que analiza los payloads de forma defensiva.
Tipos de evento
system: Señales a nivel de protocolo. La líneadataes un único código en mayúsculas:REALTIME_CONNECTING | <sseId>al conectar, y luego cualquiera deREALTIME_TIMEOUT,REALTIME_DISCONNECTED,REALTIME_RECONNECToREALTIME_ERROR.logs: Una única línea de log cuyo primer carácter es un byte de identificación del stream:\x01(stdout) o\x02(stderr). Leedata.charCodeAt(0)(1 = stdout, 2 = stderr) y luegodata.slice(1)para el texto. Una línea sin ese byte de prefijo es stdout.status: Métricas del contenedor en vivo como una cadena JSON, aproximadamente un frame por segundo. El primer frame de cada (re)conexión es completo:{ cpu, cpuLimit, ram: [usedMB, limitMB], status, netIO: { i, o, new: { i, o } }, bIO: { i, o }, uptime }(uptimees el tiempo de inicio en ms epoch;netIO.newson bytes por segundo). Cada frame posterior es reducido, y solo contiene{ cpu, ram, netIO, bIO }: combina cada uno con el último frame completo, conservando elcpuLimit,statusyuptimeanteriores. Mientras este stream esté abierto, prefiérelo antes que sondearGET /v2/apps/{app_id}/status, que puede estar desactualizado hasta cerca de un minuto para una aplicación con un stream en tiempo real abierto.error: Contiene un código de error comoCONTAINER_NOT_FOUND.
\x01 / \x02 representan los bytes de prefijo crudos de stdout / stderr.
Logs en tiempo real

