アプリケーション
リアルタイムログ
Server-Sent Events (SSE) 接続を確立して、アプリケーションのリアルタイムフィード(ログ、ライブメトリクス、ステータス、deploy の進行状況)を受信します。接続時には最新の 200 行のログが送信され、その後に新しい更新が続きます。接続は最大 10 分間維持できます。
リアルタイムログ
この endpoint では、ブラウザで普遍的にサポートされていない 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 文字列としてのライブコンテナメトリクスで、おおよそ 1 秒あたり 1 フレームです。各(再)接続の 最初のフレーム は完全です:{ cpu, cpuLimit, ram: [usedMB, limitMB], status, netIO: { i, o, new: { i, o } }, bIO: { i, o }, uptime }(uptimeは開始時刻をエポックミリ秒で表したもの、netIO.newは 1 秒あたりのバイト数)。それ以降のフレームはすべて簡略化されており、{ cpu, ram, netIO, bIO }のみを含みます。各フレームを直前の完全なフレームにマージし、以前のcpuLimit、status、uptimeを保持してください。このストリームが開いている間は、GET /v2/apps/{app_id}/statusのポーリングよりもこちらを優先してください。リアルタイムストリームが開いているアプリでは、その status は最大で約 1 分古くなる場合があります。error:CONTAINER_NOT_FOUNDなどのエラーコードを含みます。
\x01 / \x02 は生の stdout / stderr 接頭バイトを表しています。
リアルタイムログ

