การวัดและตรวจสอบ 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 | ไม่รองรับ |
CreateSubscription
GetLatestMessage
PublisherInfo.supportsGet เป็น true
connection_type: SUBSCRIPTION แต่ใช้ไม่ได้กับ connection_type: ON_DEMAND
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 ดูข้อมูลเพิ่มเติมได้ที่รีจิสทรีผู้เผยแพร่โฆษณาที่กำหนดค่าได้