Plattformlogs verwenden

Auf dieser Seite wird beschrieben, wie Sie Plattformlogs verwenden, die von der Live Stream API im Rahmen von Cloud Logging generiert werden. Die Live Stream API verwendet den Logging API-Dienstnamen livestream.googleapis.com, um kanalbezogene Aktivitäten zu protokollieren.

Hinweise

Plattform-Logging aktivieren

Standardmäßig sind die livestream.googleapis.com/channel_activities-Plattformlogs für die Live Stream API deaktiviert. Zum Aktivieren der Logs müssen Sie beim Erstellen oder Aktualisieren der Kanalressource einen Schweregrad angeben.

Fügen Sie dem JSON-Anfragetext der Methode projects.locations.channels.create oder projects.locations.channels.patch das folgende Feld hinzu, um die Logs zu aktivieren:

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

Dabei kann SEVERITY_LEVEL für folgendes stehen:

  • OFF
  • DEBUG
  • INFO
  • WARNING
  • ERROR

Nachdem Sie einen Logschweregrad für einen Kanal ausgewählt haben, werden nur die Plattformlogs mit einer Wichtigkeitsstufe protokolliert, die größer oder gleich der ausgewählten Wichtigkeitsstufe ist. Wenn die Wichtigkeitsstufe beispielsweise WARNING lautet, werden nur Logs mit den Schweregraden WARNING und ERROR protokolliert. Wenn die Wichtigkeitsstufe INFO ist, werden Logs aller Schweregrade mit Ausnahme von DEBUG protokolliert.

Weitere Informationen zu Logschweregraden finden Sie unter LogSeverity.

Plattformlogs ansehen

So rufen Sie Plattformlogs auf:

Console

So rufen Sie Plattformlogs in der Google Cloud Console auf:

  1. Rufen Sie den Log-Explorer auf:

    Zu „Log-Explorer“

  2. Wählen Sie das entsprechende Google Cloud-Projekt aus.

  3. Geben Sie im Feld Abfrage den folgenden Abfragebefehl ein:

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

    Dabei gilt:

    • CHANNEL_ID ist die ID des Kanals, den Sie debuggen oder überwachen möchten. Beispiel: my-channel

    • LOCATION ist der Speicherort des Kanals, den Sie debuggen oder überwachen möchten. Beispiel: us-central1

    • PROJECT_ID ist die ID des Projekts mit dem Kanal, den Sie debuggen oder überwachen möchten. Beispiel: my-project

  4. Klicken Sie auf Abfrage ausführen.

Weitere Informationen zum Log-Explorer finden Sie unter Übersicht über den Log-Explorer und Log-Explorer verwenden.

gcloud

Das gcloud-Befehlszeilentool bietet eine Befehlszeile für Cloud Logging.

Führen Sie den folgenden Befehl aus, um die channel_activities-Logs für Ihr Projekt aufzurufen:

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

Dabei ist PROJECT_ID die ID des Google Cloud-Projekts.

Weitere Informationen zur Verwendung des gcloud-Tools mit Cloud Logging finden Sie unter gcloud logging.

Plattformlogs verwenden

In diesem Abschnitt wird beschrieben, wie Sie bestimmte Plattformlogs für die Live Stream API verwenden und interpretieren.

StreamingStateChange

StreamingStateChange-Logs werden generiert, wenn sich der Streamingstatus eines Kanals ändert. Die Wichtigkeitsstufe eines StreamingStateChange-Logs ist ERROR, wenn der neue Status des Kanals STREAMING_ERROR ist. Andernfalls ist die Wichtigkeitsstufe eines StreamingStateChange-Logs INFO.

Das folgende Beispiel zeigt ein StreamingStateChange-Log, bei dem der vorherige Status STREAMING_ERROR und der neue Status STREAMING ist:

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

Sie können zusätzliche Befehle im Feld Abfrage des Log-Explorers hinzufügen, um die angezeigten Logs einzugrenzen.

Fügen Sie den folgenden Befehl hinzu, um alle StreamingStateChange-Logs mit dem neuen Status STREAMING aufzurufen:

jsonPayload.streamingStateChange.newState="STREAMING"

Fügen Sie den folgenden Befehl hinzu, um nur StreamingStateChange-Logs anzuzeigen:

jsonPayload.streamingStateChange.newState:*

StreamingError

StreamingError-Logs werden generiert, wenn in einem Kanal ein Streaming-Fehler auftritt. Die Wichtigkeitsstufe eines StreamingError-Logs ist ERROR.

Das folgende Beispiel zeigt ein StreamingError-Log, in dem der Live Stream API die Berechtigung zum Hochladen von Ausgabedateien in den angegebenen Cloud Storage-Bucket verweigert wurde:

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

Dieser Fehler kann auch auftreten, wenn der angegebene Cloud Storage-Bucket nicht vorhanden ist.

Wenn streamingError.message die Meldung This is due to an internal error. If the error persists, please contact support team anzeigt, kopieren Sie den Inhalt des Logs und senden Sie ihn zur Fehlerbehebung an das Supportteam.

InputAccept

InputAccept-Logs werden generiert, wenn ein Eingabestream erfolgreich mit dem Eingabeendpunkt der Live Stream API verbunden wurde. Die Wichtigkeitsstufe von InputAccept-Logs ist INFO.

Das Feld InputStreamProperty in einem InputAccept-Log enthält die folgenden Informationen zu den Video- und Audiounterstreams des Eingabestreams:

Videostreams
  • index
  • Codec
  • Framerate
  • Auflösung
Audiostreams
  • index
  • Kanalanzahl
  • Kanallayout
  • Codec-Informationen

Mit InputAccept-Logs können Sie das Format und den Akzeptanzstatus des Eingabestreams prüfen:

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

Fügen Sie den folgenden Befehl in das Feld Abfrage des Log-Explorers ein, um nur InputAccept-Logs für einen bestimmten Stream anzuzeigen:

jsonPayload.inputAccept.streamId="STREAM_ID"

Dabei ist STREAM_ID die eindeutige Kennung für einen Stream, der im Eingabeendpunkt-URI enthalten ist.

InputError

InputError-Logs werden generiert, wenn ein Eingabestream von der Live Stream API abgelehnt wird. Die Wichtigkeitsstufe für ein InputError-Log ist ERROR.

Das folgende Beispiel zeigt ein InputError-Log, bei dem ein Eingabestream an einen noch nicht gestarteten Kanal gesendet wurde:

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

Das folgende Beispiel zeigt ein InputError-Log, bei dem ein doppelter Eingabestream an einen bereits gestreamten Kanal gesendet wurde:

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

Fügen Sie den folgenden Befehl in das Feld Abfrage des Log-Explorers ein, um nur InputError-Logs für einen bestimmten Stream anzuzeigen:

jsonPayload.inputError.streamId="STREAM_ID"

Dabei ist STREAM_ID die eindeutige Kennung für einen Stream, der im Eingabeendpunkt-URI enthalten ist.

InputDisconnect

InputDisconnect-Logs werden generiert, wenn die Eingabestreams von der Live Stream API getrennt werden. Sie können InputDisconnect-Logs verwenden, um nach unerwarteten Verbindungen von Livestreams zu suchen. Die Wichtigkeitsstufe für ein InputDisconnect-Log ist INFO.

Das folgende Beispiel zeigt ein InputDisconnect-Log:

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