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

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

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

848f483bfcd2997a.png

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

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

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

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

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

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

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

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

78982d8b6d19b827.png

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

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

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

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

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

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

753bfe72a9f8e959.png

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

3ef42da5a6c322e1.png

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

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

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

10eaf1d204decf3c.png

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

dd3410e65a83cf5d.png

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

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

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

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

825c57c36800844e.png

action

  • trait: ลักษณะอุปกรณ์เป้าหมายตามผู้ใช้ (เช่น เปิด/ปิด เริ่ม/หยุด ความสว่าง)
  • 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 นี้