แก้ปัญหาข้อผิดพลาดในการผสานรวม

Google Cloud มีเครื่องมือที่ช่วยให้คุณตรวจสอบความน่าเชื่อถือของโปรเจ็กต์ กับ Google Cloud Monitoring และแก้ไขข้อบกพร่องของ Google Cloud Logging บันทึกข้อผิดพลาด เมื่อเกิดข้อผิดพลาดขึ้นเมื่อผู้ใช้ทำตามความตั้งใจ ไปป์ไลน์ของ Google Home Analytics จะบันทึกว่าเมตริกที่ล้มเหลวนั้น และ เผยแพร่บันทึกข้อผิดพลาดในบันทึกของโปรเจ็กต์

การแก้ปัญหาข้อผิดพลาดมี 2 ขั้นตอน ดังนี้

  1. ตรวจสอบสถานะของโปรเจ็กต์ด้วยเมตริกสมาร์ทโฮม
  2. ตรวจสอบปัญหาโดยดูคำอธิบายข้อผิดพลาดโดยละเอียดใน บันทึกข้อผิดพลาด

ขั้นตอนจะคล้ายกันสำหรับการผสานรวมภายในโดยใช้ Local Home SDK เมื่อทำตามขั้นตอนการแก้ปัญหาจนชำนาญแล้ว คุณจะ กลับไปกลับมาระหว่างเมตริกและบันทึกได้อย่างง่ายดายเพื่อรับข้อมูลเชิงลึกเกี่ยวกับ

การตรวจสอบข้อผิดพลาด

คุณจะใช้ Google Cloud Monitoring dashboard ได้ เพื่อเข้าถึงเมตริกของโปรเจ็กต์ มีแผนภูมิที่สำคัญบางส่วนที่ มีประโยชน์สำหรับการตรวจสอบคุณภาพและแก้ไขข้อบกพร่อง:

  • แผนภูมิอัตราความสำเร็จเป็นแผนภูมิแรกที่จะเริ่มต้นนับตั้งแต่ที่คุณ ตรวจสอบความน่าเชื่อถือของโปรเจ็กต์ การลดลงของแผนภูมินี้อาจ แสดงว่าฐานผู้ใช้บางส่วนหรือทั้งหมดหยุดทำงาน คำแนะนำจากเรา ติดตามแผนภูมินี้อย่างใกล้ชิดเพื่อหาความผิดปกติหลังจากการเปลี่ยนแปลงแต่ละครั้ง หรืออัปเดตในโปรเจ็กต์
  • แผนภูมิเวลาในการตอบสนองของเปอร์เซ็นไทล์ที่ 95 เป็นตัวบ่งชี้สำคัญว่า การดำเนินการของสมาร์ทโฮมทำงานอยู่สำหรับผู้ใช้ ความผันผวนฉับพลัน ในแผนภูมินี้อาจบ่งชี้ว่าระบบของคุณจะทำงานไม่ทัน พร้อมกับคำขอ ขอแนะนำให้ตรวจสอบแผนภูมินี้เป็นระยะๆ การทำงานที่ไม่คาดคิด
  • แผนภูมิรายละเอียดของข้อผิดพลาดจะมีประโยชน์มากที่สุดเมื่อ การแก้ปัญหาในการผสานรวม สำหรับทุกข้อผิดพลาด ที่ไฮไลต์ในแผนภูมิเปอร์เซ็นต์ความสำเร็จ รหัสข้อผิดพลาดจะปรากฏขึ้น ไว้ในรายละเอียดข้อผิดพลาด คุณจะเห็นข้อผิดพลาดที่แจ้งว่าไม่เหมาะสม ภายใน Google Home platform และวิธีแก้ปัญหา ในตารางด้านล่าง

รหัสข้อผิดพลาดของแพลตฟอร์ม

ต่อไปนี้เป็นรหัสข้อผิดพลาดทั่วไปที่คุณอาจเห็นในบันทึกของโปรเจ็กต์ ระบุปัญหาที่ Google Home platform ตรวจพบ โปรดอ้างอิง ตารางต่อไปนี้เพื่อดูข้อมูลการแก้ปัญหา

รหัสข้อผิดพลาด คำอธิบาย
BACKEND_FAILURE_URL_ERROR Google ได้รับรหัสข้อผิดพลาด HTTP 4xx ที่ไม่ใช่ 401 จาก service.

ใช้ 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 คำตอบไม่ได้ระบุสถานะหรือระบุว่าไม่ถูกต้อง

การตอบสนองต่อคำขอดำเนินการตาม Intent ควรระบุสถานะ ด้วย 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 เพื่อตรวจสอบ บันทึกบริการสมาร์ทโฮม
RESPONSE_TIMEOUT คำขอหมดเวลาขณะรอการตอบกลับ

ระยะหมดเวลาสำหรับการส่งคำตอบคือ 9 วินาทีนับจากเวลา ส่งคำขอแล้ว อย่าลืมส่งคำตอบภายในระยะเวลานี้
RESPONSE_UNAVAILABLE ไม่ได้รับการตอบกลับ หรือการตอบกลับไม่ได้ระบุสถานะ

การตอบสนองต่อคำขอดำเนินการตาม Intent ควรมีโครงสร้าง ตาม เอกสารสมาร์ทโฮม และแสดงสถานะ
TRANSIENT_ERROR ข้อผิดพลาดชั่วคราวคือข้อผิดพลาดที่จะแก้ไขได้เอง

ส่วนใหญ่แล้วข้อผิดพลาดเหล่านี้มักจะปรากฏขึ้นในลักษณะของการเชื่อมต่อกับอุปกรณ์ หรือ บริการที่จะถูกปฏิเสธ นอกจากนี้ ถ้าไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ใหม่ เปิดอยู่

ข้อมูลบันทึกการค้นหา

เมื่อคุณคุ้นเคยกับการตรวจสอบการผสานรวมโดยใช้เมตริกแล้ว คือการแก้ปัญหาข้อผิดพลาดเฉพาะโดยใช้ Cloud Logging บันทึกข้อผิดพลาดคือ รายการที่เหมือน JSON ที่มีช่องซึ่งมีข้อมูลที่เป็นประโยชน์ เช่น เวลา ข้อผิดพลาด รหัสและรายละเอียดเกี่ยวกับ Intent สมาร์ทโฮมต้นทาง

มีหลายระบบภายใน Google Cloud ที่ส่งบันทึกถึง โปรเจ็กต์ของคุณตลอดเวลา สิ่งที่คุณต้องทำ เขียนการค้นหาเพื่อกรองบันทึก และค้นหาสิ่งที่คุณต้องการได้ ข้อความค้นหาอาจอิงตามช่วงเวลา ทรัพยากร ความรุนแรงในบันทึก หรือรายการที่กำหนดเอง

ค้นหาบันทึกในระบบคลาวด์

คุณใช้ปุ่มค้นหาเพื่อช่วยในการสร้างตัวกรองที่กำหนดเองได้

สร้างการค้นหา Cloud Log

หากต้องการระบุช่วงเวลา ให้คลิกปุ่มการเลือกช่วงเวลา แล้วเลือก ตัวเลือก ซึ่งจะกรองบันทึก และแสดงบันทึกที่มีต้นทางใน ช่วงเวลาที่เลือกไว้

หากต้องการระบุทรัพยากร ให้คลิกเมนูแบบเลื่อนลงทรัพยากร แล้วเลือกโปรเจ็กต์การดำเนินการของ 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 เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขข้อบกพร่องได้โดยทำดังนี้