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 จากบริการ
ใช้ 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 |
คำตอบไม่ได้ระบุสถานะหรือระบุสถานะที่ไม่ถูกต้อง
การตอบสนองต่อคำขอ Fulfillment 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 Logging เพื่อตรวจสอบบันทึกบริการสมาร์ทโฮม
|
RESPONSE_TIMEOUT |
คำขอหมดเวลาขณะรอการตอบกลับ
ระยะหมดเวลาในการส่งการตอบกลับคือ 9 วินาทีนับจากวันที่ส่งคำขอ อย่าลืมส่งคำตอบภายในระยะเวลานี้ |
RESPONSE_UNAVAILABLE |
ไม่ได้รับการตอบกลับ หรือการตอบกลับไม่แสดงสถานะ
การตอบสนองต่อคำขอ Fulfillment Intent ควรมีโครงสร้างตาม เอกสารสมาร์ทโฮมและระบุสถานะ |
TRANSIENT_ERROR |
ข้อผิดพลาดชั่วคราวคือข้อผิดพลาดที่จะแก้ไขไปเอง
โดยส่วนใหญ่แล้ว ข้อผิดพลาดเหล่านี้มักจะเป็นเพราะการเชื่อมต่อกับอุปกรณ์หรือบริการหลุด และในกรณีที่เปิดการเชื่อมต่อใหม่กับเซิร์ฟเวอร์ไม่ได้ |
ข้อมูลบันทึกการค้นหา
เมื่อตรวจสอบการผสานรวมโดยใช้เมตริกแล้ว ขั้นตอนต่อไปคือการแก้ปัญหาข้อผิดพลาดที่เฉพาะเจาะจงโดยใช้ Cloud Logging บันทึกข้อผิดพลาดเป็นรายการลักษณะคล้าย JSON ซึ่งมีช่องที่มีข้อมูลที่เป็นประโยชน์ เช่น เวลา รหัสข้อผิดพลาด และรายละเอียดเกี่ยวกับ Intent ของสมาร์ทโฮมที่เป็นต้นทาง
มีหลายระบบภายใน Google Cloud ที่ส่งบันทึกไปยังโปรเจ็กต์ตลอดเวลา คุณต้องเขียนข้อความค้นหาเพื่อกรองบันทึกและค้นหาสิ่งที่ต้องการ การค้นหาอาจอิงตามช่วงเวลา ทรัพยากร ความรุนแรงของบันทึก หรือรายการที่กำหนดเอง

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

หากต้องการระบุช่วงเวลา ให้คลิกปุ่มการเลือกช่วงเวลา
แล้วเลือกตัวเลือกใดตัวเลือกหนึ่งที่มีให้ ซึ่งจะกรองบันทึกและแสดงบันทึกที่เกิดขึ้นในช่วงเวลาที่เลือกหากต้องการระบุทรัพยากร ให้คลิกเมนูแบบเลื่อนลงทรัพยากร แล้วเลือกโปรเจ็กต์การดำเนินการของ Google Assistant ซึ่งจะเพิ่มตัวกรองในการค้นหาเพื่อแสดงบันทึกที่มาจากโปรเจ็กต์
ใช้ปุ่มความรุนแรงเพื่อกรองตามกรณีฉุกเฉิน ข้อมูล แก้ไขข้อบกพร่อง และระดับบันทึกความรุนแรงอื่นๆ
คุณยังใช้ช่อง "คำค้นหา" ใน Logs Explorer เพื่อป้อนรายการที่กำหนดเองได้ด้วย เครื่องมือ Query ที่ช่องนี้ใช้รองรับทั้งคำค้นหาพื้นฐาน เช่น การจับคู่สตริง และคำค้นหาประเภทขั้นสูงขึ้น ซึ่งรวมถึงตัวเปรียบเทียบ (<, >=, !=
) และโอเปอเรเตอร์บูลีน (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 สำหรับ Local Home: คู่มือเริ่มใช้งานฉบับย่อเพื่อแก้ไขข้อบกพร่องของการผสานรวมอุปกรณ์สมาร์ทโฮม