应用
实时日志
建立一个 Server-Sent Events (SSE) 连接以接收应用的实时数据流(日志、实时指标、状态、部署进度)。连接建立后,会先发送最近的 200 行日志,随后推送新的更新。连接最长可维持 10 分钟。
实时日志
由于 SSE 连接的特性(并非所有浏览器都普遍支持),此端点的 API Playground 已禁用。
参数
你想要监控其日志的应用的 ID。此 ID 可以在应用管理面板的 URL 中找到。
响应
指示调用是否成功。成功时为
success,否则为 error。code 字段,说明具体原因。
如果请求成功,响应将是一个 text/event-stream 流,包含应用的实时数据流。
每个连接最长持续 10 分钟。每个账户最多可保持 5 个并发实时连接(REALTIME_MAX_CONNECTIONS),每个应用最多 跨所有用户 30 个(REALTIME_MAX_CONNECTIONS_APP);超出任一限制将返回 429。
Server-Sent Events (SSE) 结构
响应是一个text/event-stream 格式的持续流。每条消息由一个 event 字段和一个 data 字段组成。不同事件的结构各异,因此请以防御性方式解析负载。
事件类型
system:协议级信号。data行是单个大写代码:连接时为REALTIME_CONNECTING | <sseId>,随后可能是REALTIME_TIMEOUT、REALTIME_DISCONNECTED、REALTIME_RECONNECT或REALTIME_ERROR中的任意一个。logs:单行日志,其第一个字符是流 ID 字节:\x01(stdout)或\x02(stderr)。读取data.charCodeAt(0)(1 = stdout,2 = stderr),然后用data.slice(1)获取文本。没有该前缀字节的行为 stdout。status:以 JSON 字符串形式呈现的实时容器指标,大约每秒一帧。每次(重新)连接的第一帧是完整的:{ cpu, cpuLimit, ram: [usedMB, limitMB], status, netIO: { i, o, new: { i, o } }, bIO: { i, o }, uptime }(uptime是以毫秒计的 epoch 起始时间;netIO.new是每秒字节数)。之后的每一帧都是精简的,仅携带{ cpu, ram, netIO, bIO }—— 将每一帧合并到上一个完整帧上,保留之前的cpuLimit、status和uptime。在此流保持打开期间,请优先使用它,而非轮询GET /v2/apps/{app_id}/status;对于已打开实时流的应用,后者可能有最多约一分钟的延迟。error:携带一个错误代码,例如CONTAINER_NOT_FOUND。
\x01 / \x02 代表原始的 stdout / stderr 前缀字节。
实时日志

