アプリケーション
リアルタイムログ
Server-Sent Events (SSE) 接続を確立して、アプリケーションのリアルタイムフィード(ログ、ライブメトリクス、ステータス、deploy の進行状況)を受信します。接続時には最新の 200 行のログが送信され、その後に新しい更新が続きます。接続は最大 10 分間維持できます。
リアルタイムログ
この endpoint では、ブラウザで普遍的にサポートされていない SSE 接続の性質上、API Playground が無効化されています。
パラメータ
string
必須
ログを監視したいアプリケーションの ID。この ID はアプリケーションの管理パネルの URL で確認できます。
レスポンス
string
呼び出しが成功したかどうかを示します。成功した場合は
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 接頭バイトを表しています。
一般的なエラー
リアルタイムログ

