Contato com o suporte técnico¶
Esta seção ajuda a preparar a solicitação de forma que a análise possa começar imediatamente, sem troca de perguntas de esclarecimento. Ela consiste em um questionário que vale a pena responder antes do contato e em uma lista dos materiais anexados à solicitação.
As solicitações são enviadas por e-mail; o endereço do suporte está indicado no site https://pstreamer.tv/.
A solicitação não deve conter informações privadas: senhas, chaves, segredos, endereços e nomes dos seus sistemas e assinantes, dados do cliente. O questionário foi elaborado de forma que nenhuma resposta exija esses dados, e os materiais são limpos antes do envio segundo as regras da seção Dados privados.
Questionário¶
Responda às perguntas na ordem. Se não souber uma resposta, diga isso: também é informação, e ela economiza tempo.
Nó
Qual versão da build está instalada? Ela aparece na tela Sobre o sistema, na seção «Build e bibliotecas»; na linha de comando,
/usr/local/bin/pss -va exibe junto com as versões das bibliotecas embutidas.Qual sistema operacional e qual versão? O nó roda em um servidor físico ou em uma máquina virtual?
Qual hardware está envolvido no problema: modelo do processador e quantidade de memória, modelos de placas de rede, placas de vídeo e placas DVB?
O nó funciona sozinho ou faz parte de um domínio Meshwork? Se estiver em um domínio, quantos nós ele tem e todos rodam a mesma versão da build?
Qual é o tipo de licença e ela está válida? Tela Licença. O identificador da chave e os arquivos C2V/V2C não são anexados à solicitação enquanto o suporte não os pedir.
O que está acontecendo
O que era esperado e o que acontece em vez disso? Descreva o que é observado, e não a causa presumida: «na saída HLS a imagem congela a cada poucos minutos», e não «o transcodificador quebrou».
Quando o problema apareceu pela primeira vez e quando se manifestou pela última vez? Informe os horários com o fuso horário. Por padrão, o registro
main.loggrava a hora em UTC e sem o ano (Registro do serviço) — faça a correspondência entre um e outro.O problema é constante, periódico ou aconteceu uma única vez? Se for periódico, com que frequência e há algum padrão: hora do dia, carga, uma fonte específica?
O problema pode ser reproduzido passo a passo? Se sim, liste os passos.
O que mudou pouco antes do surgimento do problema: atualização da build ou do sistema operacional, alteração de configurações, troca de hardware, mudanças na rede ou na fonte?
Fluxos afetados
Quais fluxos estão afetados — os números dos fluxos no nó? Todos os fluxos estão afetados, uma parte ou apenas um?
Qual transporte é usado na entrada e na saída do fluxo afetado, e ele é SPTS ou MPTS? A transcodificação é usada e, se sim, qual backend e qual versão (Backends e codecs, tela Sobre o sistema, seção «Transcodificadores»)?
Quais codecs e qual taxa de bits a fonte tem? Se houver um relatório do analisador (O que anexar), ele responde a esta pergunta.
O problema está do lado da entrada ou da saída? Ele aparece nas estatísticas do fluxo (Estatísticas do fluxo) — erros de continuidade, comutações para a entrada de reserva, reinícios do buffer?
Como a mesma fonte se comporta sem passar pelo nó ou em outro nó? Como outra fonte se comporta no mesmo fluxo?
Serviço e recursos
O serviço foi reiniciado durante o intervalo do problema? Na tela Registros, cada inicialização é marcada com a linha «Início do streamer»; uma execução encerrada sem parada normal é sinalizada separadamente.
Quais alertas estão ativos no nó (Alertas)?
Qual é a carga do processador, da memória e das interfaces de rede no momento do problema? Tela Monitor do Sistema, bloco «Histórico».
O que já foi feito
Quais ações já foram tomadas e quais delas deram resultado: reinício do fluxo ou do serviço, troca de entrada, alteração de configurações?
Cronologia do incidente
Descreva o curso dos acontecimentos na ordem, com marcas de tempo e fuso horário:
o último momento em que tudo funcionava como esperado;
as mudanças feitas depois dele — no nó, na rede, na fonte ou no receptor;
a primeira manifestação do problema e como ele foi detectado: alerta, reclamação de assinante, observação própria;
como o problema evoluiu depois: piorou, desapareceu sozinho, se repetiu;
cada ação tomada e o que mudou depois dela;
o estado atual no momento da solicitação.
A cronologia une as respostas às perguntas anteriores em um único quadro e permite comparar os acontecimentos com o registro do nó linha por linha.
O que anexar¶
Anexe o que tiver relação com o problema. A lista abaixo traz os materiais mais comuns, e não um conjunto obrigatório.
O registro do serviço do intervalo do problema — veja Registro do serviço.
Os logs do transcodificador, se a transcodificação estiver envolvida no problema — antes de tudo o «Log anterior» do processo, além do último código de saída e do log atual. Eles ficam apenas na memória do nó e se perdem nas reinicializações; por isso, colete-os primeiro — veja Registros do transcodificador.
As entradas da tela Registros, filtradas pelo fluxo afetado e pelo intervalo de datas. O texto completo de uma entrada é copiado com o botão «Copiar mensagem».
Capturas de tela das estatísticas do fluxo afetado (Estatísticas do fluxo) e do monitor do sistema no mesmo intervalo.
As configurações do fluxo afetado — somente após a limpeza (Dados privados). Um backup completo da configuração feito na tela Manutenção contém em texto claro as senhas e chaves de todos os objetos do nó; anexe-o apenas se o suporte pedir, e também após a limpeza.
Um relatório do analisador sobre a fonte, se o problema parecer um defeito do próprio fluxo: o utilitário TS Analyze Perfect Streamer Toolkit v2.3 — TR 101 290 lê UDP ou um arquivo e gera um relatório em texto ou XML.
Saída de diagnóstico conforme o tipo de problema:
licença e chave — a saída do
pss_liccom a opção-v(PSS Lic Perfect Streamer Toolkit v2.0 — licença do nó);transcodificador por hardware NVIDIA —
nvidia-smi, Intel —vainfo --display drm --device /dev/dri/renderD128(Transcodificadores);perdas na recepção de multicast UDP —
netstat -su, linhaRcvbufErrors(Recomendações para o trabalho com multicast UDP).
Registro do serviço¶
O serviço grava seu registro no arquivo main.log. O diretório é definido pela chave log-dir do arquivo pss.properties, por padrão /var/log/pss. O arquivo é rotacionado diariamente: os dias anteriores ficam ao lado, em arquivos main.log.<marca de tempo>, por isso para um intervalo no passado é preciso o arquivo daquele dia, e não o main.log atual.
O horário nas linhas do registro aparece sem o ano e, por padrão, em UTC; o horário local é ativado pela chave log-time-local do mesmo arquivo.
$ ls -l /var/log/pss/
$ tail -n 200 /var/log/pss/main.log
$ journalctl -u pss -n 50
Os dois últimos comandos não são equivalentes. Se o serviço não subiu de forma alguma, a causa pode estar antes do próprio registro — o diretório dele está inacessível, o pss.properties não pode ser lido — e então o main.log não terá nem uma linha sobre isso: o arquivo pode ter sobrado da execução anterior e mostrar conteúdo antigo. O serviço imprime essa causa em uma linha que começa com !!!, e ela aparece no journal do sistema, ou seja, na saída de journalctl -u pss. As linhas comuns do registro só chegam lá também se log-to-console ou log-to-syslog estiver ativado no pss.properties.
O nível de registro é definido na tela Configurações do servidor — um geral e outros separados para as bibliotecas SRT, RIST e FFmpeg. Entradas e saídas de transportes específicos têm rastreamento próprio — o campo Trace (Campos de entrada e saída por transporte). Aumente o nível ou ative o rastreamento somente quando o suporte pedir, e restaure o valor anterior após a coleta: um registro detalhado cresce rapidamente.
Registros do transcodificador¶
Se a transcodificação estiver envolvida no problema, o registro do processo do transcodificador é o material principal da solicitação: a causa de uma falha de codificação ou decodificação quase sempre só aparece nele.
O processo do transcodificador mantém sempre um registro detalhado; não é preciso ativar o rastreamento separadamente. Mas esse registro não é gravado em arquivo: o nó guarda na memória apenas o final dele, os últimos 256 KB, e só de duas execuções do processo — a atual e a anterior. O registro é aberto na janela Instância de transcodificador (tela Transcodificadores), no bloco «Log do processo»: «Log atual», «Log anterior» e «Último código de saída». Cada log é obtido com o botão «Copiar».
O mais valioso é o «Log anterior». O processo com falha normalmente já foi reiniciado — pelo temporizador watchdog ou pelo próprio nó — e então é justamente o log anterior que contém a execução encerrada, junto com as mensagens que precederam a falha. O log atual já descreve a nova execução e mostra apenas se o problema se repete.
Daí decorrem as seguintes regras de coleta:
Copie o «Log anterior» assim que perceber o problema. Cada nova execução do processo — reinício pelo watchdog, parada e nova inicialização do fluxo — desloca os logs em uma posição: o atual passa a ser o anterior, e o anterior de antes é apagado. Se a falha se repetir antes de o log ser copiado, o registro da primeira falha será perdido. Reiniciar o serviço ou o nó apaga os dois logs.
Não reinicie o fluxo nem o serviço antes de copiar o log — mesmo que o reinício restabeleça o funcionamento.
Anexe junto com ele o último código de saída e o log atual.
Em um processo que está rodando há muito tempo, o início do log já foi descartado. Se o momento da inicialização for importante — por exemplo, a escolha do dispositivo e do driver —, reproduza o problema após reiniciar o fluxo e copie o log imediatamente.
Uma linha sobre o encerramento do processo permanece também no registro do serviço: quando o transcodificador termina por conta própria, o nó grava no main.log um aviso com a última mensagem dele e o código de saída. Essas linhas sobrevivem ao reinício do serviço e permitem encontrar o momento da falha mesmo que o próprio registro do processo já tenha sido perdido:
$ grep -i 'transcoder' /var/log/pss/main.log
Anexe aos registros do transcodificador o tipo e a versão do backend da tela Sobre o sistema (seção «Transcodificadores») e a saída de diagnóstico do dispositivo — nvidia-smi ou vainfo (O que anexar).
Dados privados¶
Registros, configurações e capturas de tela contêm dados que não devem ir para a solicitação. Substitua-os antes do envio:
senhas, frases-senha, chaves e segredos — a lista completa das chaves de configuração que os armazenam está na seção Valores que não devem ser repassados;
endereços com credenciais diretamente no link — na fonte de uma entrada e no endereço de publicação em uma plataforma externa;
endereços IP e nomes de host de fontes, receptores e assinantes, bem como os endereços do próprio nó;
nomes de assinantes, logins de contas, nomes de canais e dados do cliente, se por si só revelarem informações.
Substitua de forma consistente: um mesmo valor original, em todos os lugares, pela mesma substituição (10.0.0.5 → HOST-A). Assim, no registro limpo continua visível quais linhas pertencem a um mesmo nó e quais a nós diferentes, e a análise não perde o sentido.
Não envie na solicitação credenciais de acesso ao nó ou à interface web dele. Se o acesso for necessário para a análise, a forma de concedê-lo é combinada separadamente.