SDV Telemetry supporta più tipi di origini dati. Questa pagina fornisce una panoramica di questi tipi e delle funzionalità supportate da Telemetry per ogni tipo di origine dati.
Il codice campione per le implementazioni delle origini dati è disponibile nella directory system/software_defined_vehicle/samples/telemetry.
Definizione dell'origine dati nelle configurazioni delle metriche
Le configurazioni delle metriche definiscono una o più origini dati da cui raccogliere le metriche. Ogni origine dati è identificata dal relativo source_identifier. Il formato di source_identifier dipende dall'origine dati:
| Origine dati | Formato | Descrizione | Esempi |
|---|---|---|---|
| Servizio SDV | Nome del messaggio Protobuf |
Il nome completo del messaggio Protobuf. Se il servizio ha più
istanze, aggiungi il nome dell'unità di servizio separato da una barra verticale (|).
|
"com.sdv.google.example.TellTale|com-sdv-google-example-tell-tale-status-hibeam"
|
| Nome completo dell'istanza (FQIN) con il nome dell'unità di servizio |
Il nome completo dell'istanza e il nome dell'unità di servizio separati da una barra verticale (|).
|
"vm-cdc:com.google.android.sdv.pubsub.SomeService/instance1|tire-pressure"
|
|
| Publisher basato sul registro dei publisher configurabile | Nome editore | Il serviceName esatto utilizzato per registrare il publisher nel registro dei publisher configurabile. |
Qualsiasi stringa è valida. |
Per ogni origine dati, puoi utilizzare le seguenti opzioni per parametrizzare il recupero dei messaggi. Puoi definire la stessa origine dati più volte con opzioni diverse nella stessa configurazione delle metriche. Ad esempio, puoi fare in modo che una parte dell'elaborazione edge utilizzi un intervallo di sottocampionamento diverso rispetto ad altre parti dell'elaborazione edge.
| Opzione | Tipo | Descrizione |
|---|---|---|
connection_type |
SUBSCRIPTION o ON_DEMAND |
Se impostato su SUBSCRIPTION, il servizio Telemetry si abbona all'origine dati. Se impostato su ON_DEMAND, il servizio Telemetry recupera i messaggi dall'origine dati solo su richiesta. |
configuration |
google.protobuf.Any |
Se impostato, il servizio Telemetry passa l'oggetto di configurazione all'origine dati quando comunica con quest'ultima. |
sub_sampling_interval |
google.protobuf.Duration |
Se impostato, i messaggi vengono sottocampionati, in modo che il servizio Telemetry elabori un messaggio al massimo ogni durata sub_sampling_interval. |
fetch_last_message |
bool |
Se impostato, il servizio Telemetry recupera l'ultimo messaggio pubblicato quando si abbona all'origine dati, anche se il messaggio è stato pubblicato in passato. |
A seconda del tipo di origine dati (vedi le sezioni seguenti), il servizio Telemetry supporta solo un sottoinsieme di parametri. La tabella seguente fornisce una panoramica.
| Opzione | Servizio SDV RPC | Servizio SDV di pubblicazione/sottoscrizione (pub/sub) | Publisher basati sul registro dei publisher configurabile |
|---|---|---|---|
connection_type: SUBSCRIPTION |
Supportato 1 | Supportato | Supportato |
connection_type: ON_DEMAND |
Supportato 2 | Supportato | Supportato 3 |
configuration |
Supportato | Non applicabile | Supportato |
sub_sampling_interval |
Non supportato | Supportato 4 | Non supportato |
fetch_last_message |
Non supportato | Supportato 5 | Non supportato |
CreateSubscription.
GetLatestMessage.
PublisherInfo.supportsGet è true.
connection_type: SUBSCRIPTION, non applicabile per connection_type: ON_DEMAND.
connection_type: SUBSCRIPTION, non applicabile per connection_type: ON_DEMAND.
Servizi SDV (tramite lo stack di comunicazione SDV)
Il servizio Telemetry può raccogliere dati da altri servizi SDV. Sono supportati sia i servizi SDV RPC sia quelli di pubblicazione/sottoscrizione. Poiché il servizio Telemetry non conosce l'elenco dei servizi a cui si abbonerà in fase di compilazione, si basa sulla reflection Protobuf per decodificare i messaggi ricevuti dai servizi SDV.
Per impostazione predefinita, i servizi SDV non forniscono metadati di reflection. Per rendere utilizzabile un servizio SDV come origine dati di telemetria, devi abilitare la generazione della configurazione di runtime del catalogo VSIDL del servizio. Per saperne di più, consulta la Guida per i fornitori di VSIDL per gli sviluppatori di bundle di servizi.
Solo a scopo di test e valutazione, puoi invece impostare l'opzione register_reflection_metadata su true nella definizione del bundle di servizi. Per saperne di più, consulta Bundle di servizi.
Servizi SDV RPC
Telemetry ha un supporto limitato per i servizi SDV RPC. Per saperne di più, consulta Definire i servizi RPC. Per raccogliere dati da un servizio SDV RPC, il servizio deve esporre uno o entrambi i seguenti metodi RPC:
CreateSubscriptionrestituisce uno stream di risposte definite dall'utente:rpc CreateSubscription(<configuration>) returns (stream <response>)GetLatestMessagerestituisce una risposta definita dall'utente:rpc GetLatestMessage(<configuration>) returns (<response>)
Puoi utilizzare l'argomento di configurazione per parametrizzare il comportamento dell'origine dati, ad esempio per richiedere una frequenza di pubblicazione diversa o per selezionare l'entità a cui vuoi abbonarti (ad esempio, da quale pneumatico leggere la pressione).
Quando definisci un servizio SDV RPC come origine dati in una configurazione delle metriche, puoi specificare un valore configuration nella definizione dell'origine dati, che viene utilizzato come argomento per questo RPC. Il servizio Telemetry gestisce l'oggetto di configurazione in modo trasparente e passa a qualsiasi cosa tu definisca.
Il tipo di argomento di configurazione per entrambi i metodi può essere
google.protobuf.Any o un tipo definito dall'utente. Se fornisci entrambi i metodi, i tipi di argomento devono essere identici. Se non hai bisogno di un argomento di configurazione
per questi metodi RPC, utilizza google.protobuf.Empty.
A seconda di connection_type specificato nella definizione dell'origine dati della configurazione delle metriche, il servizio Telemetry chiama CreateSubscription (per connection_type: SUBSCRIPTION) o GetLatestMessage (per connection_type: ON_DEMAND).
Servizi SDV di pubblicazione/sottoscrizione
Telemetry supporta completamente il monitoraggio dei canali di pubblicazione/sottoscrizione definiti in VSIDL esposti dai servizi SDV senza richiedere configurazioni aggiuntive. Per saperne di più, consulta Aggiungere un publisher a un bundle di servizi.
Oltre ad abbonarsi ai canali di pubblicazione/sottoscrizione, Telemetry supporta anche il recupero on demand dell'ultimo messaggio pubblicato su un canale.
Registro dei publisher configurabile
Oltre a raccogliere dati dai servizi SDV utilizzando lo stack di comunicazione SDV, Telemetry supporta la raccolta di dati da applicazioni e servizi che registrano i publisher nel registro dei publisher configurabile del servizio Telemetry. Questa funzionalità è più utile su IVI, dove lo stack di comunicazione SDV non è disponibile.
Il registro dei publisher configurabile può essere utile anche per il debug e la prototipazione senza dover scrivere bundle di servizi SDV. Per saperne di più, consulta Registro dei publisher configurabile.