Como usar registros da plataforma

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Nesta página, descrevemos como usar registros da 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 atividades relacionadas ao canal.

Antes de começar

Ativar a geração de registros da plataforma

Por padrão, os registros de plataforma livestream.googleapis.com/channel_activities para a API Live Stream sã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 do projects.locations.channels.create ou do método 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, somente os registros da plataforma com um nível de gravidade maior ou igual ao de gravidade escolhido serão registrados. Por exemplo, se o nível de gravidade for WARNING, somente os registros com 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 ver os registros da plataforma, siga as instruções abaixo:

Console

Para ver os registros da plataforma no Console do Google Cloud, siga estas etapas:

  1. Acesse o Explorador de registros:

    Acesse o Explorador de registros

  2. Selecione o projeto do Cloud apropriado.

  3. No campo Consulta, insira este comando:

    resource.labels.channel_id=CHANNEL_ID
    resource.labels.location=LOCATION
    logName="projects/PROJECT_ID/logs/livestream.googleapis.com%2Fchannel_activities"
    

    em que:

    • 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.

  4. Clique em Executar consulta.

Para mais informações sobre o Explorador de registros, consulte Visão geral do Explorador de registros e Como usar o Explorador 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 da plataforma

Nesta seção, descrevemos como usar e interpretar registros de plataforma específicos da API Live Stream.

Mudança de estado de streaming

Os registros de StreamingStateChange são gerados quando o estado de streaming de um canal é alterado. 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 é INFO.

Veja a seguir um exemplo de registro StreamingStateChange em que o estado anterior é STREAMING_ERROR e o novo estado é 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"
  ...
}

Você pode adicionar outros comandos no campo Consulta do Explorador 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:*

Erro de streaming

Os registros de 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 teve permissão 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 GCS 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 o envie para a equipe de suporte para solução de problemas.

Aceitar entrada

Os registros InputAccept são gerados quando um stream 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
  • index
  • codec
  • frame rate
  • resolution
Streams de áudio
  • index
  • contagem de canais
  • layout do canal
  • informações do codec

É possível usar registros InputAccept para verificar o formato e o status de aceitação do stream 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 do Explorador de registros para exibir apenas os registros InputAccept de um fluxo 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.

Erro de entrada

Os registros InputError são gerados quando um fluxo 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 começou:

{
  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 do Explorador de registros para exibir apenas registros InputError de um fluxo 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. Você pode usar os registros InputDisconnect para verificar se há desconexões de transmissões ao vivo inesperadas. 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"
  ...
}