Usa registros de plataforma

En esta página, se describe cómo usar los registros de plataforma generados por la API de Live Stream como parte de Cloud Logging. La API de Live Stream usa el nombre de servicio de la API de Logging livestream.googleapis.com para registrar la actividad relacionada con el canal.

Antes de comenzar

Activa el registro de plataformas

De forma predeterminada, los registros de plataforma livestream.googleapis.com/channel_activities para Se desactivó la API de Live Stream. Para activar los registros, debes especificar un nivel de gravedad cuando crees o actualices el recurso del canal.

Para activar los registros, agrega el siguiente campo al cuerpo JSON de solicitud de la projects.locations.channels.create o Método projects.locations.channels.patch:

   "logConfig": {
     "logSeverity": "SEVERITY_LEVEL"
   },
  

En el ejemplo anterior, SEVERITY_LEVEL es una de las siguientes opciones:

  • OFF
  • DEBUG
  • INFO
  • WARNING
  • ERROR

Una vez que elijas un nivel de gravedad de registro para un canal, solo los registros de se registra un nivel de gravedad mayor o igual que el nivel elegido. Por ejemplo, si el nivel de gravedad es WARNING, solo los registros con nivel de gravedad Se registraron WARNING y ERROR. Si el nivel de gravedad es INFO, los registros de todos excepto por DEBUG.

Para obtener más información sobre los niveles de gravedad del registro, consulta LogSeverity.

Ver registros de plataforma

Para ver los registros de plataforma, sigue las instrucciones a continuación:

Console

Para ver los registros de plataforma en la consola de Google Cloud, sigue estos pasos:

  1. Navega al Explorador de registros:

    Ir al Explorador de registros.

  2. Selecciona el proyecto de Google Cloud adecuado.

  3. En el campo Consulta, ingresa el siguiente comando de consulta:

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

    Donde:

    • CHANNEL_ID es el ID del canal que deseas depurar o supervisar. Por ejemplo, my-channel.

    • LOCATION es la ubicación del canal que deseas depurar o supervisar. Por ejemplo, us-central1.

    • PROJECT_ID es el ID del proyecto que contiene el canal que deseas depurar o supervisar. Por ejemplo, my-project.

  4. Haz clic en Ejecutar consulta.

Para obtener más información sobre el Explorador de registros, consulta Descripción general del Explorador de registros y Cómo usar el Explorador de registros.

gcloud

La herramienta de línea de comandos de gcloud proporciona una interfaz de línea de comandos para Cloud Logging.

Para ver los registros de channel_activities de tu proyecto, ejecuta el siguiente comando:

gcloud logging read "logName:projects/PROJECT_ID/logs/livestream.googleapis.com%2Fchannel_activities" --project=PROJECT_ID

En el ejemplo anterior, PROJECT_ID es el ID de tu proyecto de Google Cloud.

Para obtener más información sobre el uso de la herramienta de gcloud con Cloud Logging, consulta gcloud logging

Usa registros de plataforma

Esta sección describe cómo usar e interpretar los registros de plataforma específicos para API de Live Stream.

eventStateChange

Los registros de eventStateChange se generan cuando el estado de un evento de canal cambios. El nivel de gravedad de un registro eventStateChange es ERROR cuando la El nuevo estado del evento del canal es FAILED. De lo contrario, el nivel de gravedad de una El registro eventStateChange es INFO.

El siguiente es un ejemplo de un 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

Los registros de scte35CommandReceived se generan cuando la transmisión de entrada recibe un comando SCTE35. El nivel de gravedad de un registro scte35CommandReceived es INFO.

El siguiente es un ejemplo de un 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

Los registros de streamingStateChange se generan cuando el estado de transmisión de un canal cambios. El nivel de gravedad de un registro streamingStateChange es ERROR cuando la el nuevo estado del canal es STREAMING_ERROR. De lo contrario, el nivel de gravedad de una El registro streamingStateChange es INFO.

El siguiente es un ejemplo de un registro streamingStateChange en el que la anterior el estado es STREAMING_ERROR y el estado nuevo es 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"
  ...
}

Puedes agregar comandos adicionales en el campo Consulta del Explorador de registros para acotar los registros que se muestran.

Agrega el siguiente comando para mostrar todos los registros streamingStateChange en los que el estado nuevo es STREAMING:

jsonPayload.streamingStateChange.newState="STREAMING"

Agrega el siguiente comando para mostrar solo los registros de streamingStateChange:

jsonPayload.streamingStateChange.newState:*

streamingError

Los registros de streamingError se generan cuando un canal encuentra un problema relacionado con la transmisión . El nivel de gravedad de un registro streamingError es ERROR.

El siguiente es un ejemplo de un registro de streamingError en el que la API de Live Stream se permiso denegado para subir archivos de salida al bucket de Cloud Storage especificado:

{
  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"
  ...
}

Este error también puede ocurrir si el bucket de Cloud Storage especificado no existe.

Si streamingError.message muestra el mensaje This is due to an internal error. If the error persists, please contact support team, copia los datos y envíalo al equipo de asistencia al cliente para solucionar el problema.

inputAccept

Se generan registros inputAccept cuando se conecta correctamente una transmisión de entrada al extremo de entrada de la API de Live Stream. El nivel de gravedad de inputAccept registros es INFO.

El campo inputStreamProperty de un registro inputAccept incluye lo siguiente: Información sobre las subtransmisiones de video y audio de la transmisión de entrada:

Transmisiones de video
  • index
  • códec
  • velocidad de fotogramas
  • resolution
Reproducciones de audio
  • index
  • recuento de canales
  • diseño del canal
  • información del códec

Puedes usar los registros de inputAccept para verificar el formato y el estado de aceptación del flujo 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"
  ...
}

Agrega el siguiente comando al campo Consulta del Explorador de registros para mostrarlo solo registros inputAccept para una transmisión específica:

jsonPayload.inputAccept.streamId="STREAM_ID"

donde STREAM_ID es el identificador único de una transmisión incluido en el campo input URI del extremo.

inputError

Los registros de inputError se generan cuando el API de Live Stream. El nivel de gravedad de un registro inputError es ERROR.

El siguiente es un ejemplo de un registro inputError en el que se envió una transmisión de entrada a un canal que aún no ha comenzado:

{
  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"
  ...
}

El siguiente es un ejemplo de un registro inputError en el que un flujo de entrada duplicado se envió a un canal que ya está transmitiendo:

{
  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"
  ...
}

Agrega el siguiente comando en el campo Consulta del Explorador de registros para mostrar solo Registros de inputError para una transmisión específica:

jsonPayload.inputError.streamId="STREAM_ID"

donde STREAM_ID es el identificador único de una transmisión incluido en el campo input URI del extremo.

inputDisconnect

Los registros inputDisconnect se generan cuando se desconectan las transmisiones de entrada. desde la API de Live Stream. Puedes usar los registros de inputDisconnect para verificar desconexiones inesperadas de transmisiones en vivo. El nivel de gravedad de una inputDisconnect registro es INFO.

El siguiente es un ejemplo de un 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"
  ...
}