Application
Logs en temps réel
Établissez une connexion Server-Sent Events (SSE) pour recevoir le flux temps réel de votre application (logs, métriques en direct, statut, progression du deploy). À la connexion, les 200 lignes de logs les plus récentes sont envoyées, suivies des nouvelles mises à jour. La connexion peut être maintenue jusqu’à 10 minutes.
Logs en temps réel
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.
La clé d’API de votre compte. Vous pouvez la trouver dans les paramètres de votre compte.
Paramètres
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
Indique si l’appel a réussi.
success en cas de succès, 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 }(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.
Logs en temps réel

