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

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

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

848f483bfcd2997a.png

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

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

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

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

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

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

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

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

78982d8b6d19b827.png

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

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

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

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

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

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

753bfe72a9f8e959.png

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

3ef42da5a6c322e1.png

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

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

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

10eaf1d204decf3c.png

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

dd3410e65a83cf5d.png

ดังที่คุณเห็นในรูปภาพด้านบน เรามีข้อผิดพลาดหลายรายการที่กระจุกตัวอยู่กระจัดกระจายในชั่วโมงที่ผ่านมา ดูเหมือนว่าพวกมันก่อตัวกันเป็นกลุ่ม 3 กลุ่ม ตอนบ่าย 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 ดังต่อไปนี้

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 Dashboard" เมื่อเปิดขึ้นมา ระบบจะแสดงมุมมองต่อไปนี้

f7e025c27f30f996.png

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

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

674c4f4392e98c1.png

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

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

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