Monitoramento de entrega¶
Uma cabeça de rede não pode perguntar ao receptor o que ele mediu. Tudo o que ela tem são seus próprios contadores de envio, e eles são coletados por destino.
A chave da estatística é o par «nome do stream, nome do destino», o mesmo das configurações do destino. Isso não é formalidade: um stream sai para cinco destinos, e a frase «o stream está entregando 40 Mbit/s» não responde se ele chega a algum deles em particular.
A opção «estatísticas de pushes»
A vista de entrega é uma opção de licença à parte. Ela corta apenas os canais de dados: a seção pushes e os campos planos push_* da API, as séries stream_push_* do scrape e do servidor Prometheus embutido. A coleta em si nunca para, e os contadores sempre vão para a telemetria do Retroview — a análise no Retroview está disponível também sem a opção.
A vista no painel¶
Na aba Saída, abaixo das configurações de cada destino corre uma linha de estatísticas ao vivo: status, velocidade, erros por segundo, reconexões e, num destino que falhou, a causa ali mesmo na linha.

Para os destinos SRT e RIST, a linha de estatísticas mostra a taxa atual em retransmissões/s. Um único gráfico abaixo compara a saída de rede com os erros e as retransmissões:
- Bitrate — velocidade de envio pela rede em Mbit/s, no eixo esquerdo.
- Erros — erros de envio por segundo, no eixo direito.
- Retransmissões — retransmissões por segundo, no mesmo eixo direito, em eventos/s.
O gráfico mostra até seis horas de histórico. As taxas usam uma janela de dois minutos; os pontos têm intervalo de um minuto e os dados são atualizados a cada 30 segundos. As taxas exibidas são arredondadas para duas casas decimais. Medições ausentes interrompem as linhas; dados indisponíveis são indicados por «—» e não são tratados como uma taxa de zero. Uma taxa de retransmissões diferente de zero indica que o transporte está reenviando pacotes no caminho até o receptor.
O campo da API retransmitted_packets_total continua sendo um contador cumulativo de retransmissões. O servidor Prometheus incorporado calcula a taxa a partir do histórico do contador, considerando seus reinícios; o console mostra o resultado de sum(rate(stream_push_retransmitted_packets_total{name="tv1",push="relay"}[2m])).

Na lista de streams, um destino quebrado acende uma marca ao lado do status do stream: dá para ver que a entrega está quebrada sem abrir o stream.

A página de pushes¶
A página Pushes dá uma visão transversal de todos os pushes ativos e do histórico dos fechados. É útil quando a pergunta não é "o que está acontecendo com os destinos deste stream?", mas "o que a cabeça de rede está enviando agora e quão saudável está cada push?"
A tabela de ativos tem uma linha por cada push em execução: stream, nome do push, endpoint, nó, status, tempo ativo, bitrate, reconexões, RTT e retransmissões. Os filtros acima da tabela permitem restringir a visão por stream, push, proprietário, nó ou transporte.

Clicar em uma linha abre o painel de detalhes. Ele mostra os totais do registo e, quando há histórico suficiente, gráficos por minuto:
- Bitrate — a taxa de envio do push.
- Eventos — erros, reinícios e paradas do operador ao longo da linha do tempo.
- Para pushes UDP: frames atrasados e pacotes MPEG-TS atrasados — o custo de um caminho de datagramas sobrecarregado.
- Para pushes SRT: RTT, detalhamento de perdas (pacotes perdidos, too-late e drop-request) e retransmissões vs NAKs.

Os registos fechados são listados abaixo da tabela ativa com seu motivo de fechamento, duração e totais. O mesmo gráfico de detalhes está disponível para um registo fechado, congelado na janela de sua vida.
Contadores do destino¶
GET /streamer/api-v4/streams/stats/{name} traz um objeto indexado pelo nome do destino:
"pushes": {
"cable-net": {
"status": "running",
"proto": "udp",
"url": "udp://239.1.1.10:5000",
"opened_at": "2026-08-13T11:17:53Z",
"bitrate_kbit": 2113.4,
"bytes_total": 19053048,
"datagrams_total": 14478
},
"partner-dc": {
"status": "error",
"proto": "srt",
"url": "srt://203.0.113.10:9000",
"error": "srt handshake rejected: bad passphrase",
"reconnects_total": 22
},
"backup-site": {"status": "disabled", "proto": "srt", "url": "srt://198.51.100.4:9000"}
}
| Campo | O que significa | Como usar |
|---|---|---|
status |
running, error ou disabled |
fora de running por mais de N minutos — alerta; disabled é normal, é um destino que o operador desligou |
error |
a causa do status error |
o primeiro a ler: conexão recusada, tempo esgotado, handshake rejeitado |
proto, url |
o transporte e o destino exatamente como o operador os definiu | dá para ver para onde o sinal vai de fato |
opened_at |
o momento em que o pusher atual começou | fica mais novo a cada reconexão — o canal está caindo e voltando |
bitrate_kbit |
a velocidade de envio medida | bem abaixo do bitrate do stream — o envio não dá conta |
errors_rate |
erros de envio por segundo | cresce com a conexão viva — o receptor ou o canal estão degradando |
bytes_total |
bytes enviados, acumulado | conciliação de volumes por destino |
errors_total |
erros de envio, acumulado | — |
reconnects_total |
ressurreições de um pusher morto | cresce com status: running — o canal rompe e se recupera |
retransmitted_packets_total |
retransmissões do transporte (SRT, RIST) | crescem — perdas no caminho até o receptor |
datagrams_total, frames_total |
as unidades enviadas: datagramas nos transportes de pacotes, quadros no RTMP | — |
Campos zerados são omitidos da resposta: um destino RTMP não tem datagramas, um UDP não tem quadros nem retransmissões.
Ao lado dos contadores do stream há três somas sobre todos os destinos — push_bytes_total, push_errors_total, push_reconnects_total. Elas respondem «quanto a cabeça de rede enviou no total» sem percorrer o mapa.
Séries do Prometheus¶
Cada contador de destino é uma série própria com o rótulo push:
| Série | Rótulos |
|---|---|
stream_push_bytes_total |
stream, push, proto |
stream_push_errors_total |
stream, push, proto |
stream_push_reconnects_total |
stream, push, proto |
stream_push_retransmitted_packets_total |
stream, push, proto |
stream_push_datagrams_total, stream_push_frames_total |
stream, push, proto |
No servidor Prometheus embutido os mesmos contadores estão disponíveis com os rótulos name (stream) e push; quando há mais de uma cabeça de rede, soma-se node. A profundidade de protocolo — stream_push_srt_* e stream_push_rist_* — chega junto com a opção de contadores estendidos.
# velocidade de envio por destino — o scrape do nó, rótulo stream
rate(stream_push_bytes_total{stream="tv1"}[1m])
# a saída total do stream por todos os destinos — o servidor integrado, rótulo name
sum by (name) (rate(stream_push_bytes_total{name="tv1"}[1m]))
# canais que rompem: reconexões em cinco minutos
increase(stream_push_reconnects_total[5m]) > 0
# perdas no caminho até o receptor por SRT/RIST
sum(rate(stream_push_retransmitted_packets_total{name="tv1",push="relay"}[2m]))
Como ler o estado¶
status: errorcomerrornão vazio — nada está sendo enviado, e a causa está nomeada. O destino continua se levantando sozinho, uma vez a cada cinco segundos.status: running, masbitrate_kbitzerado — a conexão está lá, os dados não: confira se o próprio sinal está chegando na entrada.status: runningcomreconnects_totalcrescente — o canal rompe e se recupera;opened_atmostra a idade da conexão atual.status: disabled— o destino está desligado pelo interruptor. Os contadores ficam congelados nos últimos valores; isso não é perda de dados.
Os alertas para começar¶
| Pergunta | Onde olhar | O sinal do problema |
|---|---|---|
| O sinal chega? | pushes[].status, bitrate_kbit; rate(stream_push_bytes_total[1m]) |
o status não é running; velocidade zerada num stream vivo |
| Por que não chega? | pushes[].error |
o texto da causa: conexão recusada, tempo esgotado, handshake rejeitado |
| O canal até o receptor rompe? | reconnects_total, opened_at |
as reconexões crescem; opened_at fica mais novo a cada poucos minutos |
| O caminho perde pacotes? | retransmitted_packets_total |
cresce com o status estável |
| A saída dá conta? | o bitrate_kbit do destino contra o bitrate do stream |
a velocidade do destino é sistematicamente menor |
O que vem depois¶
- Entrega para a rede e entrega por SRT — com o que um destino é configurado.
- Erros de entrada — a outra metade do quadro: o que chega na cabeça de rede.
- Monitoramento — os canais de estatística como um todo.