このページでは、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
の場合、重大度レベルが WARNING
と ERROR
のログのみがログに記録されます。重大度が INFO
の場合、DEBUG
を除くすべての重大度レベルのログがログに記録されます。
ログの重大度の詳細については、LogSeverity をご覧ください。
プラットフォームのログを表示する
プラットフォームのログを表示するには、次の手順に沿って操作します。
Console
Google Cloud コンソールでプラットフォーム ログを表示するには:
ログ エクスプローラに移動します。
適切な Google Cloud プロジェクトを選択します。
[クエリ] フィールドに次のクエリコマンドを入力します。
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
。
[クエリを実行] をクリックします。
ログ エクスプローラの詳細については、ログ エクスプローラの概要とログ エクスプローラの使用をご覧ください。
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 の特定のプラットフォーム ログを使用および解釈する方法について説明します。
StreamingStateChange
StreamingStateChange
ログは、チャネルのストリーミング状態が変更されたときに生成されます。チャネルの新しい状態が STREAMING_ERROR
の場合、StreamingStateChange
ログの重大度は ERROR
です。それ以外の場合、StreamingStateChange
ログの重大度は INFO
です。
以下に、前の状態が STREAMING_ERROR
で、新しい状態が STREAMING
である StreamingStateChange
ログの例を示します。
{ 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
ログは、チャネルがストリーミング関連のエラーを検出したときに生成されます。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
入力ストリームが Live Stream API 入力エンドポイントに正常に接続されると、InputAccept
ログが生成されます。InputAccept
ログの重大度は INFO
です。
InputAccept
ログの InputStreamProperty
フィールドには、入力ストリームの動画と音声のサブストリームに関する次の情報が含まれます。
動画ストリーム |
|
音声ストリーム |
|
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
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
ログを使用して、予期しないライブ ストリームの切断を確認できます。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" ... }