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