แนวคิดการกำหนดค่าเมตริก

การกำหนดค่าเมตริกจะกำหนดแคมเปญการวัดและส่งข้อมูลที่บริการการวัดและส่งข้อมูลเรียกใช้ การกำหนดค่าเมตริกคืออินสแตนซ์ของข้อความบัฟเฟอร์โปรโตคอล (protobuf) MetricsConfig การกำหนดค่าเมตริกจะระบุวิธีรวบรวม ประมวลผล และรายงานข้อมูล OEM สามารถเปิดใช้งานการกำหนดค่าเมตริกผ่าน API ของบริการการวัดและส่งข้อมูล โดยสามารถเรียกใช้การกำหนดค่าหลายรายการพร้อมกันได้

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

คำสำคัญ

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

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

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

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

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

รูปภาพต่อไปนี้แสดงตัวอย่างแนวคิดเกี่ยวกับวิธีที่คอมโพเนนต์โต้ตอบกันในการกำหนดค่าเมตริก

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

รูปที่ 1 แหล่งข้อมูล การประมวลผล และการรายงานในการกำหนดค่าเมตริก

คอมโพเนนต์การกำหนดค่าเมตริก

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

  • กำหนดแหล่งข้อมูล
  • ประมวลผลข้อมูลด้วยตัวรวม
  • ควบคุมโฟลว์การดำเนินการด้วยทริกเกอร์
  • สร้างรายงานเมตริก
  • จัดการวงจรการเก็บรวบรวมข้อมูล

กำหนดแหล่งข้อมูล

รากฐานของแคมเปญเมตริกคือข้อมูล ในการกำหนดค่าเมตริก กลไกการรับข้อมูลจะถูกแยกออกเป็นส่วนย่อย และคุณต้องระบุเฉพาะชื่อที่ใช้ระบุแหล่งข้อมูลและโหมดการเชื่อมต่อ (การสมัครใช้บริการหรือตามความต้องการ) แหล่งข้อมูลอาจเป็นบริการใดก็ได้ที่ทำให้ข้อมูล พร้อมใช้งานผ่านสแต็กการสื่อสาร SDV หรือลงทะเบียนตัวเองใน Configurable Publisher Registry, ซึ่งช่วยให้เก็บรวบรวมข้อมูลจากแอปที่ไม่มีมิดเดิลแวร์ SDV ได้ แหล่งข้อมูลแต่ละแหล่งต้องมีชื่อที่ไม่ซ้ำกันในการกำหนดค่าเพื่อให้คอมโพเนนต์การกำหนดค่าเมตริกอื่นๆ เช่น ทริกเกอร์หรือตัวรวมอ้างอิงได้ คุณสามารถกำหนดค่าวิธีเชื่อมต่อ ความถี่ในการรับข้อมูล และระบุออบเจ็กต์การกำหนดค่าเฉพาะบริการได้

การกำหนดค่าแหล่งข้อมูล

บริการการวัดและส่งข้อมูลสามารถเชื่อมต่อกับแหล่งข้อมูลได้ 2 วิธี ดังนี้

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

เมื่อใช้การสมัครใช้บริการ คุณจะกำหนดค่าสิ่งต่อไปนี้ได้

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

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

ประมวลผลข้อมูลด้วยตัวรวม

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

ทริกเกอร์อย่างน้อย 1 รายการจะทริกเกอร์ตัวรวมให้ทำการคำนวณ ทุกครั้งที่ทริกเกอร์รายการใดรายการหนึ่งเริ่มทำงาน ตัวรวมจะประเมินกฎและอัปเดตสถานะภายใน

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

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

ระบบรองรับการรวมประเภทต่อไปนี้

  • ทางคณิตศาสตร์: คำนวณสถิติ (ค่าเฉลี่ย ค่าต่ำสุด ค่าสูงสุด ผลรวม ส่วนเบี่ยงเบนมาตรฐาน และส่วนต่าง) จากค่าที่นิพจน์ส่งคืนในแต่ละทริกเกอร์ ส่วนต่างคือความแตกต่างระหว่างค่าตัวเลขปัจจุบันและค่าตัวเลขก่อนหน้าที่นิพจน์ส่งคืน
  • รายการ: รวบรวมค่าที่นิพจน์ส่งคืนลงในรายการ คุณสามารถจำกัดขนาดรายการเพื่อสร้างหน้าต่างแบบเลื่อน (บัฟเฟอร์แบบวงแหวน) ของค่าล่าสุดได้
  • จำนวน: กรณีพิเศษที่ไม่ได้ระบุนิพจน์ นับจำนวนครั้งที่ประเมินช่อง (นั่นคือ จำนวนครั้งที่ทริกเกอร์ตัวรวมหรือรายงาน)
  • การส่งผ่าน: ใช้ผลลัพธ์ของนิพจน์โดยตรงโดยไม่ใช้การรวม วิธีนี้มีประโยชน์ในการกำหนดค่ารายงานสำหรับการเข้าถึงค่าสุดท้ายจากตัวรวม

รูปภาพต่อไปนี้เป็นแผนภาพแนวคิดที่แสดงการประเมินตัวรวม

แผนภาพแนวคิดที่แสดงการประเมินผู้รวบรวมข้อมูล

รูปที่ 2 การประเมินตัวรวม

ทำการคำนวณหรือกำหนดเงื่อนไขโดยใช้นิพจน์

ระบบจะใช้นิพจน์ภายในเครื่องมือสร้างข้อความและทริกเกอร์แบบมีเงื่อนไขเพื่อทำการคำนวณหรือกำหนดเงื่อนไข เมื่อใช้เครื่องมือสร้างการกำหนดค่าเมตริก (MCG) เพื่อเขียนออบเจ็กต์ JSON ของการกำหนดค่าเมตริก นิพจน์จะเขียนเป็นสตริงที่อ่านได้ซึ่งใช้สัญกรณ์จุดเพื่อเข้าถึงช่องของแหล่งข้อมูล (เช่น vehicle_speed.speed_value) และใช้การดำเนินการที่หลากหลาย MCG จะแปลสตริงเหล่านี้เป็นโครงสร้างแบบต้นไม้ที่เพิ่มประสิทธิภาพแล้ว ซึ่งคล้ายกับต้นไม้ไวยากรณ์นามธรรม (AST) เพื่อการประเมินในอุปกรณ์อย่างมีประสิทธิภาพในข้อความ protobuf MetricsConfig สุดท้าย

ตัวดำเนินการและฟังก์ชัน

นิพจน์รองรับตัวดำเนินการและฟังก์ชันชุดต่อไปนี้

  • เลขคณิต: รองรับการบวก การลบ (ไบนารีและเอกภาค) การคูณ การหาร โมดูโล และยกกำลัง
  • ตรรกะ: รองรับ AND, OR, NOT และ XOR
  • เชิงสัมพันธ์: รองรับการตรวจสอบความเท่ากันและการเปรียบเทียบมากกว่าและน้อยกว่า
  • รายการ: ตรวจสอบว่ารายการมีหรือไม่มีค่าที่เฉพาะเจาะจง
  • การประทับเวลา: แสดงผลการประทับเวลา ณ เวลาที่ประเมินเป็นไมโครวินาที ประเภทนาฬิกาอาจเป็นนาฬิกาแบบเรียลไทม์ เวลาโมโนโทนิกตั้งแต่เริ่มต้นระบบ (รวมถึงเวลาพัก) หรือเวลาโมโนโทนิกตั้งแต่เริ่มต้นระบบหรือกลับมาทำงานครั้งล่าสุด
  • ค่าสัมบูรณ์: แสดงผลค่าสัมบูรณ์ของจำนวน
  • การปัดเศษ: ปัดเศษเป็นจำนวนเต็มที่ใกล้เคียงที่สุด (round) แสดงผลจำนวนเต็มที่ใหญ่ที่สุดที่น้อยกว่าหรือเท่ากับจำนวน (floor) หรือแสดงผลจำนวนเต็มที่เล็กที่สุดที่มากกว่าหรือเท่ากับจำนวน (ceil)

ต่อไปนี้เป็นตัวอย่างนิพจน์ที่อ่านจากแหล่งข้อมูล 2 แหล่งและประเมินค่าเป็น true หากความเร็วของยานพาหนะเกิน 100 กม./ชม. และไม่มีประกาศเตือนเรื่องแรงดันลมยาง

(vehicle_speed.speed_value * 3.6) > 100 && tire_pressure.warning == false

ควบคุมโฟลว์การดำเนินการด้วยทริกเกอร์

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

ทริกเกอร์มี 3 ประเภท ได้แก่

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

ทริกเกอร์แบบมีเงื่อนไข

ทริกเกอร์แบบมีเงื่อนไขจะฟังทริกเกอร์อื่นๆ (ทริกเกอร์ข้อมูล ทริกเกอร์เป็นระยะ หรือทริกเกอร์แบบมีเงื่อนไขอื่นๆ) และเมื่อทริกเกอร์รายการใดรายการหนึ่งเริ่มทำงาน ทริกเกอร์แบบมีเงื่อนไขจะประเมินนิพจน์ ทริกเกอร์แบบมีเงื่อนไขจะเริ่มทำงานก็ต่อเมื่อผลลัพธ์ของนิพจน์เป็นไปตามเงื่อนไขที่เฉพาะเจาะจงเท่านั้น

คุณสามารถกำหนดค่าทริกเกอร์แบบมีเงื่อนไขให้เริ่มทำงานตามเงื่อนไขหลายประเภทได้ ดังนี้

  • ค่า: เมื่อนิพจน์ประเมินค่าเป็น true (หรือค่าที่ไม่ใช่ 0) หรือ false (หรือ 0)
  • ขอบเขตที่เพิ่มขึ้น: เมื่อนิพจน์บูลีนเปลี่ยนจาก false เป็น true หรือค่าตัวเลขเพิ่มขึ้น
  • ขอบเขตที่ลดลง: เมื่อนิพจน์บูลีนเปลี่ยนจาก true เป็น false หรือค่าตัวเลขลดลง
  • เมื่อมีการเปลี่ยนแปลง: เมื่อใดก็ตามที่ผลลัพธ์ของนิพจน์แตกต่างจากค่าก่อนหน้า
กรองการเปลี่ยนแปลงสถานะที่รบกวน

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

ตัวอย่างเช่น คุณสามารถกำหนดค่าทริกเกอร์ให้เริ่มทำงานก็ต่อเมื่อ vehicle_speed > 100 เปลี่ยนเป็น true และยังคงเป็น true อย่างน้อย 5 วินาที ซึ่งจะป้องกันไม่ให้ทริกเกอร์เริ่มทำงานเนื่องจากความเร็วที่อ่านได้เพิ่มขึ้นชั่วคราว นอกจากนี้ คุณยังกำหนดให้ค่าทั้งหมดที่เห็นในระหว่างระยะเวลาการรอคอยนี้เท่ากันทุกประการได้ด้วย

สร้างรายงานเมตริก

หลังจากประมวลผลข้อมูลแล้ว คุณจะกำหนดวิธีและเวลาที่จะจัดแพ็กเกจข้อมูลลงในรายงาน

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

รายงานแต่ละฉบับที่สร้างขึ้นคืออินสแตนซ์ของข้อความ Protobuf MetricsReport ซึ่งจะรวมเอาต์พุตของเครื่องมือสร้างข้อความไว้ในช่อง payload และเพิ่มข้อมูลเมตา บริการการวัดและส่งข้อมูลจะเพิ่มข้อมูลเมตาต่อไปนี้ลงใน MetricsReport แต่ละรายการโดยอัตโนมัติ

  • ตัวระบุที่ไม่ซ้ำกันทั่วโลก (UUID) สำหรับรายงาน
  • หมายเลขรายงานตามลำดับ ซึ่งจะเพิ่มขึ้นสำหรับรายงานแต่ละฉบับที่การกำหนดค่ารายงานนี้สร้างขึ้น
  • การประทับเวลาที่สร้างรายงาน
  • เหตุผลในการสร้าง (เช่น ทริกเกอร์ตามกฎ หรือสร้างขึ้นเมื่อปิดระบบ)
  • UUID และเวอร์ชันของการกำหนดค่าเมตริกที่สร้างรายงาน
  • ชื่อของการกำหนดค่ารายงานเมตริก

การควบคุมการสร้างรายงาน

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

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

จัดการวงจรการเก็บรวบรวมข้อมูล

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

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

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