Metrik Berbasis Log untuk Smart Home

1. Sebelum memulai

Seperti yang telah dibahas dalam codelab Men-debug Smart Home, kami memublikasikan metrik dan log ke project Smart Home Anda. Metrik membantu Anda menentukan tempat Action Smart Home Anda mengalami masalah, dan log berguna saat melakukan pembahasan mendalam untuk mengatasi masalah tersebut.

848f483bfcd2997a.png

Selain metrik yang kami sediakan untuk project Anda, Anda juga dapat membuat metrik sendiri menggunakan Metrik Berbasis Log dari Google Cloud Platform. Ini memungkinkan Anda memantau pola tertentu dalam log dan men-debug masalah kualitas secara efektif.

Prasyarat

Yang akan Anda pelajari

  • Cara menulis kueri yang efektif untuk memfilter log error Smart Home
  • Cara membuat metrik berbasis log untuk menghasilkan metrik dari kueri Anda
  • Cara membuat diagram dan dasbor dari metrik berbasis log untuk pemantauan

2. Bekerja dengan Log

Seperti yang telah kita bahas secara singkat dalam Codelab Proses Debug Smart Home, bekerja dengan log adalah kunci keberhasilan project Anda. Tersedia berbagai alat hebat di Google Cloud Platform untuk memantau dan menganalisis log Anda. Untuk mengakses semua log yang tersedia bagi project, Anda dapat menggunakan Logs Explorer.

Mengakses Log

Langkah pertama untuk mengakses log Anda adalah login ke Google Cloud Platform dan memilih project Anda. Buka Logs Explorer menggunakan menu samping, dengan membuka Operations > Logging > Logs Explorer. Setelah membuka alat, Anda akan melihat tampilan ini:

78982d8b6d19b827.png

Logs Explorer terdiri dari dua bagian utama: Bagian untuk menulis kueri Anda di bagian atas (Builder kueri), dan area untuk menampilkan hasil yang cocok (Hasil kueri).

Berbagai komponen di seluruh Google menulis log ke project Anda secara default. Untuk menemukan dan bekerja dengan log yang berasal dari integrasi Smart Home, Anda harus menulis kueri kustom.

Menulis Kueri

Log diterbitkan ke project berdasarkan jenis resource. Setiap jenis resource mewakili platform yang berbeda dalam Google. Log yang berasal dari platform Smart Home tersedia untuk project Anda pada jenis resource assistant_action_project.

Selain itu, semua log diberi tingkat keparahan saat pembuatan. Dengan log Smart Home, kami menggunakan level ERROR untuk log yang mewakili error dan pengecualian, serta level DEBUG untuk yang lainnya.

Pada contoh berikut, kita akan menulis kueri untuk memfilter log yang hanya berasal dari platform kita yang mewakili error, sebagai berikut:

753bfe72a9f8e959.png

Setelah selesai menulis kueri, klik tombol Jalankan kueri untuk memulai kueri. Perintah ini akan memunculkan error yang berasal dari integrasi Smart Home:

3ef42da5a6c322e1.png

Seperti yang Anda lihat, kami memiliki sejumlah error yang muncul beberapa kali dalam satu jam terakhir. Setiap baris mewakili satu log error. Anda selanjutnya dapat mengklik log individual dan meluaskan kolom bertingkat untuk melihat informasi yang ada di dalamnya.

Menggunakan Histogram

Logs Explorer menyediakan fitur Histogram yang berguna untuk melihat distribusi waktu log yang cocok dengan kueri Anda. Untuk mengaktifkan Histogram, klik LAYOUT HALAMAN dari tombol pojok kanan atas dan centang Histogram untuk mengaktifkan fitur.

10eaf1d204decf3c.png

Setelah diaktifkan, Anda akan melihat distribusi log yang cocok dengan kueri:

dd3410e65a83cf5d.png

Seperti yang dapat Anda lihat pada gambar di atas, kami memiliki beberapa error yang dikelompokkan menurut ketersebarannya dalam satu jam terakhir. Mereka tampaknya membentuk tiga kelompok sekitar pukul 13.45, 14.00, dan 14.15. Histogram dapat membantu Anda mendeteksi pola yang sulit dilihat dengan memeriksa nilai stempel waktu saja.

Saat ini kueri yang kita gunakan tidak membedakan antara log dan menunjukkan semua error yang berasal dari Integrasi Smart Home. Sering kali Anda mungkin ingin membedakan error, misalnya untuk melacak pola error yang berasal dari jenis atau karakteristik perangkat tertentu. Untuk melakukannya, kita akan mempelajari cara menulis kueri lanjutan.

Kueri Lanjutan

Saat memeriksa log aktivitas Smart Home, Anda akan melihat berbagai kolom tempat Anda dapat mengumpulkan informasi:

825c57c36800844e.png

action

  • trait: Targetkan fitur perangkat menurut pengguna (misalnya, OnOff, StartStop, Kecerahan)
  • actionType: Status fitur terperinci (misalnya, Aktif, Nonaktif, Jeda, Berhenti, Lanjutkan)

device

  • deviceType: Targetkan jenis perangkat berdasarkan pengguna (misalnya, Lampu, Tombol, Mesin cuci)

status

  • isSuccess: Apakah hasil tindakan dianggap berhasil (true / false)
  • statusType: Kode status untuk hasil tindakan (menunjukkan kode error jika gagal)
  • externalDebugString: String debug untuk tindakan (menjelaskan error secara mendetail)

Kolom lainnya

Ada juga kolom tambahan tempat Anda dapat memperoleh informasi:

  • requestId: ID unik yang terkait dengan permintaan (dibuat oleh Google)
  • executionType: Jalur yang digunakan oleh permintaan (menunjukkan apakah Cloud atau Lokal)
  • latencyMsec: Latensi yang dirasakan untuk permintaan di Server Google (dalam milidetik)
  • locale: Dari pasangan bahasa/wilayah mana permintaan akan dikirim (misalnya, en-US, fr-FR)

Dengan menggunakan kolom fitur dari daftar di atas, kita akan memodifikasi kueri untuk hanya menyertakan error yang berasal dari fitur OnOff sebagai berikut:

resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

Setelah menjalankan kueri yang diperbarui, sistem akan mengidentifikasi log dan menampilkan hasil yang sesuai:

76176d7a41962341.png

Sejauh ini kita telah melakukan semua kueri secara manual. Ini adalah cara terbaik untuk memeriksa status error dengan cepat, tetapi tidak cukup baik untuk memantau perubahan pola error dari waktu ke waktu. Untuk mengotomatiskan alur ini dan mengambil data dari jangka waktu yang lebih lama, kita akan membuat metrik berbasis log.

3. Metrik Berbasis Log

Untuk menghitung jumlah log yang cocok dengan kueri Anda dari waktu ke waktu, Anda dapat menggunakan metrik berbasis log. Tindakan ini memungkinkan Anda melihat pola dan di seluruh log serta memberikan analisis yang baik tentang masalah yang mendasarinya.

Membuat Metrik Berbasis Log

Untuk membuat metrik berbasis log, buka Operasi > Logging > Metrik Berbasis Log. Ini akan menampilkan daftar metrik berbasis log yang sudah tersedia di project Anda. Setelah mengklik tombol BUAT METRIK, Anda akan melihat layar pembuatan metrik berbasis log:

296af6e7d8dcf6cf.png

Ada dua jenis metrik utama: Metrik penghitung menghitung jumlah log yang cocok dengan kueri Anda. Metrik distribusi melacak distribusi yang mendasarinya dan memungkinkan operasi statistik seperti persentil ke-95, median, dan rata-rata.

Scroll ke bawah, Anda akan melihat bagian filter tempat mengetik kueri.

f7f2093fa1bce2ac.png

Kita akan menempelkan kueri dari bagian sebelumnya di area teks Build filter.

​​resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

Anda juga dapat mengklik tombol PRATINJAU LOG untuk melihat tampilan cepat log sebelumnya yang cocok dengan filter Anda. Setelah selesai, Anda dapat mengklik tombol BUAT METRIK dan lanjut ke bagian berikutnya.

Melihat Data Metrik Berbasis Log

Setelah metrik berbasis log kami dibuat, metrik tersebut akan tersedia di bagian Metrik yang ditentukan pengguna di halaman Metrik berbasis log.

1b2c88c18533fbcd.png

Dari menu yang sesuai dengan metrik berbasis log (3 titik), pilih Lihat di Metrics Explorer untuk melihat data yang dikumpulkan dalam metrik berbasis log:

54a836fdc3a666a3.png

Begitu terjadi error baru, error tersebut akan dicatat oleh metrik berbasis log dan ditampilkan di jendela diagram dalam Metrics Explorer.

Memantau melalui Dasbor Kustom

Setelah melihat metrik berbasis log baru berfungsi sebagaimana mestinya, kini saatnya menyimpan tampilan diagram ini ke dalam dasbor kustom. Untuk itu, klik tombol Simpan Chart di pojok kanan atas Metrics Explorer. Tindakan ini akan memunculkan perintah untuk memberi nama diagram dan memilih Dasbor yang ingin Anda gunakan untuk menyimpan:

52329085f841782e.png

Setelah kita menyimpan diagram di dasbor, kita dapat mengaksesnya dengan mudah dari sana. Untuk mengakses daftar dasbor yang tersedia di project Anda, buka Operasi > Pemantauan > Dasbor.

44961e7cb3663341.png

Kita telah menyimpan diagram di dasbor bernama "Dasbor Codelab". Jika dibuka, akan terlihat tampilan berikut:

f7e025c27f30f996.png

Seperti yang Anda lihat, diagram yang mewakili metrik berbasis log ditampilkan di sini, beserta data yang baru dikumpulkan. Log smart home diterbitkan ke project Anda secara realtime. Saat log baru tersedia, Anda akan segera melihatnya dihitung dengan metrik berbasis log.

4. Selamat

674c4f4392e98c1.png

Selamat! Anda telah berhasil mempelajari cara mengubah kueri menjadi metrik berbasis log dan menyimpannya ke dasbor kustom untuk pemantauan.

Langkah berikutnya

Dari Codelab ini, coba latihan berikut dan jelajahi resource tambahan:

  • Lihat panduan Membuat Metrik Distribusi untuk membuat metrik berbasis log di kolom numerik seperti latensi.
  • Tinjau Contoh Library Kueri yang disediakan oleh Google Cloud untuk melihat beberapa filter kompleks yang dapat Anda gunakan untuk metrik berbasis log.