Telemetri SDV mendukung beberapa jenis sumber data. Halaman ini memberikan ringkasan tentang jenis-jenis tersebut dan fitur yang didukung Telemetri per jenis sumber data.
Kode contoh untuk penerapan sumber data tersedia di direktori system/software_defined_vehicle/samples/telemetry.
Definisi sumber data dalam konfigurasi metrik
Konfigurasi metrik menentukan satu atau beberapa sumber data untuk mengumpulkan metrik
dari. Setiap sumber data diidentifikasi berdasarkan source_identifier. Format source_identifier bergantung pada sumber data:
| Sumber data | Format | Deskripsi | Contoh |
|---|---|---|---|
| Layanan SDV | Nama pesan Protobuf |
Nama pesan protobuf yang sepenuhnya memenuhi syarat. Jika layanan memiliki beberapa
instance, tambahkan nama unit layanan yang dipisahkan dengan karakter pipa (|).
|
"com.sdv.google.example.TellTale|com-sdv-google-example-tell-tale-status-hibeam"
|
| Nama Instance yang Sepenuhnya Memenuhi Syarat (FQIN) dengan Nama Unit Layanan |
FQIN dan nama unit layanan dipisahkan dengan karakter pipa (|).
|
"vm-cdc:com.google.android.sdv.pubsub.SomeService/instance1|tire-pressure"
|
|
| Penayang berbasis Configurable Publisher Registry | Nama penayang | serviceName yang tepat digunakan untuk mendaftarkan penayang di Configurable Publisher Registry. |
String apa pun valid. |
Untuk setiap sumber data, Anda dapat menggunakan opsi berikut untuk memparameterkan pengambilan pesan. Anda dapat menentukan sumber data yang sama beberapa kali dengan opsi yang berbeda dalam konfigurasi metrik yang sama. Misalnya, Anda dapat membuat beberapa bagian dari pemrosesan edge menggunakan interval sub-sampling yang berbeda dari bagian lain dari pemrosesan edge.
| Opsi | Jenis | Deskripsi |
|---|---|---|
connection_type |
SUBSCRIPTION atau ON_DEMAND |
Jika ditetapkan ke SUBSCRIPTION, layanan Telemetri akan berlangganan ke sumber data. Jika ditetapkan ke ON_DEMAND, layanan Telemetri hanya akan mengambil pesan dari sumber data sesuai permintaan. |
configuration |
google.protobuf.Any |
Jika ditetapkan, layanan Telemetri akan meneruskan objek konfigurasi ke sumber data saat berkomunikasi dengannya. |
sub_sampling_interval |
google.protobuf.Duration |
Jika ditetapkan, pesan akan di-sub-sampling, sehingga layanan Telemetri memproses pesan paling banyak setiap durasi sub_sampling_interval. |
fetch_last_message |
bool |
Jika ditetapkan, layanan Telemetri akan mengambil pesan terakhir yang dipublikasikan saat berlangganan ke sumber data, meskipun pesan tersebut dipublikasikan pada masa lalu. |
Bergantung pada jenis sumber data (lihat bagian berikut), hanya subset parameter yang didukung oleh layanan Telemetri. Tabel berikut memberikan ringkasan.
| Opsi | Layanan SDV RPC | Layanan SDV publikasi/langganan (pub/sub) | Penayang berbasis Configurable Publisher Registry |
|---|---|---|---|
connection_type: SUBSCRIPTION |
Didukung 1 | Didukung | Didukung |
connection_type: ON_DEMAND |
Didukung 2 | Didukung | Didukung 3 |
configuration |
Didukung | Tidak berlaku | Didukung |
sub_sampling_interval |
Tidak didukung | Didukung 4 | Tidak didukung |
fetch_last_message |
Tidak didukung | Didukung 5 | Tidak didukung |
CreateSubscription.
GetLatestMessage.
PublisherInfo.supportsGet adalah true.
connection_type: SUBSCRIPTION, tidak berlaku untuk connection_type: ON_DEMAND.
connection_type: SUBSCRIPTION, tidak berlaku untuk connection_type: ON_DEMAND.
Layanan SDV (melalui stack komunikasi SDV)
Layanan Telemetri dapat mengumpulkan data dari layanan SDV lainnya. Layanan SDV RPC dan pub/sub didukung. Karena layanan Telemetri tidak mengetahui daftar layanan yang akan dilanggan pada waktu build, layanan ini mengandalkan refleksi Protobuf untuk mendekode pesan yang diterima dari layanan SDV.
Layanan SDV tidak menyediakan metadata refleksi secara default. Agar layanan SDV dapat digunakan sebagai sumber data telemetri, Anda harus mengaktifkan pembuatan konfigurasi runtime katalog VSIDL layanan. Untuk mengetahui informasi selengkapnya, lihat Panduan Penyedia VSIDL untuk Developer Paket Layanan.
Hanya untuk tujuan pengujian dan evaluasi, Anda dapat menetapkan opsi register_reflection_metadata ke true dalam definisi paket layanan. Untuk mengetahui informasi selengkapnya, lihat Paket layanan.
Layanan SDV RPC
Telemetri memiliki dukungan terbatas untuk layanan SDV RPC. Untuk mengetahui informasi selengkapnya, lihat Menentukan layanan RPC. Untuk mengumpulkan data dari layanan SDV RPC, layanan harus mengekspos satu atau kedua metode RPC berikut:
CreateSubscriptionmenampilkan aliran respons yang ditentukan pengguna:rpc CreateSubscription(<configuration>) returns (stream <response>)GetLatestMessagemenampilkan respons yang ditentukan pengguna:rpc GetLatestMessage(<configuration>) returns (<response>)
Anda dapat menggunakan argumen konfigurasi untuk memparameterkan perilaku sumber data, misalnya, untuk meminta frekuensi publikasi yang berbeda atau memilih entity yang ingin Anda langgani (misalnya, ban mana yang akan dibaca tekanan bannya).
Saat menentukan layanan SDV RPC sebagai sumber data dalam konfigurasi metrik, Anda dapat menentukan nilai configuration dalam definisi sumber data, yang digunakan sebagai argumen untuk RPC ini. Layanan Telemetri menangani objek konfigurasi secara transparan dan meneruskan apa pun yang Anda tentukan.
Jenis argumen konfigurasi untuk kedua metode dapat berupa
google.protobuf.Any atau jenis yang ditentukan pengguna. Jika Anda menyediakan kedua metode, jenis argumen harus identik. Jika Anda tidak memerlukan argumen konfigurasi
untuk metode RPC ini, gunakan google.protobuf.Empty.
Bergantung pada connection_type yang ditentukan dalam definisi sumber data
konfigurasi metrik, layanan Telemetri akan memanggil
CreateSubscription (untuk connection_type: SUBSCRIPTION) atau GetLatestMessage
(untuk connection_type: ON_DEMAND).
Layanan SDV pub/sub
Telemetri memiliki dukungan penuh untuk memantau saluran pub/sub yang ditentukan dalam VSIDL yang diekspos oleh layanan SDV tanpa memerlukan konfigurasi tambahan. Untuk mengetahui informasi selengkapnya, lihat Menambahkan penayang ke paket layanan.
Selain berlangganan ke saluran pub/sub, Telemetri juga mendukung pengambilan sesuai permintaan pesan terbaru yang dipublikasikan ke saluran.
Configurable Publisher Registry
Selain mengumpulkan data dari layanan SDV menggunakan stack komunikasi SDV, Telemetri mendukung pengumpulan data dari aplikasi dan layanan yang mendaftarkan penayang di Configurable Publisher Registry layanan Telemetri. Kemampuan ini paling berguna di IVI, tempat stack komunikasi SDV tidak tersedia.
Configurable Publisher Registry juga dapat berguna untuk proses debug dan pembuatan prototipe tanpa harus menulis paket layanan SDV. Untuk mengetahui informasi selengkapnya, lihat Configurable Publisher Registry.