แหล่งข้อมูล

การวัดและตรวจสอบ SDV รองรับแหล่งข้อมูลหลายประเภท หน้านี้แสดงภาพรวมของประเภทเหล่านี้และฟีเจอร์ที่การวัดและส่งข้อมูลรองรับต่อประเภทแหล่งข้อมูล

โค้ดตัวอย่างสำหรับการติดตั้งใช้งานแหล่งข้อมูลมีอยู่ในไดเรกทอรี system/software_defined_vehicle/samples/telemetry

คำจำกัดความของแหล่งข้อมูลในการกำหนดค่าเมตริก

การกําหนดค่าเมตริกจะกําหนดแหล่งข้อมูลอย่างน้อย 1 แหล่งเพื่อรวบรวมเมตริก จาก แหล่งข้อมูลแต่ละแหล่งจะระบุด้วย source_identifier รูปแบบ source_identifierจะขึ้นอยู่กับแหล่งข้อมูล ดังนี้

แหล่งข้อมูล รูปแบบ คำอธิบาย ตัวอย่าง
บริการ SDV ชื่อข้อความ Protobuf ชื่อข้อความ Protobuf ที่สมบูรณ์ในตัวเอง หากบริการมีอินสแตนซ์หลายรายการ ให้ต่อท้ายชื่อหน่วยบริการโดยคั่นด้วยไปป์ (|) "com.sdv.google.example.TellTale|com-sdv-google-example-tell-tale-status-hibeam"
ชื่ออินสแตนซ์แบบเต็ม (FQIN) พร้อมชื่อหน่วยบริการ FQIN และชื่อหน่วยบริการคั่นด้วยไปป์ (|) "vm-cdc:com.google.android.sdv.pubsub.SomeService/instance1|tire-pressure"
ผู้เผยแพร่ที่กำหนดค่าได้ซึ่งอิงตามรีจิสทรีของผู้เผยแพร่ ชื่อผู้เผยแพร่ serviceName ที่ใช้ลงทะเบียนผู้เผยแพร่โฆษณาในรีจิสทรีผู้เผยแพร่โฆษณาที่กำหนดค่าได้ สตริงใดก็ได้

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

ตัวเลือก ประเภท คำอธิบาย
connection_type SUBSCRIPTION หรือ ON_DEMAND หากตั้งค่าเป็น SUBSCRIPTION บริการการวัดและส่งข้อมูลจะสมัครใช้บริการแหล่งข้อมูล หากตั้งค่าเป็น ON_DEMAND บริการการวัดและส่งข้อมูลจะดึงข้อความจากแหล่งข้อมูลเมื่อมีการร้องขอเท่านั้น
configuration google.protobuf.Any หากตั้งค่าไว้ บริการการวัดการใช้งานจะส่งต่อออบเจ็กต์การกำหนดค่าไปยังแหล่งข้อมูลเมื่อสื่อสารกับแหล่งข้อมูล
sub_sampling_interval google.protobuf.Duration หากตั้งค่าไว้ ระบบจะสุ่มตัวอย่างข้อความย่อยเพื่อให้บริการการวัดและส่งข้อมูลประมวลผลข้อความอย่างมากทุกๆ sub_sampling_interval ระยะเวลา
fetch_last_message bool หากตั้งค่าไว้ บริการการวัดและส่งข้อมูลจะดึงข้อความที่เผยแพร่ล่าสุดเมื่อสมัครใช้แหล่งข้อมูล แม้ว่าข้อความนั้นจะเผยแพร่ในอดีตก็ตาม

บริการการวัดและส่งข้อมูลรองรับเฉพาะชุดย่อยของพารามิเตอร์เท่านั้น ทั้งนี้ขึ้นอยู่กับประเภทแหล่งข้อมูล (ดูส่วนต่อไปนี้) ตารางต่อไปนี้ แสดงภาพรวม

ตัวเลือก บริการ RPC SDV บริการ SDV แบบเผยแพร่/สมัครใช้บริการ (pub/sub) ผู้เผยแพร่โฆษณาที่กำหนดค่าได้ซึ่งอิงตามรีจิสทรีของผู้เผยแพร่โฆษณา
connection_type: SUBSCRIPTION รองรับ 1 รองรับ รองรับ
connection_type: ON_DEMAND รองรับ 2 รองรับ รองรับ 3
configuration รองรับ ไม่เกี่ยวข้อง รองรับ
sub_sampling_interval ไม่รองรับ รองรับ 4 ไม่รองรับ
fetch_last_message ไม่รองรับ รองรับ 5 ไม่รองรับ
1 รองรับหากคุณใช้เมธอด CreateSubscription
2 รองรับหากคุณใช้เมธอด GetLatestMessage
3 รองรับหาก PublisherInfo.supportsGet เป็น true
4 รองรับสำหรับ connection_type: SUBSCRIPTION แต่ใช้ไม่ได้กับ connection_type: ON_DEMAND
5 รองรับสำหรับ connection_type: SUBSCRIPTION แต่ใช้ไม่ได้กับ connection_type: ON_DEMAND

บริการ SDV (ผ่าน SDV comms stack)

บริการการวัดและส่งข้อมูลสามารถรวบรวมข้อมูลจากบริการ SDV อื่นๆ ได้ รองรับทั้งบริการ RPC และ SDV แบบเผยแพร่/สมัครใช้บริการ เนื่องจากบริการการวัดและส่งข้อมูลไม่ทราบรายการบริการที่จะสมัครใช้ในเวลาบิลด์ จึงต้องใช้การสะท้อน Protobuf เพื่อถอดรหัสข้อความที่ได้รับจากบริการ SDV

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

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

บริการ SDV ของ RPC

การวัดและส่งข้อมูลมีข้อจำกัดในการรองรับบริการ RPC SDV ดูข้อมูลเพิ่มเติมได้ที่ กำหนดบริการ RPC หากต้องการรวบรวมข้อมูลจากบริการ RPC SDV บริการดังกล่าว ต้องแสดงเมธอด RPC อย่างน้อย 1 รายการต่อไปนี้

  • CreateSubscription จะแสดงสตรีมของคำตอบที่ผู้ใช้กำหนด

    rpc CreateSubscription(<configuration>) returns (stream <response>)
    
  • GetLatestMessage จะแสดงคำตอบที่ผู้ใช้กำหนด

    rpc GetLatestMessage(<configuration>) returns (<response>)
    

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

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

ประเภทของอาร์กิวเมนต์การกำหนดค่าสำหรับทั้ง 2 วิธีอาจเป็น google.protobuf.Any หรือประเภทที่ผู้ใช้กำหนด หากคุณระบุทั้ง 2 วิธี ประเภทอาร์กิวเมนต์ต้องเหมือนกัน หากไม่ต้องการอาร์กิวเมนต์การกำหนดค่า สำหรับเมธอด RPC เหล่านี้ ให้ใช้ google.protobuf.Empty

บริการการวัดและส่งข้อมูลจะเรียกใช้ CreateSubscription (สําหรับ connection_type: SUBSCRIPTION) หรือ GetLatestMessage (สําหรับ connection_type: ON_DEMAND) ขึ้นอยู่กับ connection_type ที่ระบุไว้ในการกําหนดแหล่งข้อมูลของการกําหนดค่าเมตริก

บริการ SDV ของ Pub/Sub

การส่งข้อมูลทางไกลรองรับการตรวจสอบช่อง Pub/Sub ที่กำหนดใน VSIDL ซึ่งบริการ SDV แสดงอย่างเต็มรูปแบบโดยไม่ต้องมีการกำหนดค่าเพิ่มเติม ดูข้อมูลเพิ่มเติมได้ที่เพิ่มผู้เผยแพร่ลงในแพ็กเกจบริการ

นอกจากจะติดตามช่อง Pub/Sub แล้ว Telemetry ยังรองรับ การดึงข้อมูลข้อความล่าสุดที่เผยแพร่ในช่องตามต้องการด้วย

รีจิสทรีของผู้เผยแพร่โฆษณาที่กำหนดค่าได้

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

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