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

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

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

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

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

คุณเลือกทดสอบ Action ได้โดยแชร์กับผู้ใช้รายอื่น โปรดจัดการข้อผิดพลาดและข้อยกเว้น อย่างเหมาะสม

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

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

  • แผนภูมิอัตราความสำเร็จเป็นแผนภูมิแรกที่ควรเริ่มดูเมื่อคุณ ตรวจสอบความน่าเชื่อถือของโปรเจ็กต์ การลดลงในแผนภูมินี้อาจ บ่งบอกถึงการหยุดทำงานสำหรับผู้ใช้บางส่วนหรือทั้งหมด เราขอแนะนำให้ ตรวจสอบแผนภูมินี้อย่างใกล้ชิดเพื่อดูความผิดปกติหลังจากการเปลี่ยนแปลง หรือการอัปเดตโปรเจ็กต์แต่ละครั้ง
  • แผนภูมิเวลาในการตอบสนองของเปอร์เซ็นไทล์ที่ 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 Logging โปรดติดต่อ เราเพื่อขอข้อมูลเพิ่มเติม
GAL_INVALID_ARGUMENT เกิดข้อผิดพลาดภายในของ Google เมื่อ Google พยายามดึงข้อมูล โทเค็นเพื่อเข้าถึง

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

หากเห็นว่าข้อผิดพลาดนี้มีอัตราเพิ่มขึ้นใน GCP Logging โปรดติดต่อ เราเพื่อขอข้อมูลเพิ่มเติม
GAL_PERMISSION_DENIED เกิดข้อผิดพลาดภายในของ Google เมื่อไม่มีการให้สิทธิ์การแชร์โทเค็น

หากเห็นว่าข้อผิดพลาดนี้มีอัตราเพิ่มขึ้นใน GCP Logging โปรดติดต่อ เราเพื่อขอข้อมูลเพิ่มเติม
GAL_REFRESH_IN_PROGRESS โทเค็นเพื่อการเข้าถึงของผู้ใช้หมดอายุแล้ว และกำลังมีการพยายามรีเฟรชโทเค็นพร้อมกันอีกครั้ง

นี่ไม่ใช่ปัญหาและคุณไม่จำเป็นต้องดำเนินการใดๆ
INVALID_AUTH_TOKEN Google ได้รับรหัสข้อผิดพลาด HTTP 401 จากบริการของคุณ

โทเค็นเพื่อการเข้าถึงยังไม่หมดอายุ แต่บริการของคุณทำให้โทเค็นดังกล่าวไม่ถูกต้อง ใช้ requestId ในการบันทึกของ GCP เพื่อตรวจสอบบันทึกบริการบ้านอัจฉริยะ ของคุณ
INVALID_JSON แยกวิเคราะห์หรือทำความเข้าใจการตอบกลับ JSON ไม่ได้

ตรวจสอบโครงสร้างการตอบสนอง JSON เพื่อดูไวยากรณ์ที่ไม่ถูกต้อง เช่น วงเล็บไม่ตรงกัน ไม่มีคอมมา อักขระไม่ถูกต้อง
OPEN_AUTH_FAILURE โทเค็นเพื่อการเข้าถึงของผู้ใช้หมดอายุแล้วและ Google รีเฟรชโทเค็นไม่ได้ หรือ Google ได้รับรหัสข้อผิดพลาด HTTP 401 จากบริการของคุณ

หากเห็นว่าอัตราของโค้ดนี้เพิ่มขึ้น ให้ตรวจสอบว่าคุณเห็นอัตราข้อผิดพลาดที่เพิ่มขึ้นซึ่งเกี่ยวข้องกับ เจตนาของสมาร์ทโฮมหรือคำขอโทเค็นการรีเฟรชด้วยหรือไม่
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 รายการในคำขอไม่มีอยู่ในการตอบกลับ

ตรวจสอบว่า การตอบกลับการดำเนินการมีโครงสร้างที่ถูกต้อง และผลลัพธ์ สำหรับทุกความตั้งใจจากคำขออยู่ในคำตอบของคุณ
PARTNER_RESPONSE_MISSING_DEVICE อุปกรณ์อย่างน้อย 1 เครื่องที่อยู่ในคำขอไม่มีอยู่ในคำตอบ

ตรวจสอบว่า การตอบกลับการดำเนินการมีโครงสร้างถูกต้อง และรหัสอุปกรณ์ทั้งหมดจากคำขออยู่ในคำตอบ
PARTNER_RESPONSE_MISSING_PAYLOAD การตอบกลับไม่มีช่อง payload

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

ตรวจสอบช่องทั้งหมดในการตอบกลับคำขอว่ามีอักขระที่ไม่ต้องการ วงเล็บที่ไม่ตรงกัน หรือข้อผิดพลาดในการจัดรูปแบบหรือไม่ ระบบอาจไม่รองรับอักขระ Unicode บางตัว นอกจากนี้ โปรดตรวจสอบว่าการตอบกลับมีโครงสร้างเป็นออบเจ็กต์ JSON อย่างถูกต้อง
PROTOCOL_ERROR ประมวลผลคำขอไม่สำเร็จ

ใช้ requestId ใน Google Cloud Logging เพื่อตรวจสอบ บันทึกบริการบ้านอัจฉริยะ
RELINK_REQUIRED การตอบกลับระบุว่าเกิดrelinkRequiredข้อผิดพลาด ซึ่ง แจ้งให้ผู้ใช้ลิงก์บัญชี Google และบัญชีพาร์ทเนอร์อีกครั้ง

ดูข้อมูลเพิ่มเติมได้ที่ รหัสข้อผิดพลาดที่รองรับ
RESPONSE_TIMEOUT คำขอหมดเวลาขณะรอการตอบกลับ

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

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

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

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

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

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

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

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

สร้างการค้นหาบันทึกของ 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 ซึ่งจะแนะนำขั้นตอนการทดสอบการเปลี่ยนแปลง อย่างมีประสิทธิภาพ

แหล่งข้อมูลการเรียนรู้

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