Origini dati

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
1 Supportato se implementi il metodo CreateSubscription.
2 Supportato se implementi il metodo GetLatestMessage.
3 Supportato se PublisherInfo.supportsGet è true.
4 Supportato per connection_type: SUBSCRIPTION, non applicabile per connection_type: ON_DEMAND.
5 Supportato per 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:

  • CreateSubscription restituisce uno stream di risposte definite dall'utente:

    rpc CreateSubscription(<configuration>) returns (stream <response>)
    
  • GetLatestMessage restituisce 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.