Menggunakan log platform

Halaman ini menjelaskan cara menggunakan log platform yang dibuat oleh Live Stream API sebagai bagian dari Cloud Logging. Live Stream API menggunakan nama layanan Logging API livestream.googleapis.com untuk mencatat aktivitas terkait saluran ke dalam log.

Sebelum memulai

Aktifkan logging platform

Secara default, log platform livestream.googleapis.com/channel_activities untuk Live Stream API dinonaktifkan. Untuk mengaktifkan log, Anda harus menentukan tingkat keparahan saat membuat atau mengupdate 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 untuk semua tingkat keparahan akan dicatat ke dalam log, kecuali untuk DEBUG.

Untuk mengetahui informasi selengkapnya tentang tingkat keparahan log, lihat LogSeverity.

Lihat log platform

Untuk melihat log platform, ikuti petunjuk di bawah:

Konsol

Untuk melihat log platform di konsol Google Cloud:

  1. Buka Logs Explorer:

    Buka Logs Explorer

  2. Pilih project Google Cloud yang sesuai.

  3. 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 saluran yang ingin Anda debug atau pantau. Misalnya, my-channel.

    • LOCATION adalah lokasi saluran yang ingin Anda debug atau pantau. Misalnya, us-central1.

    • PROJECT_ID adalah ID project yang berisi saluran yang ingin Anda debug atau pantau. Misalnya, my-project.

  4. Klik Jalankan kueri.

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 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 lebih lanjut tentang cara menggunakan 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.

StreamingStateChange

Log StreamingStateChange dibuat saat status streaming saluran berubah. Tingkat keparahan log StreamingStateChange adalah ERROR jika status baru saluran adalah STREAMING_ERROR. Jika tidak, tingkat keparahan log StreamingStateChange adalah INFO.

Berikut adalah contoh log StreamingStateChange dengan status sebelumnya adalah STREAMING_ERROR dan status baru adalah 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 lain di kolom Query Logs Explorer untuk mempersempit log yang ditampilkan.

Tambahkan perintah berikut untuk menampilkan semua log StreamingStateChange dengan status baru adalah STREAMING:

jsonPayload.streamingStateChange.newState="STREAMING"

Tambahkan perintah berikut untuk hanya menampilkan log StreamingStateChange:

jsonPayload.streamingStateChange.newState:*

StreamingError

Log StreamingError dibuat saat saluran mengalami error terkait streaming. Tingkat keparahan log log StreamingError adalah ERROR.

Berikut adalah contoh log StreamingError yang izin Live Stream API ditolak 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 GCS 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 stream input berhasil dihubungkan ke endpoint input Live Stream API. Tingkat keparahan log InputAccept adalah INFO.

Kolom InputStreamProperty dalam log InputAccept menyertakan informasi berikut tentang sub-streaming video dan audio dari streaming input:

Streaming video
  • index
  • kodek
  • kecepatan frame
  • resolusi
Streaming audio
  • index
  • jumlah channel
  • tata letak channel
  • informasi codec

Anda dapat menggunakan log InputAccept untuk memverifikasi format dan status penerimaan aliran data 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 data tertentu:

jsonPayload.inputAccept.streamId="STREAM_ID"

dengan STREAM_ID adalah ID unik untuk aliran data yang disertakan dalam URI endpoint input.

InputError

Log InputError dibuat saat streaming input ditolak oleh Live Stream API. Tingkat keparahan untuk log InputError adalah ERROR.

Berikut adalah contoh log InputError tempat 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 tempat streaming input duplikat dikirim ke saluran yang sudah di-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 agar hanya menampilkan log InputError untuk aliran data tertentu:

jsonPayload.inputError.streamId="STREAM_ID"

dengan STREAM_ID adalah ID unik untuk aliran data yang disertakan dalam URI endpoint input.

InputDisconnect

Log InputDisconnect dibuat saat streaming input terputus dari Live Stream API. Anda dapat menggunakan log InputDisconnect untuk memeriksa pemutusan 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"
  ...
}