Logs e métricas em tempo real (SSE)
Abra um stream Server-Sent Events com GET /v2/apps//realtime para logs, métricas, status e progresso de deploy ao vivo. A conexão dura até 10 minutos.
Logs e métricas em tempo real (SSE)
O Playground da API está desativado para este endpoint devido à natureza das conexões SSE, que não são universalmente suportadas pelos navegadores.
string
obrigatório
A chave da API para sua conta. Você pode encontrá-la nas configurações da conta.
apps:read.
Use este endpoint sempre que precisar de uma visão ao vivo de uma aplicação em vez de fazer polling: acompanhar o progresso de um deploy, seguir os logs conforme são escritos, ou alimentar o gráfico de CPU/RAM de um dashboard sem bater repetidamente em Obter status da aplicação ou Obter logs em um timer. Ele substitui os dois enquanto a conexão estiver aberta.
Internamente, abrir uma conexão aqui estabelece um único stream upstream no cluster da aplicação e o retransmite via SSE, com uma reconexão interna transparente caso esse upstream caia. Como cada conexão aberta mantém um socket por até 10 minutos, as aberturas têm limite de taxa separado dos limites de conexões simultâneas descritos abaixo: 1 abertura a cada 5 segundos por (usuário, aplicação), e 20 aberturas a cada 10 segundos por usuário somando todas as aplicações, seguidas de um cooldown curto.
Parâmetros
string
obrigatório
O ID da aplicação cujos logs você deseja monitorar. Este ID pode ser encontrado na URL da sua aplicação no dashboard.
Resposta
string
Indica se a chamada foi bem-sucedida:
success se foi, error se não.code juntamente com o status de erro, detalhando a causa.
Se a requisição for bem-sucedida, a resposta será um stream text/event-stream contendo o feed em tempo real da aplicação.
Cada conexão dura até 10 minutos. Cada conta pode manter 5 conexões em tempo real simultâneas (REALTIME_MAX_CONNECTIONS) e cada aplicação 30 no total entre todos os usuários (REALTIME_MAX_CONNECTIONS_APP); exceder qualquer um dos limites retorna 429.
Estrutura do Server-Sent Events (SSE)
A resposta é um fluxo contínuo no formatotext/event-stream. Cada mensagem é composta por um campo event e um campo data. O formato varia conforme o evento, então trate os payloads de forma defensiva.
Tipos de evento
system: Sinais de nível de protocolo. A linhadataé um único código em maiúsculas:REALTIME_CONNECTING | <sseId>ao conectar, e depois qualquer um deREALTIME_TIMEOUT,REALTIME_DISCONNECTED,REALTIME_RECONNECTouREALTIME_ERROR.logs: Uma única linha de log cujo primeiro caractere é um byte de identificação do stream:\x01(stdout) ou\x02(stderr). Leiadata.charCodeAt(0)(1 = stdout, 2 = stderr) e depoisdata.slice(1)para obter o texto. Uma linha sem esse byte de prefixo é stdout.status: Métricas do contêiner ao vivo como uma string JSON, cerca de um frame por segundo. O primeiro frame de cada (re)conexão é completo:{ cpu, cpuLimit, ram: [usedMB, limitMB], status, netIO: { i, o, new: { i, o } }, bIO: { i, o }, uptime }(cpuLimité o número de núcleos de CPU alocados;uptimeé o horário de início em ms epoch;netIO.newé bytes por segundo). Todo frame seguinte é reduzido, contendo apenas{ cpu, ram, netIO, bIO }: mescle cada um sobre o último frame completo, mantendo os valores anteriores decpuLimit,statuseuptime. Enquanto este stream estiver aberto, prefira-o em vez de consultarGET /v2/apps/{app_id}/status, que pode ficar até cerca de um minuto desatualizado para uma aplicação com um stream em tempo real aberto.error: Carrega um código de erro comoCONTAINER_NOT_FOUND.
\x01 / \x02 representam os bytes brutos de prefixo de stdout / stderr.
Erros comuns
Relacionados
- CLI:
squarecloud app realtime - SDKs:
api.apps.realtime()(JavaScript),client.apps.realtime()(Python),c.Apps.Realtime()(Go)

