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

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

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

848f483bfcd2997a.png

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

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

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

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

2. การใช้งานบันทึก

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

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

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

78982d8b6d19b827.png

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

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

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

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

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

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

753bfe72a9f8e959.png

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

3ef42da5a6c322e1.png

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

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

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

10eaf1d204decf3c.png

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

dd3410e65a83cf5d.png

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

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

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

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

825c57c36800844e.png

action

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

device

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

status

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

ฟิลด์อื่นๆ

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

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

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

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 นี้ ให้ลองทำตามแบบฝึกหัดต่อไปนี้และสำรวจแหล่งข้อมูลเพิ่มเติม