Usa registros de plataforma

En esta página, se describe cómo usar los registros de plataforma que genera 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 la plataforma

De forma predeterminada, se desactivan los registros de la plataforma livestream.googleapis.com/channel_activities de la API de Live Stream. Para activar los registros, debes especificar un nivel de gravedad cuando creas o actualizas el recurso del canal.

Para activar los registros, agrega el siguiente campo al cuerpo JSON de la solicitud del método projects.locations.channels.create o 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 eliges un nivel de gravedad de registro para un canal, solo se registran los registros de la plataforma con un nivel de gravedad superior o igual al seleccionado. Por ejemplo, si el nivel de gravedad es WARNING, solo se registran los registros con nivel de gravedad WARNING y ERROR. Si el nivel de gravedad es INFO, se registran los registros de todos los niveles de gravedad, excepto DEBUG.

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

Ver registros de plataforma

Para ver los registros de la plataforma, sigue estas instrucciones:

Consola

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 Usa 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 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

En esta sección, se describe cómo interpretar y usar los registros de plataforma específicos de la API de Live Stream.

StreamingStateChange

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

El siguiente es un ejemplo de un registro StreamingStateChange en el que el estado anterior 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 restringir los registros que se muestran.

Agrega el siguiente comando para mostrar todos los registros StreamingStateChange en los que el estado nuevo sea STREAMING:

jsonPayload.streamingStateChange.newState="STREAMING"

Agrega el siguiente comando para mostrar solo los registros StreamingStateChange:

jsonPayload.streamingStateChange.newState:*

StreamingError

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

El siguiente es un ejemplo de un registro StreamingError en el que se denegó el permiso de la API de Live Stream 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 GCS 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 el contenido del registro y envíalo al equipo de asistencia al cliente para que solucione el problema.

InputAccept

Los registros InputAccept se generan cuando una transmisión de entrada se conecta de forma correcta al extremo de entrada de la API de Live Stream. El nivel de gravedad de los registros de InputAccept es INFO.

El campo InputStreamProperty en un registro InputAccept incluye la siguiente información sobre las subtransmisiones de audio y video de la transmisión de entrada:

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

Puedes usar los registros 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 en el campo Consulta del Explorador de registros para mostrar solo los registros InputAccept de una transmisión específica:

jsonPayload.inputAccept.streamId="STREAM_ID"

En el ejemplo anterior, STREAM_ID es el identificador único de una transmisión incluida en el URI del extremo de entrada.

InputError

Los registros InputError se generan cuando la API de Live Stream rechaza una transmisión de entrada. El nivel de gravedad de un registro de 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 comenzó:

{
  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 se envió una transmisión de entrada duplicada 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 los registros InputError de una transmisión específica:

jsonPayload.inputError.streamId="STREAM_ID"

En el ejemplo anterior, STREAM_ID es el identificador único de una transmisión incluida en el URI del extremo de entrada.

InputDisconnect

Los registros InputDisconnect se generan cuando las transmisiones de entrada se desconectan de la API de Live Stream. Puedes usar los registros InputDisconnect para verificar si hay desconexiones inesperadas de la transmisión en vivo. El nivel de gravedad de un registro InputDisconnect 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"
  ...
}