リアルタイムログとメトリクスのストリーミング (SSE)
GET /v2/apps//realtime で Server-Sent Events ストリームを開き、ライブログ、メトリクス、ステータス、deploy の進行状況を受信します。接続は最大 10 分間です。
リアルタイムログとメトリクスのストリーミング (SSE)
この endpoint では、ブラウザで普遍的にサポートされていない SSE 接続の性質上、API Playground が無効化されています。
apps:read スコープを持つ API キーが必要です。
ポーリングの代わりにアプリケーションのライブな状態を確認したい場合は、このエンドポイントを使用してください。deploy の進行状況を監視する、書き込まれるログをリアルタイムで追跡する、アプリケーションのステータス取得 や アプリケーションログの取得 をタイマーで叩き続けることなくダッシュボードの CPU/RAM グラフを駆動する、といった用途に使えます。接続が続いている間は、この両方を置き換えます。
内部的には、ここで接続を開くとアプリケーションの cluster 上の単一のアップストリームストリームに接続し、それを SSE 経由で中継します。アップストリームが切断された場合は、内部で 1 回だけ透過的に再接続します。各接続は最大 10 分間ソケットを保持するため、接続のオープンは以下の同時接続数の上限とは別にレート制限されています: (user, application)ごとに 5 秒あたり 1 オープン、全アプリケーションを通じてユーザーごとに 10 秒あたり 20 オープンで、その後短いクールダウンがあります。
パラメータ
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 }(cpuLimitは割り当てられた CPU コア数、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 接頭バイトを表しています。
一般的なエラー
関連項目
- CLI:
squarecloud app realtime - SDK:
api.apps.realtime()(JavaScript),client.apps.realtime()(Python),c.Apps.Realtime()(Go)

