เมตริกตามบันทึกสำหรับสมาร์ทโฮม

1. ก่อนเริ่มต้น

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

848f483bfcd2997a.png

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

ข้อกำหนดเบื้องต้น

สิ่งที่คุณจะได้เรียนรู้

  • วิธีเขียนคําค้นหาที่มีประสิทธิภาพเพื่อกรองบันทึกข้อผิดพลาดของสมาร์ทโฮม
  • วิธีสร้างเมตริกตามบันทึกเพื่อสร้างเมตริกจากการค้นหา
  • วิธีสร้างแผนภูมิและแดชบอร์ดจากเมตริกตามบันทึกเพื่อการตรวจสอบ

2. การทำงานกับบันทึก

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

การเข้าถึงบันทึก

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

78982d8b6d19b827.png

Logs Explorer ประกอบด้วย 2 ส่วนหลัก ได้แก่ ส่วนสำหรับเขียนการค้นหาที่ด้านบน (เครื่องมือสร้างการค้นหา) และพื้นที่สำหรับแสดงผลลัพธ์ที่ตรงกัน (ผลการค้นหา)

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

การเขียนคำค้นหา

ระบบจะเผยแพร่บันทึกลงในโปรเจ็กต์ภายใต้ประเภททรัพยากร ทรัพยากรแต่ละประเภทแสดงถึงแพลตฟอร์มที่แตกต่างกันภายใน Google บันทึกที่มาจากแพลตฟอร์มสมาร์ทโฮมจะพร้อมใช้งานในโปรเจ็กต์ของคุณภายใต้ประเภททรัพยากร assistant_action_project

นอกจากนี้ ระบบจะกำหนดระดับความรุนแรงให้กับบันทึกทั้งหมดเมื่อสร้าง ในบันทึกบ้านอัจฉริยะ เราใช้ระดับ ERROR สำหรับบันทึกที่แสดงข้อผิดพลาดและข้อยกเว้น และระดับ DEBUG สำหรับรายการอื่นๆ ทั้งหมด

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

753bfe72a9f8e959.png

เมื่อเขียนคำค้นหาเสร็จแล้ว ให้คลิกปุ่มเรียกใช้คำค้นหาเพื่อเริ่มคำค้นหา ซึ่งควรแสดงข้อผิดพลาดที่มาจากการผสานรวมสมาร์ทโฮม

3ef42da5a6c322e1.png

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

การใช้ฮิสโตแกรม

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

10eaf1d204decf3c.png

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

dd3410e65a83cf5d.png

ดังที่เห็นในรูปภาพด้านบน เรามีข้อผิดพลาดหลายอย่างที่กระจายอยู่ตลอดชั่วโมงที่ผ่านมา ดูเหมือนว่าจะมี 3 กลุ่มที่เวลาประมาณ 13:45 น. 14:00 น. และ 14:15 น. ฮิสโทแกรมช่วยให้คุณตรวจพบรูปแบบที่ดูได้ยากเมื่อตรวจสอบค่าการประทับเวลาเพียงอย่างเดียว

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

การค้นหาขั้นสูง

เมื่อตรวจสอบบันทึกเหตุการณ์สมาร์ทโฮม คุณจะเห็นช่องต่างๆ ที่สามารถรวบรวมข้อมูลได้ ดังนี้

825c57c36800844e.png

action

  • trait: กำหนดเป้าหมายลักษณะอุปกรณ์ตามผู้ใช้ (เช่น OnOff, StartStop, Brightness)
  • actionType: สถานะแบบละเอียดของลักษณะ (เช่น เปิด ปิด หยุดชั่วคราว หยุด เล่นต่อ)

device

  • deviceType: กำหนดเป้าหมายประเภทอุปกรณ์ตามผู้ใช้ (เช่น หลอดไฟ สวิตช์ เครื่องซักผ้า)

status

  • isSuccess: พิจารณาว่าผลลัพธ์ของการดำเนินการสำเร็จหรือไม่ (จริง / เท็จ)
  • statusType: รหัสสถานะสำหรับผลลัพธ์ของการดำเนินการ (ระบุรหัสข้อผิดพลาดหากไม่สำเร็จ)
  • externalDebugString: สตริงการแก้ไขข้อบกพร่องสำหรับการดำเนินการ (อธิบายข้อผิดพลาดโดยละเอียด)

ฟิลด์อื่นๆ

นอกจากนี้ ยังมีฟิลด์เพิ่มเติมที่คุณสามารถดึงข้อมูลได้ ดังนี้

  • requestId: รหัสที่ไม่ซ้ำซึ่งเชื่อมโยงกับคำขอ (สร้างโดย Google)
  • executionType: เส้นทางที่คำขอใช้ (ระบุว่าอยู่ในระบบคลาวด์หรือในเครื่อง)
  • latencyMsec: เวลาในการตอบสนองที่รับรู้สำหรับคำขอในเซิร์ฟเวอร์ของ Google (เป็นมิลลิวินาที)
  • locale: คู่ภาษา/ภูมิภาคที่ส่งคำขอ (เช่น en-US, fr-FR)

การใช้ฟิลด์ลักษณะจากรายการด้านบน เราจะแก้ไขการค้นหาให้รวมเฉพาะข้อผิดพลาดที่มาจากลักษณะ OnOff ดังนี้

resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

หลังจากเรียกใช้การค้นหาที่อัปเดตแล้ว ระบบจะระบุบันทึกและแสดงผลลัพธ์ที่เกี่ยวข้องให้เราเห็น

76176d7a41962341.png

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

3. เมตริกตามบันทึก

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

การสร้างเมตริกตามบันทึก

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

296af6e7d8dcf6cf.png

เมตริกหลักมี 2 ประเภท ได้แก่ เมตริกตัวนับซึ่งจะนับจำนวนบันทึกที่ตรงกับคําค้นหา เมตริกการกระจายจะติดตามการกระจายพื้นฐานและอนุญาตให้ดำเนินการทางสถิติ เช่น ค่าเฉลี่ย ค่ามัธยฐาน และเปอร์เซ็นไทล์ที่ 95

เมื่อเลื่อนลง คุณจะเห็นส่วนตัวกรองที่สามารถพิมพ์คำค้นหาได้

f7f2093fa1bce2ac.png

เราจะวางคำค้นหาจากส่วนก่อนหน้าในพื้นที่ข้อความสร้างตัวกรอง

​​resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

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

การดูข้อมูลเมตริกตามบันทึก

ตอนนี้เราได้สร้างเมตริกตามบันทึกแล้ว เมตริกนี้จะพร้อมใช้งานในส่วนเมตริกที่ผู้ใช้กำหนดของหน้าเมตริกตามบันทึก

1b2c88c18533fbcd.png

จากเมนูที่สอดคล้องกับเมตริกตามบันทึก (3 จุด) ให้เลือกดูในโปรแกรมสำรวจเมตริกเพื่อดูข้อมูลที่รวบรวมในเมตริกตามบันทึก

54a836fdc3a666a3.png

เมื่อมีข้อผิดพลาดใหม่ เมตริกตามบันทึกของเราจะบันทึกข้อผิดพลาดดังกล่าวและแสดงในหน้าต่างแผนภูมิในเครื่องมือสำรวจเมตริก

การตรวจสอบผ่านแดชบอร์ดที่กำหนดเอง

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

52329085f841782e.png

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

44961e7cb3663341.png

เราได้บันทึกแผนภูมิไว้ในแดชบอร์ดชื่อ "แดชบอร์ด Codelab" การเปิดหน้าต่างนี้จะแสดงมุมมองต่อไปนี้

f7e025c27f30f996.png

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

4. ขอแสดงความยินดี

674c4f4392e98c1.png

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

ขั้นตอนถัดไป

ลองทำแบบฝึกหัดต่อไปนี้และสำรวจแหล่งข้อมูลเพิ่มเติมโดยอิงจาก Codelab นี้