Nesta página, descrevemos como usar os registros de plataforma gerados pela API Live Stream como
parte do Cloud Logging. A API Live Stream usa o nome de serviço da API Logging
livestream.googleapis.com
para registrar a atividade relacionada ao canal.
Antes de começar
- Verifique se você tem as permissões e papéis do IAM corretos para visualizar e gerenciar registros.
Ativar a geração de registros da plataforma
Por padrão, os registros de plataforma livestream.googleapis.com/channel_activities
da
API Live Stream estão desativados. Para ativar os registros, especifique um nível de gravidade ao criar ou atualizar o recurso do canal.
Para ativar os registros, adicione o seguinte campo ao corpo JSON da solicitação dos métodos projects.locations.channels.create
ou projects.locations.channels.patch
:
"logConfig": { "logSeverity": "SEVERITY_LEVEL" },
em que SEVERITY_LEVEL
é um dos seguintes:
OFF
DEBUG
INFO
WARNING
ERROR
Depois de escolher um nível de gravidade de registro para um canal, apenas os registros de plataforma com
um nível de gravidade maior ou igual ao escolhido serão registrados.
Por exemplo, se o nível de gravidade for WARNING
, apenas os registros com níveis de gravidade
WARNING
e ERROR
serão registrados. Se o nível de gravidade for INFO
, serão registrados registros de todos
os níveis de gravidade, exceto DEBUG
.
Para mais informações sobre os níveis de gravidade de registros, consulte LogSeverity.
Ver registros da plataforma
Para acessar os registros da plataforma, siga as instruções abaixo:
Console
Para acessar os registros da plataforma no console do Google Cloud:
Acesse o Explorador de registros:
Selecione o projeto do Google Cloud apropriado.
No campo Consulta, digite o seguinte comando de consulta:
resource.labels.channel_id=CHANNEL_ID resource.labels.location=LOCATION logName="projects/PROJECT_ID/logs/livestream.googleapis.com%2Fchannel_activities"
onde:
CHANNEL_ID
é o ID do canal que você quer depurar ou monitorar. Por exemplo,my-channel
.LOCATION
é o local do canal que você quer depurar ou monitorar. Por exemplo,us-central1
.PROJECT_ID
é o ID do projeto que contém o canal que você quer depurar ou monitorar. Por exemplo,my-project
.
Clique em Executar consulta.
Para mais informações sobre a Análise de registros, consulte Visão geral da Análise de registros e Como usar a Análise de registros.
gcloud
A ferramenta de linha de comando gcloud fornece uma interface de linha de comando para o Cloud Logging.
Para ver os registros channel_activities
do seu projeto, execute o seguinte comando:
gcloud logging read "logName:projects/PROJECT_ID/logs/livestream.googleapis.com%2Fchannel_activities" --project=PROJECT_ID
em que PROJECT_ID
é o ID do projeto do Google Cloud.
Para mais informações sobre como usar a ferramenta gcloud com o Cloud Logging, consulte
gcloud logging
.
Usar registros de plataforma
Esta seção descreve como usar e interpretar registros de plataforma específicos para a API Live Stream.
eventStateChange
Os registros eventStateChange
são gerados quando o estado de um evento de canal
muda. O nível de gravidade de um registro eventStateChange
é ERROR
quando o novo estado do evento do canal é FAILED
. Caso contrário, o nível de gravidade de um
registro eventStateChange
será INFO
.
Veja a seguir um exemplo de registro eventStateChange
:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" eventStateChange: { eventId: "my-ad-break" newState: "SCHEDULED" previousState: "PENDING" } message: "State of event "my-ad-break" changed from "PENDING" to "SCHEDULED"." } ... severity: "INFO" ... }
scte35CommandReceived
Os registros scte35CommandReceived
são gerados quando o fluxo de entrada recebe um comando SCTE35. O nível de gravidade de um registro scte35CommandReceived
é INFO
.
Veja a seguir um exemplo de registro scte35CommandReceived
:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" scte35CommandReceived: { spliceInfoSection: { ptsAdjustment: "123456789" spliceInsert: { availNum: 0 availsExpected: 0 breakDuration: null componentCount: 0 components: [0] durationFlag: false out0fNetworkIndicator: true programSpliceFlag: true spliceEventCancelIndicator: false spliceEventId: 123456789 spliceImmediateFlag: true spliceTime: null uniqueProgramId: 5 } } } message: "Received inband SCTE35 command, eventID=123456789." } ... severity: "INFO" ... }
streamingStateChange
Os registros streamingStateChange
são gerados quando o estado do streaming de um canal
muda. O nível de gravidade de um registro streamingStateChange
é ERROR
quando o
novo estado do canal é STREAMING_ERROR
. Caso contrário, o nível de gravidade de um
registro streamingStateChange
será INFO
.
Este é um exemplo de um registro streamingStateChange
em que o estado
anterior é STREAMING_ERROR
e o novo é STREAMING
:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" message: "streaming state of channel "CHANNEL_ID" changes from "STREAMING_ERROR" to "STREAMING"" streamingStateChange: { newState: "STREAMING" previousState: "STREAMING_ERROR" ... type: "livestream.googleapis.com/Channel" } severity: "INFO" ... }
É possível adicionar outros comandos no campo Consulta da Análise de registros para restringir os registros exibidos.
Adicione o seguinte comando para exibir todos os registros streamingStateChange
em que o novo estado é STREAMING
:
jsonPayload.streamingStateChange.newState="STREAMING"
Adicione o seguinte comando para exibir apenas registros streamingStateChange
:
jsonPayload.streamingStateChange.newState:*
streamingError
Os registros streamingError
são gerados quando um canal encontra um erro relacionado ao
streaming. O nível de gravidade de um registro streamingError
é ERROR
.
Veja a seguir um exemplo de registro streamingError
em que a API Live Stream foi negada para fazer upload de arquivos de saída para o bucket especificado do Cloud Storage:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" message: "A live streaming encounters an error." streamingError: { error: { ... message: "Permission denied to access the Cloud Storage bucket "STORAGE_BUCKET_NAME"" ... severity: "ERROR" ... }
Esse erro também poderá ocorrer se o bucket do Cloud Storage especificado não existir.
Se streamingError.message
exibir a mensagem This is due to an internal
error. If the error persists, please contact support team
, copie o conteúdo do registro e envie-o à equipe de suporte para solução de problemas.
inputAccept
Os registros inputAccept
são gerados quando um fluxo de entrada é conectado
ao endpoint de entrada da API Live Stream. O nível de gravidade dos registros inputAccept
é INFO
.
O campo inputStreamProperty
em um registro inputAccept
inclui as seguintes
informações sobre os sub-streams de vídeo e áudio do stream de entrada:
Streams de vídeo |
|
Streams de áudio |
|
Use os registros inputAccept
para verificar o formato e o status de aceitação do
fluxo de entrada:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" inputAccept: { inputAttachment: "input-primary" inputStreamProperty: { audioStreams: [ 0: { audioFormat: { channelCount: 2 channelLayout: [ 0: "fl" 1: "fr" ] codec: "aac" } index: 1 } ] videoStreams: [ 0: { videoFormat: { codec: "h264" frameRate: 60 heightPixels: 720 widthPixels: 1280 ... streamId: "STREAM_ID" } message: "Input stream "STREAM_ID" is accepted by channel "CHANNEL_ID" for input attachment "input-primary"" } ... severity: "INFO" ... }
Adicione o seguinte comando no campo Consulta da Análise de registros para exibir apenas registros inputAccept
de um stream específico:
jsonPayload.inputAccept.streamId="STREAM_ID"
em que STREAM_ID
é o identificador exclusivo de um fluxo incluído no URI
do endpoint de entrada.
inputError
Os registros inputError
são gerados quando um stream de entrada é rejeitado pela
API Live Stream. O nível de gravidade de um registro inputError
é ERROR
.
Veja a seguir um exemplo de registro inputError
em que um fluxo de entrada foi enviado
para um canal que ainda não foi iniciado:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" inputError: { error: { ... message: "The channel has not been started yet" } streamId: "STREAM_ID" ... severity: "ERROR" ... }
Veja a seguir um exemplo de registro inputError
em que um fluxo de entrada duplicado
foi enviado para um canal que já está fazendo streaming:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" inputError: { error: { code: 9 message: "input stream "STREAM_ID" has been accepted. Please verify if another input stream has been streaming to the same endpoint." } streamId: "STREAM_ID" ... severity: "ERROR" ... }
Adicione o seguinte comando no campo Consulta da Análise de registros para exibir apenas registros inputError
de um stream específico:
jsonPayload.inputError.streamId="STREAM_ID"
em que STREAM_ID
é o identificador exclusivo de um fluxo incluído no URI
do endpoint de entrada.
inputDisconnect
Os registros inputDisconnect
são gerados quando os streams de entrada são desconectados
da API Live Stream. Use os registros inputDisconnect
para verificar se há
desconexões inesperadas de transmissão ao vivo. O nível de gravidade de um registro inputDisconnect
é INFO
.
Veja a seguir um exemplo de registro inputDisconnect
:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" inputDisconnect: { inputAttachment: "input-primary" streamId: "STREAM_ID" } message: "Input stream "STREAM_ID" is disconnected by channel "CHANNEL_ID" for input attachment "input-primary"" ... severity: "INFO" ... }