Google Cloud มีเครื่องมือสำหรับตรวจสอบความน่าเชื่อถือของโปรเจ็กต์ด้วย Google Cloud Monitoring และแก้ไขข้อผิดพลาดด้วยGoogle Cloud Logging บันทึกข้อผิดพลาด เมื่อใดก็ตามที่เกิดความล้มเหลวเมื่อดำเนินการตามความต้องการของผู้ใช้ไปป์ไลน์ Google Home Analytics จะบันทึกความล้มเหลวนั้นไว้ในเมตริก และเผยแพร่บันทึกข้อผิดพลาดในบันทึกโปรเจ็กต์
การแก้ปัญหาข้อผิดพลาดมี 2 ขั้นตอนดังนี้
- ตรวจสอบสถานะของโปรเจ็กต์ด้วยเมตริกสมาร์ทโฮม
- ตรวจสอบปัญหาโดยดูคำอธิบายข้อผิดพลาดโดยละเอียดในบันทึกข้อผิดพลาด
คุณเลือกทดสอบการดำเนินการได้โดยแชร์การดำเนินการกับผู้ใช้รายอื่น ตรวจสอบว่าคุณจัดการข้อผิดพลาดและข้อยกเว้นอย่างเหมาะสม
ข้อผิดพลาดในการตรวจสอบ
คุณสามารถใช้ Google Cloud Monitoring dashboard เพื่อเข้าถึงเมตริกโปรเจ็กต์ แผนภูมิหลักบางรายการที่มีประโยชน์อย่างยิ่งในการตรวจสอบคุณภาพและการแก้ไขข้อบกพร่องมีดังนี้
- แผนภูมิอัตราความสําเร็จเป็นแผนภูมิแรกที่จะเริ่มต้นเมื่อคุณตรวจสอบความน่าเชื่อถือของโปรเจ็กต์ การลดลงในแผนภูมินี้อาจบ่งบอกถึงการหยุดทำงานของฐานผู้ใช้บางส่วนหรือทั้งหมด เราขอแนะนําให้ติดตามแผนภูมินี้อย่างใกล้ชิดเพื่อดูความผิดปกติหลังจากการเปลี่ยนแปลงหรือการอัปเดตโปรเจ็กต์แต่ละครั้ง
- แผนภูมิเวลาในการตอบสนองของเปอร์เซ็นไทล์ที่ 95 เป็นตัวบ่งชี้ที่สําคัญเกี่ยวกับประสิทธิภาพการผสานรวม Cloud-to-cloud ของคุณสําหรับผู้ใช้ ความผันผวนอย่างฉับพลันในแผนภูมินี้อาจบ่งชี้ว่าระบบของคุณอาจไม่สามารถดำเนินการตามคำขอได้ทัน เราขอแนะนำให้ตรวจสอบแผนภูมินี้เป็นระยะๆ เพื่อดูลักษณะการทำงานที่ไม่คาดคิด
- แผนภูมิรายละเอียดข้อผิดพลาดมีประโยชน์มากที่สุดเมื่อต้องแก้ปัญหาเกี่ยวกับการผสานรวม สําหรับข้อผิดพลาดทุกรายการที่ไฮไลต์ในแผนภูมิเปอร์เซ็นต์ความสําเร็จ ระบบจะแสดงรหัสข้อผิดพลาดในรายละเอียดข้อผิดพลาด คุณดูข้อผิดพลาดที่ Google Home platform แจ้งว่าไม่ถูกต้องและวิธีแก้ปัญหาได้ในตารางด้านล่าง
รหัสข้อผิดพลาดของแพลตฟอร์ม
ต่อไปนี้คือรหัสข้อผิดพลาดที่พบบ่อยซึ่งคุณอาจเห็นในบันทึกของโปรเจ็กต์เพื่อระบุปัญหาที่ Google Home platform ตรวจพบ โปรดดูข้อมูลการแก้ปัญหาในตารางต่อไปนี้
รหัสข้อผิดพลาด | คำอธิบาย |
---|---|
BACKEND_FAILURE_URL_ERROR |
Google ได้รับโค้ดข้อผิดพลาด HTTP 4xx อื่นที่ไม่ใช่ 401 จากบริการของคุณ
ใช้ requestId ในการบันทึก GCP เพื่อตรวจสอบบันทึกบริการสมาร์ทโฮม
|
BACKEND_FAILURE_URL_TIMEOUT |
คำขอของ Google หมดเวลาขณะพยายามเข้าถึงบริการของคุณ
ตรวจสอบว่าบริการออนไลน์อยู่ ยอมรับการเชื่อมต่อ และไม่ได้ใช้งานเกินขีดจำกัด นอกจากนี้ ให้ตรวจสอบว่าอุปกรณ์เป้าหมายเปิดอยู่ ออนไลน์ และซิงค์แล้ว |
BACKEND_FAILURE_URL_UNREACHABLE |
Google ได้รับรหัสข้อผิดพลาด HTTP 5xx จากบริการของคุณ
ใช้ requestId ในการบันทึก GCP เพื่อตรวจสอบบันทึกบริการสมาร์ทโฮม
|
DEVICE_NOT_FOUND |
ไม่มีอุปกรณ์นี้ในฝั่งบริการของพาร์ทเนอร์
โดยปกติแล้วข้อผิดพลาดนี้บ่งชี้ว่าการซิงค์ข้อมูลไม่สําเร็จหรือมีเงื่อนไขการแข่งขัน |
GAL_BAD_3P_RESPONSE |
Google แยกวิเคราะห์การตอบกลับจากบริการลิงก์บัญชีไม่ได้เนื่องจากรูปแบบหรือค่าในเพย์โหลดไม่ถูกต้อง
ใช้ requestId ในการบันทึก GCP เพื่อตรวจสอบบันทึกข้อผิดพลาดในบริการการลิงก์บัญชี
|
GAL_INTERNAL |
เกิดข้อผิดพลาดภายในของ Google เมื่อ Google พยายามดึงข้อมูลโทเค็นการเข้าถึง
หากคุณเห็นว่าอัตราการเกิดข้อผิดพลาดนี้เพิ่มขึ้นในการบันทึก GCP โปรดติดต่อเราเพื่อขอข้อมูลเพิ่มเติม |
GAL_INVALID_ARGUMENT |
เกิดข้อผิดพลาดภายในของ Google เมื่อ Google พยายามดึงข้อมูลโทเค็นการเข้าถึง
หากคุณเห็นว่าอัตราการเกิดข้อผิดพลาดนี้เพิ่มขึ้นในการบันทึก GCP โปรดติดต่อเราเพื่อขอข้อมูลเพิ่มเติม |
GAL_NOT_FOUND |
โทเค็นการเข้าถึงและโทเค็นการรีเฟรชของผู้ใช้ที่จัดเก็บไว้ใน Google จะใช้งานไม่ได้และรีเฟรชไม่ได้อีกต่อไป ผู้ใช้ต้องลิงก์บัญชีอีกครั้งเพื่อใช้บริการต่อไป
หากคุณเห็นว่าอัตราการเกิดข้อผิดพลาดนี้เพิ่มขึ้นในการบันทึก GCP โปรดติดต่อเราเพื่อขอข้อมูลเพิ่มเติม |
GAL_PERMISSION_DENIED |
เกิดข้อผิดพลาดภายในของ Google เมื่อไม่มีการให้สิทธิ์การแชร์โทเค็น
หากคุณเห็นว่าอัตราการเกิดข้อผิดพลาดนี้เพิ่มขึ้นในการบันทึก GCP โปรดติดต่อเราเพื่อขอข้อมูลเพิ่มเติม |
GAL_REFRESH_IN_PROGRESS |
โทเค็นการเข้าถึงของผู้ใช้หมดอายุแล้ว และระบบกำลังพยายามรีเฟรชโทเค็นดังกล่าวพร้อมกันอยู่
นี่ไม่ใช่ปัญหาและคุณไม่จำเป็นต้องดำเนินการใดๆ |
INVALID_AUTH_TOKEN |
Google ได้รับรหัสข้อผิดพลาด HTTP 401 จากบริการของคุณ
โทเค็นการเข้าถึงยังไม่หมดอายุ แต่บริการของคุณทำให้โทเค็นดังกล่าวใช้งานไม่ได้ ใช้ requestId ในบันทึกของ GCP เพื่อตรวจสอบบันทึกบริการสมาร์ทโฮม
|
INVALID_JSON |
แยกวิเคราะห์หรือทำความเข้าใจคำตอบ JSON ไม่ได้
ตรวจสอบโครงสร้างของการตอบกลับ JSON เพื่อหาไวยากรณ์ที่ไม่ถูกต้อง เช่น วงเล็บไม่ตรงกัน ไม่มีคอมมา อักขระไม่ถูกต้อง |
OPEN_AUTH_FAILURE |
โทเค็นการเข้าถึงของผู้ใช้หมดอายุและ Google รีเฟรชไม่ได้ หรือ Google ได้รับรหัสข้อผิดพลาด HTTP 401 จากบริการของคุณ
หากเห็นอัตราของรหัสนี้เพิ่มขึ้น ให้ตรวจสอบว่าอัตราการเกิดข้อผิดพลาดที่เกี่ยวข้องกับ Intent สมาร์ทโฮมหรือคำขอรีเฟรชโทเค็นเพิ่มขึ้นด้วยหรือไม่ |
PARTNER_RESPONSE_INVALID_ERROR_CODE |
การตอบกลับแสดงรหัสข้อผิดพลาดที่ไม่รู้จัก
หากการตอบกลับคำขอของคุณแสดงข้อผิดพลาด โปรดตรวจสอบว่าคุณใช้ รหัสข้อผิดพลาดที่รองรับ |
PARTNER_RESPONSE_INVALID_PAYLOAD |
แยกวิเคราะห์ฟิลด์คำตอบ payload เป็นออบเจ็กต์ JSON ไม่ได้
ตรวจสอบว่าฟิลด์เพย์โหลดในการตอบกลับคำขอมีวงเล็บตรงกันและมีโครงสร้างเป็นฟิลด์ JSON ที่ถูกต้องหรือไม่ |
PARTNER_RESPONSE_INVALID_STATUS |
การตอบกลับไม่ได้ระบุสถานะ หรือระบุสถานะที่ไม่ถูกต้อง
การตอบกลับคำขอการดำเนินการตามเจตนาควรระบุสถานะด้วย SUCCESS, OFFLINE, ERROR, EXCEPTIONS ดูข้อมูลเพิ่มเติมเกี่ยวกับ
การจัดการข้อผิดพลาดและข้อยกเว้น
|
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES |
ไม่มี Intent อย่างน้อย 1 รายการที่แสดงอยู่ในคำขอในการตอบกลับ
ยืนยันว่า การตอบกลับการดำเนินการของคุณมีโครงสร้างถูกต้องและผลลัพธ์สำหรับ Intent ทั้งหมดจากคำขอแสดงอยู่ในคำตอบ |
PARTNER_RESPONSE_MISSING_DEVICE |
ไม่มีอุปกรณ์อย่างน้อย 1 เครื่องที่แสดงอยู่ในคำขอในการตอบกลับ
ตรวจสอบว่า คำตอบการเรียกใช้มีโครงสร้างถูกต้อง และมีรหัสอุปกรณ์ทั้งหมดจากคำขออยู่ในคำตอบ |
PARTNER_RESPONSE_MISSING_PAYLOAD |
การตอบกลับไม่มีช่อง payload
ตรวจสอบว่าได้ใส่ฟิลด์เพย์โหลดในการตอบกลับคำขอ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้าง การตอบสนองการดําเนินการอย่างถูกต้อง |
PARTNER_RESPONSE_NOT_OBJECT |
แยกวิเคราะห์คำตอบเป็นออบเจ็กต์ JSON ไม่ได้
ตรวจสอบช่องทั้งหมดในการตอบกลับคำขอเพื่อหาอักขระที่ไม่ได้ตั้งใจใช้ วงเล็บที่จับคู่กันไม่ถูกต้อง หรือข้อผิดพลาดในการวางรูปแบบ ระบบอาจไม่รองรับอักขระ Unicode บางตัว และตรวจสอบว่าคำตอบมีโครงสร้างเป็นออบเจ็กต์ JSON อย่างถูกต้อง |
PROTOCOL_ERROR |
ประมวลผลคำขอไม่สำเร็จ
ใช้ requestId ใน Google Cloud Logging เพื่อตรวจสอบบันทึกบริการสมาร์ทโฮม
|
RESPONSE_TIMEOUT |
คำขอหมดเวลาขณะรอการตอบกลับ
ระยะเวลาหมดเวลาในการส่งการตอบกลับคือ 9 วินาทีนับจากเวลาที่ส่งคำขอ โปรดส่งคำตอบภายในระยะเวลานี้ |
RESPONSE_UNAVAILABLE |
ไม่มีการตอบกลับ หรือคำตอบไม่ได้ระบุสถานะ
การตอบกลับคำขอการดำเนินการตามเจตนาควรมีโครงสร้างตาม เอกสารสมาร์ทโฮมและระบุสถานะ |
TRANSIENT_ERROR |
ข้อผิดพลาดที่เกิดขึ้นชั่วคราวคือข้อผิดพลาดที่จะแก้ไขได้เอง
โดยปกติแล้ว ข้อผิดพลาดเหล่านี้จะแสดงเป็นการเชื่อมต่อกับอุปกรณ์หรือบริการถูกตัด และหากเปิดการเชื่อมต่อใหม่กับเซิร์ฟเวอร์ไม่ได้ |
ข้อมูลบันทึกการค้นหา
เมื่อคุณคุ้นเคยกับการตรวจสอบการผสานรวมโดยใช้เมตริกแล้ว ขั้นตอนถัดไปคือการแก้ปัญหาข้อผิดพลาดที่เฉพาะเจาะจงโดยใช้ Cloud Logging บันทึกข้อผิดพลาดคือรายการที่คล้ายกับ JSON ซึ่งมีช่องที่มีข้อมูลที่เป็นประโยชน์ เช่น เวลา รหัสข้อผิดพลาด และรายละเอียดเกี่ยวกับความตั้งใจของสมาร์ทโฮมต้นทาง
มีระบบหลายระบบภายใน Google Cloud ที่ส่งบันทึกไปยังโปรเจ็กต์ของคุณตลอดเวลา คุณต้องเขียนการค้นหาเพื่อกรองบันทึกและค้นหาบันทึกที่ต้องการ การค้นหาอาจอิงตามช่วงเวลา ทรัพยากร ความรุนแรงของบันทึก หรือรายการที่กำหนดเอง
คุณสามารถใช้ปุ่มการค้นหาเพื่อช่วยสร้างตัวกรองที่กำหนดเองได้
หากต้องการระบุช่วงเวลา ให้คลิกปุ่มเลือกช่วงเวลา
แล้วเลือกตัวเลือกใดตัวเลือกหนึ่งที่มีให้ ซึ่งจะกรองบันทึกและแสดงบันทึกที่มาจากช่วงเวลาที่เลือกหากต้องการระบุทรัพยากร ให้คลิกเมนูแบบเลื่อนลงทรัพยากร แล้วเลือกโปรเจ็กต์การดำเนินการของ Google Assistant ซึ่งจะเพิ่มตัวกรองในข้อความค้นหาเพื่อแสดงบันทึกที่มาจากโปรเจ็กต์
ใช้ปุ่มความรุนแรงเพื่อกรองตามฉุกเฉิน ข้อมูล แก้ไขข้อบกพร่อง และระดับบันทึกความรุนแรงอื่นๆ
นอกจากนี้ คุณยังใช้ช่องข้อความค้นหาใน Logs Explorer
เพื่อป้อนรายการที่กำหนดเองได้ด้วย เครื่องมือค้นหาที่ใช้โดยช่องนี้รองรับทั้งการค้นหาพื้นฐาน เช่น การจับคู่สตริง และการค้นหาประเภทขั้นสูงมากขึ้น ซึ่งรวมถึงตัวเปรียบเทียบ (<, >=, !=
) และโอเปอเรเตอร์บูลีน (AND, OR, NOT
)
ตัวอย่างเช่น รายการที่กำหนดเองด้านล่างจะแสดงข้อผิดพลาดที่มาจากประเภทอุปกรณ์ LIGHT
resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"
ไปที่คลังข้อความค้นหาเพื่อดูตัวอย่างเพิ่มเติมในการค้นหาบันทึกอย่างมีประสิทธิภาพ
การทดสอบการแก้ไข
เมื่อคุณระบุข้อผิดพลาดและใช้การอัปเดตเพื่อแก้ไขแล้ว เราขอแนะนำให้ทดสอบการแก้ไขอย่างละเอียดด้วย Google Home Test Suite เรามีคู่มือผู้ใช้เกี่ยวกับวิธีใช้ Test Suite ซึ่งจะแนะนำขั้นตอนการทดสอบการเปลี่ยนแปลงอย่างมีประสิทธิภาพ
แหล่งข้อมูลการเรียนรู้
เอกสารนี้แสดงขั้นตอนการแก้ปัญหาข้อผิดพลาดในสมาร์ทโฮมแอ็กชัน นอกจากนี้ คุณยังดูข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขข้อบกพร่องได้ใน Codelab
- การแก้ไขข้อบกพร่องใน Codelab สมาร์ทโฮม: คู่มือเริ่มต้นใช้งานฉบับย่อสำหรับการแก้ไขข้อบกพร่องในการผสานรวมระบบคลาวด์สมาร์ทโฮม
- การแก้ไขข้อบกพร่องใน Codelab ของ Home: คู่มือเริ่มต้นใช้งานฉบับย่อสำหรับการแก้ไขข้อบกพร่องในการผสานรวมสมาร์ทโฮมในพื้นที่