Skip to main content
リアルタイムログ
この endpoint では、ブラウザで普遍的にサポートされていない SSE 接続の性質上、API Playground が無効化されています。
string
必須
アカウントの API キーです。これはアカウント設定で確認できます。
ポーリングの代わりにアプリケーションのライブな状態を確認したい場合は、このエンドポイントを使用してください。deploy の進行状況を監視する、書き込まれるログをリアルタイムで追跡する、アプリケーションのステータス取得アプリケーションログの取得 をタイマーで叩き続けることなくダッシュボードの CPU/RAM グラフを駆動する、といった用途に使えます。接続が続いている間は、この両方を置き換えます。 内部的には、ここで接続を開くとアプリケーションの cluster 上の単一のアップストリームストリームに接続し、それを SSE 経由で中継します。アップストリームが切断された場合は、内部で 1 回だけ透過的に再接続します。各接続は最大 10 分間ソケットを保持するため、接続のオープンは以下の同時接続数の上限とは別にレート制限されています: (user, application)ごとに 5 秒あたり 1 オープン、全アプリケーションを通じてユーザーごとに 10 秒あたり 20 オープンで、その後 30 秒のクールダウンがあります。

パラメータ

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_TIMEOUTREALTIME_DISCONNECTEDREALTIME_RECONNECTREALTIME_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 } のみを含みます。各フレームを直前の完全なフレームにマージし、以前の cpuLimitstatusuptime を保持してください。このストリームが開いている間は、GET /v2/apps/{app_id}/status のポーリングよりもこちらを優先してください。リアルタイムストリームが開いているアプリでは、その status は最大で約 1 分古くなる場合があります。
  • error: CONTAINER_NOT_FOUND などのエラーコードを含みます。
以下の例では、\x01 / \x02 は生の stdout / stderr 接頭バイトを表しています。

一般的なエラー