Memecahkan masalah error integrasi

Google Cloud menyediakan alat untuk memantau keandalan project Anda dengan Google Cloud Monitoring dan men-debug masalah dengan log error Google Cloud Logging. Setiap kali kegagalan terjadi saat memenuhi intent pengguna, pipeline Analytics Google Home akan mencatat kegagalan tersebut pada metrik Anda, dan memublikasikan log error dalam log project Anda.

Ada dua langkah untuk memecahkan masalah error:

  1. Pantau status project Anda dengan metrik smart home.
  2. Selidiki masalah dengan memeriksa deskripsi error yang mendetail di log error.

Prosesnya mirip dengan integrasi lokal yang menggunakan Local Home SDK. Setelah menguasai alur pemecahan masalah, Anda dapat dengan mudah beralih antara metrik dan log untuk mendapatkan insight tentang error.

Memantau error

Anda dapat menggunakan Google Cloud Monitoring dashboard untuk mengakses metrik project Anda. Ada beberapa diagram utama yang sangat berguna untuk memantau kualitas dan proses debug:

  • Diagram Tingkat Keberhasilan adalah diagram pertama yang dimulai saat Anda memantau keandalan project. Penurunan dalam diagram ini dapat menunjukkan gangguan layanan untuk sebagian atau semua basis pengguna Anda. Sebaiknya pantau dengan cermat diagram ini untuk menemukan penyimpangan setelah setiap perubahan atau pembaruan pada project Anda.
  • Diagram Latensi Persentil ke-95 adalah indikator penting tentang performa Action smart home bagi pengguna. Fluktuasi yang tiba-tiba dalam diagram ini dapat mengindikasikan bahwa sistem Anda mungkin tidak dapat memenuhi permintaan tersebut. Sebaiknya periksa diagram ini secara berkala untuk melihat perilaku yang tidak terduga.
  • Diagram Pengelompokan Error sangat berguna untuk memecahkan masalah integrasi Anda. Untuk setiap error yang ditandai dalam diagram persentase keberhasilan, kode error akan ditampilkan dalam perincian error Anda. Anda dapat melihat error yang ditandai oleh Google Home platform dan cara memecahkan masalahnya di tabel di bawah.

Kode Error Platform

Berikut adalah beberapa kode error umum yang mungkin Anda lihat di log project untuk mengidentifikasi masalah yang tertangkap oleh Google Home platform. Lihat tabel berikut untuk mengetahui informasi pemecahan masalah.

Kode Error Deskripsi
BACKEND_FAILURE_URL_ERROR Google telah menerima kode error HTTP 4xx selain 401 dari layanan Anda.

Gunakan requestId di Logging GCP untuk memeriksa log layanan smart home Anda.
BACKEND_FAILURE_URL_TIMEOUT Waktu permintaan Google habis saat mencoba menjangkau layanan Anda.

Pastikan layanan Anda online, menerima koneksi, dan tidak melebihi kapasitas. Selain itu, pastikan perangkat target telah dinyalakan, online, dan disinkronkan.
BACKEND_FAILURE_URL_UNREACHABLE Google telah menerima kode error HTTP 5xx dari layanan Anda.

Gunakan requestId di Logging GCP untuk memeriksa log layanan smart home Anda.
DEVICE_NOT_FOUND Perangkat tidak ada di sisi layanan partner.

Hal ini biasanya menunjukkan kegagalan dalam sinkronisasi data atau kondisi race.
GAL_BAD_3P_RESPONSE Google tidak dapat mengurai respons dari layanan penautan akun Anda karena format atau nilai yang tidak valid dalam payload.

Gunakan requestId di Logging GCP untuk memeriksa log error di layanan penautan akun Anda.
GAL_INTERNAL Terjadi error internal Google saat Google mencoba mengambil token akses.

Jika tingkat error ini meningkat dalam Logging GCP, hubungi kami untuk mendapatkan informasi lebih lanjut.
GAL_INVALID_ARGUMENT Terjadi error internal Google saat Google mencoba mengambil token akses.

Jika tingkat error ini meningkat dalam Logging GCP, hubungi kami untuk mendapatkan informasi lebih lanjut.
GAL_NOT_FOUND Token akses dan token refresh pengguna yang disimpan di Google menjadi tidak valid dan tidak dapat dimuat ulang lagi. Pengguna perlu menautkan ulang akunnya untuk terus menggunakan layanan Anda.

Jika tingkat error ini meningkat dalam Logging GCP, hubungi kami untuk mendapatkan informasi lebih lanjut.
GAL_PERMISSION_DENIED Terjadi error internal Google saat berbagi token tidak diizinkan.

Jika tingkat error ini meningkat dalam Logging GCP, hubungi kami untuk mendapatkan informasi lebih lanjut.
GAL_REFRESH_IN_PROGRESS Masa berlaku token akses pengguna sudah berakhir, dan upaya serentak lain untuk memperbarui token sudah berlangsung.

Ini bukan masalah dan Anda tidak perlu melakukan tindakan apa pun.
INVALID_AUTH_TOKEN Google telah menerima kode error HTTP 401 dari layanan Anda.

Masa berlaku token akses belum berakhir, tetapi layanan Anda telah membatalkan validasinya. Gunakan requestId di Logging GCP untuk memeriksa log layanan smart home Anda.
INVALID_JSON Respons JSON tidak dapat diurai atau dipahami.

Periksa struktur respons JSON Anda untuk menemukan sintaksis yang tidak valid, seperti tanda kurung yang tidak cocok, koma yang tidak ada, karakter yang tidak valid.
OPEN_AUTH_FAILURE Masa berlaku token akses pengguna telah berakhir dan Google tidak dapat me-refresh token tersebut, atau Google telah menerima kode error HTTP 401 dari layanan Anda.

Jika melihat peningkatan frekuensi kode ini, periksa apakah Anda juga melihat peningkatan tingkat error terkait intent smart home atau permintaan token refresh.
PARTNER_RESPONSE_INVALID_ERROR_CODE Respons menunjukkan kode error yang tidak dikenal.

Jika respons permintaan Anda menunjukkan error, pastikan untuk menggunakan kode yang disediakan dari kode error yang didukung.
PARTNER_RESPONSE_INVALID_PAYLOAD Kolom payload respons tidak dapat diuraikan sebagai Objek JSON.

Periksa apakah kolom payload dalam respons permintaan Anda memiliki tanda kurung yang cocok dan terstruktur dengan benar sebagai kolom JSON.
PARTNER_RESPONSE_INVALID_STATUS Respons tidak menunjukkan status, atau menunjukkan status yang salah.

Respons terhadap permintaan fulfillment intent harus menunjukkan status dengan SUCCESS, OFFLINE, ERROR, EXCEPTIONS. Anda dapat menemukan informasi selengkapnya tentang penanganan error dan pengecualian.
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES Satu atau beberapa intent yang ada dalam permintaan tidak ada dalam respons.

Pastikan respons eksekusi Anda terstruktur dengan benar dan bahwa hasil untuk semua intent dari permintaan ada dalam respons Anda.
PARTNER_RESPONSE_MISSING_DEVICE Satu atau beberapa perangkat yang ada dalam permintaan tidak ada di respons.

Pastikan respons eksekusi Anda terstruktur dengan benar dan bahwa semua ID perangkat dari permintaan ada dalam respons Anda.
PARTNER_RESPONSE_MISSING_PAYLOAD Respons tidak berisi kolom payload.

Pastikan Anda menyertakan kolom payload dalam respons permintaan. Anda dapat mempelajari lebih lanjut cara mem-build respons eksekusi dengan benar.
PARTNER_RESPONSE_NOT_OBJECT Respons tidak dapat diuraikan sebagai Objek JSON.

Periksa semua kolom dalam respons permintaan Anda untuk menemukan karakter yang tidak diinginkan, tanda kurung yang tidak cocok, atau error pemformatan. Beberapa karakter unicode mungkin tidak didukung. Pastikan juga respons Anda terstruktur dengan benar sebagai objek JSON.
PROTOCOL_ERROR Gagal memproses permintaan.

Gunakan requestId di Google Cloud Logging untuk memeriksa log layanan smart home Anda.
RESPONSE_TIMEOUT Waktu permintaan habis saat menunggu respons.

Periode waktu tunggu untuk mengirim respons adalah 9 detik sejak permintaan dikirim. Pastikan Anda mengirimkan respons dalam jangka waktu ini.
RESPONSE_UNAVAILABLE Tidak ada respons yang diterima, atau respons tidak menunjukkan status.

Respons terhadap permintaan fulfillment intent harus disusun sesuai dengan dokumen smart home dan menunjukkan status.
TRANSIENT_ERROR Error sementara adalah error yang akan teratasi dengan sendirinya.

Error ini paling sering terjadi sebagai koneksi ke perangkat atau layanan yang terputus. Selain itu, jika koneksi baru ke server tidak dapat dibuka.

Log Penelusuran

Setelah Anda merasa nyaman untuk memantau integrasi menggunakan metrik, langkah berikutnya adalah memecahkan masalah error tertentu menggunakan Cloud Logging. Log error adalah entri serupa JSON dengan kolom yang berisi informasi berguna seperti waktu, kode error, dan detail terkait intent smart home asal.

Ada beberapa sistem dalam Google Cloud yang selalu mengirim log ke project Anda. Anda harus menulis kueri untuk memfilter log dan menemukan kueri yang Anda perlukan. Kueri dapat didasarkan pada Rentang Waktu, Resource, Tingkat Keparahan log, atau entri kustom.

Log Cloud Kueri

Anda dapat menggunakan tombol kueri untuk membantu membuat filter kustom.

Mem-build Kueri Log Cloud

Untuk menentukan Rentang Waktu, klik tombol pilihan rentang waktu dan pilih salah satu opsi yang disediakan. Tindakan ini akan memfilter log dan menampilkan log yang berasal dari rentang waktu yang dipilih.

Untuk menentukan Resource, klik dropdown Resource, lalu pilih Google Assistant Action Project. Tindakan ini akan menambahkan filter ke kueri Anda untuk menampilkan log yang berasal dari project Anda.

Gunakan tombol Tingkat Keparahan untuk memfilter menurut Darurat, Info, Debug, dan tingkat log keparahan lainnya.

Anda juga dapat menggunakan kolom Kueri di Logs Explorer untuk memasukkan entri kustom. Mesin kueri yang digunakan oleh kolom ini mendukung kueri dasar seperti pencocokan string, dan jenis kueri yang lebih canggih termasuk operator pembanding (<, >=, !=) dan boolean (AND, OR, NOT).

Misalnya, entri kustom di bawah akan menampilkan error yang berasal dari jenis perangkat LIGHT:

resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"

Kunjungi Library Kueri untuk menemukan lebih banyak contoh cara membuat kueri log secara efektif.

Menguji Perbaikan

Setelah Anda mengidentifikasi error dan menerapkan update untuk memperbaikinya, sebaiknya uji perbaikan secara menyeluruh dengan Google Home Test Suite. Kami menyediakan panduan pengguna tentang cara menggunakan Test Suite, yang memandu Anda dalam menguji perubahan secara efektif.

Materi Pembelajaran

Dokumen ini memberikan langkah-langkah untuk memecahkan masalah dalam Action Smart Home. Anda juga dapat memeriksa codelab kami untuk mempelajari proses debug lebih lanjut: