Halaman ini menjelaskan cara menggunakan log platform yang dihasilkan oleh Live Stream API sebagai bagian dari Cloud Logging. Live Stream API menggunakan nama layanan Logging API
livestream.googleapis.com
untuk mencatat aktivitas terkait channel.
Sebelum memulai
- Pastikan Anda memiliki izin dan peran IAM yang benar untuk melihat dan mengelola log.
Mengaktifkan logging platform
Secara default, log platform livestream.googleapis.com/channel_activities
untuk
Live Stream API dinonaktifkan. Untuk mengaktifkan log, Anda harus menentukan
level keparahan saat membuat atau memperbarui resource saluran.
Untuk mengaktifkan log, tambahkan kolom berikut ke isi JSON permintaan metode
projects.locations.channels.create
atau
projects.locations.channels.patch
:
"logConfig": { "logSeverity": "SEVERITY_LEVEL" },
dengan SEVERITY_LEVEL
adalah salah satu dari berikut ini:
OFF
DEBUG
INFO
WARNING
ERROR
Setelah Anda memilih tingkat keparahan log untuk saluran, hanya log platform dengan tingkat keparahan yang lebih tinggi dari atau sama dengan tingkat keparahan yang dipilih yang akan dicatat ke dalam log.
Misalnya, jika tingkat keparahannya adalah WARNING
, hanya log dengan tingkat keparahan
WARNING
dan ERROR
yang dicatat ke dalam log. Jika tingkat keparahannya adalah INFO
, log dari semua tingkat keparahan kecuali DEBUG
akan dicatat dalam log.
Untuk informasi selengkapnya tentang tingkat keparahan log, lihat LogSeverity.
Melihat log platform
Untuk melihat log platform, ikuti petunjuk di bawah:
Konsol
Untuk melihat log platform di konsol Google Cloud:
Buka Logs Explorer:
Pilih project Google Cloud yang sesuai.
Di kolom Query, masukkan perintah kueri berikut:
resource.labels.channel_id=CHANNEL_ID resource.labels.location=LOCATION logName="projects/PROJECT_ID/logs/livestream.googleapis.com%2Fchannel_activities"
dengan:
CHANNEL_ID
adalah ID channel yang ingin Anda debug atau pantau. Contoh,my-channel
.LOCATION
adalah lokasi saluran yang ingin Anda debug atau pantau. Contoh,us-central1
.PROJECT_ID
adalah ID project yang berisi saluran yang ingin Anda debug atau pantau. Contoh,my-project
.
Klik Run query.
Untuk mengetahui informasi selengkapnya tentang Logs Explorer, lihat Ringkasan Logs Explorer dan Menggunakan Logs Explorer.
gcloud
Alat command line gcloud menyediakan antarmuka command line ke Cloud Logging.
Untuk melihat log channel_activities
untuk project Anda, jalankan perintah berikut:
gcloud logging read "logName:projects/PROJECT_ID/logs/livestream.googleapis.com%2Fchannel_activities" --project=PROJECT_ID
dengan PROJECT_ID
sebagai project ID Google Cloud Anda.
Untuk mengetahui informasi selengkapnya tentang penggunaan alat gcloud dengan Cloud Logging, lihat
gcloud logging
.
Menggunakan log platform
Bagian ini menjelaskan cara menggunakan dan menafsirkan log platform tertentu untuk Live Stream API.
eventStateChange
Log eventStateChange
dibuat saat status peristiwa saluran berubah. Tingkat keparahan log eventStateChange
adalah ERROR
saat
status baru peristiwa saluran adalah FAILED
. Jika tidak, tingkat keparahan log
eventStateChange
adalah INFO
.
Berikut adalah contoh log 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
Log scte35CommandReceived
dibuat saat aliran input menerima
perintah SCTE35. Tingkat keparahan untuk log scte35CommandReceived
adalah INFO
.
Hanya durationFlag
, breakDuration
, spliceTime
, dan outOfNetworkIndicator
yang diproses. Jika spliceTime
tidak ada, perintah SCTE35 akan segera
dieksekusi. Semua kolom lainnya diperlakukan sebagai no-ops.
Berikut adalah contoh log 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 outOfNetworkIndicator: true programSpliceFlag: true spliceEventCancelIndicator: false spliceEventId: 123456789 spliceImmediateFlag: true spliceTime: null uniqueProgramId: 5 } } } message: "Received inband SCTE35 command, eventID=123456789." } ... severity: "INFO" ... }
streamingStateChange
Log streamingStateChange
dibuat saat status streaming channel
berubah. Tingkat keparahan log streamingStateChange
adalah ERROR
saat
status baru saluran adalah STREAMING_ERROR
. Jika tidak, tingkat keparahan log
streamingStateChange
adalah INFO
.
Berikut adalah contoh log streamingStateChange
dengan status sebelumnya
STREAMING_ERROR
dan status baru 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" ... }
Anda dapat menambahkan perintah tambahan di kolom Kueri Logs Explorer untuk mempersempit log yang ditampilkan.
Tambahkan perintah berikut untuk menampilkan semua log streamingStateChange
dengan status baru STREAMING
:
jsonPayload.streamingStateChange.newState="STREAMING"
Tambahkan perintah berikut untuk hanya menampilkan log streamingStateChange
:
jsonPayload.streamingStateChange.newState:*
streamingError
Log streamingError
dibuat saat channel mengalami error terkait streaming. Tingkat keparahan log dari log streamingError
adalah ERROR
.
Berikut adalah contoh log streamingError
saat Live Stream API menolak izin untuk mengupload file output ke bucket Cloud Storage yang ditentukan:
{ 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" ... }
Error ini juga dapat terjadi jika bucket Cloud Storage yang ditentukan tidak ada.
Jika streamingError.message
menampilkan pesan This is due to an internal
error. If the error persists, please contact support team
, salin konten log dan kirim ke tim dukungan untuk pemecahan masalah.
inputAccept
Log inputAccept
dibuat saat aliran input berhasil terhubung
ke endpoint input Live Stream API. Tingkat keparahan log inputAccept
adalah INFO
.
Kolom inputStreamProperty
dalam log inputAccept
menyertakan informasi
berikut tentang sub-aliran video dan audio dari aliran input:
Streaming video |
|
Streaming audio |
|
Anda dapat menggunakan log inputAccept
untuk memverifikasi format dan status penerimaan
aliran input:
{ 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" ... }
Tambahkan perintah berikut di kolom Query Logs Explorer untuk hanya menampilkan log inputAccept
untuk aliran tertentu:
jsonPayload.inputAccept.streamId="STREAM_ID"
dengan STREAM_ID
adalah ID unik untuk streaming yang disertakan dalam URI endpoint input.
inputError
Log inputError
dibuat saat aliran input ditolak oleh
Live Stream API. Tingkat keparahan untuk log inputError
adalah ERROR
.
Berikut adalah contoh log inputError
saat aliran input dikirim
ke saluran yang belum dimulai:
{ 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" ... }
Berikut adalah contoh log inputError
saat stream input duplikat
dikirim ke saluran yang sudah melakukan streaming:
{ 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" ... }
Tambahkan perintah berikut di kolom Query Logs Explorer untuk hanya menampilkan log inputError
untuk aliran tertentu:
jsonPayload.inputError.streamId="STREAM_ID"
dengan STREAM_ID
adalah ID unik untuk streaming yang disertakan dalam URI endpoint input.
inputDisconnect
Log inputDisconnect
dibuat saat aliran input terputus
dari Live Stream API. Anda dapat menggunakan log inputDisconnect
untuk memeriksa
pemutusan koneksi live stream yang tidak terduga. Tingkat keparahan untuk log inputDisconnect
adalah INFO
.
Berikut adalah contoh log 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" ... }