Logs et métriques en temps réel (SSE)
Ouvrez un flux Server-Sent Events avec GET /v2/apps//realtime pour les logs, métriques, statut et progression du deploy en direct, jusqu’à 10 minutes.
Logs et métriques en temps réel (SSE)
Le Playground de l’API est désactivé pour cet endpoint en raison de la nature des connexions SSE, qui ne sont pas universellement prises en charge par les navigateurs.
string
requis
La clé d’API de votre compte. Vous pouvez la trouver dans les paramètres de votre compte.
apps:read.
Utilisez cet endpoint chaque fois que vous avez besoin d’une vue en direct d’une application plutôt que d’un polling : suivre la progression d’un déploiement, tailer les logs au fur et à mesure de leur écriture, ou alimenter le graphique CPU/RAM d’un tableau de bord sans solliciter en boucle Obtenir le statut d’une application ou Obtenir les logs de l’application. Il remplace les deux pendant toute la durée de la connexion.
En interne, l’ouverture d’une connexion ici établit un flux unique en amont sur le cluster de l’application et le relaie via SSE, avec une reconnexion interne transparente si ce flux amont est interrompu. Comme chaque connexion ouverte occupe un socket jusqu’à 10 minutes, les ouvertures sont limitées séparément des plafonds de connexions simultanées décrits ci-dessous : 1 ouverture toutes les 5 secondes par (utilisateur, application), et 20 ouvertures toutes les 10 secondes par utilisateur toutes applications confondues, avec un court temps de repos une fois ce plafond atteint.
Paramètres
string
requis
L’ID de l’application dont vous souhaitez surveiller les logs. Cet ID se trouve dans l’URL du panneau de gestion de votre application.
Réponse
string
Indique si l’appel a réussi :
success si c’est le cas, error sinon.code accompagné du statut d’erreur, détaillant la cause.
Si la requête réussit, la réponse sera un flux text/event-stream contenant le flux temps réel de l’application.
Chaque connexion dure jusqu’à 10 minutes. Chaque compte peut maintenir 5 connexions temps réel simultanées (REALTIME_MAX_CONNECTIONS) et chaque application 30 tous utilisateurs confondus (REALTIME_MAX_CONNECTIONS_APP) ; dépasser l’une ou l’autre renvoie un 429.
Structure des Server-Sent Events (SSE)
La réponse est un flux continu au formattext/event-stream. Chaque message est composé d’un champ event et d’un champ data. Les structures varient selon l’événement, analysez donc les charges utiles de manière défensive.
Types d’événements
system: signaux au niveau du protocole. La lignedataest un unique code en majuscules :REALTIME_CONNECTING | <sseId>à la connexion, puis l’un deREALTIME_TIMEOUT,REALTIME_DISCONNECTED,REALTIME_RECONNECTouREALTIME_ERROR.logs: une seule ligne de log dont le premier caractère est un octet d’identifiant de flux :\x01(stdout) ou\x02(stderr). Lisezdata.charCodeAt(0)(1 = stdout, 2 = stderr), puisdata.slice(1)pour le texte. Une ligne sans cet octet de préfixe est du stdout.status: métriques du conteneur en direct sous forme de chaîne JSON, environ une trame par seconde. La première trame de chaque (re)connexion est complète :{ cpu, cpuLimit, ram: [usedMB, limitMB], status, netIO: { i, o, new: { i, o } }, bIO: { i, o }, uptime }(cpuLimitest le nombre de cœurs CPU alloués ;uptimeest l’heure de démarrage en ms epoch ;netIO.newest en octets par seconde). Chaque trame ultérieure est allégée, ne transportant que{ cpu, ram, netIO, bIO }. Fusionnez chacune sur la dernière trame complète, en conservant les précédentscpuLimit,statusetuptime. Tant que ce flux est ouvert, privilégiez-le plutôt que d’interrogerGET /v2/apps/{app_id}/status, qui peut être obsolète d’environ une minute pour une application ayant un flux temps réel ouvert.error: transporte un code d’erreur tel queCONTAINER_NOT_FOUND.
\x01 / \x02 représentent les octets de préfixe stdout / stderr bruts.
Erreurs courantes
Voir aussi
- CLI :
squarecloud app realtime - SDK :
api.apps.realtime()(JavaScript),client.apps.realtime()(Python),c.Apps.Realtime()(Go)

