プラットフォーム ログの使用

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このページでは、Cloud Logging の一部として Live Stream API によって生成されたプラットフォーム ログを使用する方法について説明します。Live Stream API は、Logging API サービス名 livestream.googleapis.com を使用してチャンネル関連のアクティビティを記録します。

始める前に

  • ログを表示して管理するための適切な IAM 権限とロールがあることを確認します。

プラットフォーム ロギングを有効にする

デフォルトでは、Live Stream API の livestream.googleapis.com/channel_activities プラットフォーム ログは無効になります。ログを有効にするには、チャネル リソースを作成または更新するときに重大度を指定する必要があります。

ログを有効にするには、projects.locations.channels.create または projects.locations.channels.patch メソッドのリクエスト JSON 本文に次のフィールドを追加します。

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

ここで、SEVERITY_LEVEL は次のいずれかです。

  • OFF
  • DEBUG
  • INFO
  • WARNING
  • ERROR

チャンネルのログ重大度を選択すると、選択した重大度以上のプラットフォーム ログのみが記録されます。たとえば、重大度が WARNING の場合、重大度が WARNINGERROR のログのみがログに記録されます。重大度が INFO の場合、DEBUG を除くすべての重大度のログが記録されます。

ログの重大度レベルの詳細については、LogSeverity をご覧ください。

プラットフォーム ログを表示する

プラットフォーム ログを表示するには、以下の手順を行います。

Console

Google Cloud Console でプラットフォーム ログを表示するには:

  1. ログ エクスプローラに移動します。

    ログ エクスプローラに移動

  2. 適切な Cloud プロジェクトを選択します。

  3. [クエリ] フィールドに次のクエリコマンドを入力します。

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

    ここで

    • CHANNEL_ID は、デバッグまたはモニタリングするチャンネルの ID です。例: my-channel

    • LOCATION は、デバッグまたはモニタリングするチャネルのロケーションです。例: us-central1

    • PROJECT_ID は、デバッグまたはモニタリングするチャネルを含むプロジェクトの ID です。例: my-project

  4. [クエリを実行] をクリックします。

ログ エクスプローラの詳細については、ログ エクスプローラの概要ログ エクスプローラの使用をご覧ください。

gcloud

gcloud コマンドライン ツールは、Cloud Logging へのコマンドライン インターフェースを提供します。

プロジェクトの channel_activities ログを表示するには、次のコマンドを実行します。

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

ここで、PROJECT_ID は Google Cloud プロジェクトの ID です。

Cloud Logging で gcloud ツールを使用する方法については、gcloud logging をご覧ください。

プラットフォーム ログを使用する

このセクションでは、Live Stream API で特定のプラットフォーム ログを使用および解釈する方法について説明します。

StreamingState の変更

StreamingStateChange ログは、チャンネルのストリーミング状態が変化したときに生成されます。チャネルの新しい状態が STREAMING_ERROR の場合、StreamingStateChange ログの重大度レベルは ERROR です。それ以外の場合、StreamingStateChange ログの重大度は INFO になります。

以下に StreamingStateChange ログの例を示します。この例では、以前の状態が STREAMING_ERROR で、新しい状態が 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"
  ...
}

ログ エクスプローラの [クエリ] フィールドにコマンドを追加して、表示されるログを絞り込むことができます。

次のコマンドを追加して、新しい状態が STREAMING であるすべての StreamingStateChange ログを表示します。

jsonPayload.streamingStateChange.newState="STREAMING"

StreamingStateChange ログのみを表示するには、次のコマンドを追加します。

jsonPayload.streamingStateChange.newState:*

ストリーミング エラー

StreamingError ログは、チャンネルでストリーミング関連のエラーが発生した場合に生成されます。StreamingError ログのログの重大度は ERROR です。

以下は、指定した Cloud Storage バケットに出力ファイルをアップロードする Live Stream API が拒否された StreamingError ログの例です。

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

このエラーは、指定した Cloud Storage バケットが存在しない場合にも発生することがあります。

streamingError.message というメッセージが This is due to an internal error. If the error persists, please contact support team に表示された場合は、ログの内容をコピーし、サポートチームに送信してトラブルシューティングを行ってください。

InputAccept

InputAccept ログは、入力ストリームが Live Stream API 入力エンドポイントに正常に接続されると生成されます。InputAccept ログの重大度レベルは INFO です。

InputAccept ログの InputStreamProperty フィールドには、入力ストリームの動画と音声のサブストリームに関する次の情報が表示されます。

動画ストリーム
  • index
  • コーデック
  • フレームレート
  • resolution
オーディオ ストリーム
  • index
  • チャンネル数
  • チャンネル レイアウト
  • コーデック情報

InputAccept ログを使用して、入力ストリームの形式と承認ステータスを確認できます。

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

ログ エクスプローラの [クエリ] フィールドに次のコマンドを追加して、特定のストリームの InputAccept ログのみを表示します。

jsonPayload.inputAccept.streamId="STREAM_ID"

STREAM_ID は、入力エンドポイント URI に含まれるストリームの一意の識別子です。

入力エラー

InputError ログは、入力ストリームが Live Stream API によって拒否されたときに生成されます。InputError ログの重大度は ERROR です。

次の InputError ログの例では、まだ開始していないチャネルに入力ストリームが送信されます。

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

以下に InputError ログの例を示します。この例では、重複した入力ストリームがすでにストリーミング中のチャンネルに送信されています。

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

ログ エクスプローラの [クエリ] フィールドに次のコマンドを追加して、特定のストリームの InputError ログのみを表示します。

jsonPayload.inputError.streamId="STREAM_ID"

STREAM_ID は、入力エンドポイント URI に含まれるストリームの一意の識別子です。

入力接続を解除

InputDisconnect ログは、入力ストリームが Live Stream API から切断されたときに生成されます。InputDisconnect ログを使用すると、予期しないライブ ストリームの切断を確認できます。InputDisconnect ログの重大度レベルは INFO です。

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