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:
OFFDEBUGINFOWARNINGERROR
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 Google Cloud konsol:
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_IDadalah ID channel yang ingin Anda debug atau pantau. Contoh,my-channel.LOCATIONadalah lokasi saluran yang ingin Anda debug atau pantau. Contoh,us-central1.PROJECT_IDadalah 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 ID untuk project 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 kirimkan 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
streaming 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"
...
}