La telemetría del SDV admite varios tipos de fuentes de datos. En esta página, se proporciona una descripción general de estos tipos y de las funciones que admite Telemetría por tipo de fuente de datos.
El código de muestra para las implementaciones de fuentes de datos está disponible en el directorio system/software_defined_vehicle/samples/telemetry.
Definición de la fuente de datos en las configuraciones de métricas
Las configuraciones de métricas definen una o más fuentes de datos de las que se recopilan métricas. Cada fuente de datos se identifica por su source_identifier. El formato source_identifier depende de la fuente de datos:
| Fuente de datos | Formato | Descripción | Ejemplos |
|---|---|---|---|
| Servicio de SDV | Nombre del mensaje de Protobuf |
Es el nombre completamente calificado del mensaje de Protobuf. Si el servicio tiene varias instancias, agrega el nombre de la unidad de servicio separado por una barra vertical (|).
|
"com.sdv.google.example.TellTale|com-sdv-google-example-tell-tale-status-hibeam"
|
| Nombre de instancia completamente calificado (FQIN) con nombre de unidad de servicio |
El FQIN y el nombre de la unidad de servicio separados por una barra vertical (|).
|
"vm-cdc:com.google.android.sdv.pubsub.SomeService/instance1|tire-pressure"
|
|
| Publicador configurable basado en el registro de publicadores | Nombre del editor | Es el serviceName exacto que se usó para registrar al editor en el Registro de editores configurables. |
Cualquier cadena es válida. |
Para cada fuente de datos, puedes usar las siguientes opciones para parametrizar la recuperación de mensajes. Puedes definir la misma fuente de datos varias veces con diferentes opciones en la misma configuración de métricas. Por ejemplo, puedes hacer que parte de tu procesamiento perimetral use un intervalo de submuestreo diferente al de otras partes de tu procesamiento perimetral.
| Opción | Tipo | Descripción |
|---|---|---|
connection_type |
SUBSCRIPTION o ON_DEMAND |
Si se configura como SUBSCRIPTION, el servicio de telemetría se suscribe a la fuente de datos. Si se configura como ON_DEMAND, el servicio de telemetría recupera mensajes de la fuente de datos solo a pedido. |
configuration |
google.protobuf.Any |
Si se configura, el servicio de telemetría pasa el objeto de configuración a la fuente de datos cuando se comunica con ella. |
sub_sampling_interval |
google.protobuf.Duration |
Si se configura, los mensajes se submuestrean, de modo que el servicio de Telemetría procesa un mensaje como máximo cada duración de sub_sampling_interval. |
fetch_last_message |
bool |
Si se configura, el servicio de Telemetría recupera el último mensaje publicado cuando se suscribe a la fuente de datos, incluso si ese mensaje se publicó en el pasado. |
Según el tipo de fuente de datos (consulta las siguientes secciones), el servicio de telemetría solo admite un subconjunto de parámetros. En la siguiente tabla, se proporciona una descripción general.
| Opción | Servicio de SDV de RPC | Servicio de SDV de publicación y suscripción (pub/sub) | Publicadores configurables basados en el Registro de publicadores |
|---|---|---|---|
connection_type: SUBSCRIPTION |
Compatible 1 | Compatible | Compatible |
connection_type: ON_DEMAND |
Compatible 2 | Compatible | Compatible 3 |
configuration |
Compatible | No aplicable | Compatible |
sub_sampling_interval |
No compatible | Se admite 4 | No compatible |
fetch_last_message |
No compatible | Se admite 5 | No compatible |
CreateSubscription.
GetLatestMessage.
PublisherInfo.supportsGet es true.
connection_type: SUBSCRIPTION, pero no para connection_type: ON_DEMAND.
connection_type: SUBSCRIPTION, no aplicable a connection_type: ON_DEMAND.
Servicios de SDV (a través de la pila de comunicaciones de SDV)
El servicio de telemetría puede recopilar datos de otros servicios de SDV. Se admiten los servicios de SDV de RPC y de publicación/suscripción. Dado que el servicio de telemetría no conoce la lista de servicios a los que se suscribirá en el tiempo de compilación, se basa en la reflexión de Protobuf para decodificar los mensajes que recibe de los servicios de SDV.
Los servicios de SDV no proporcionan metadatos de reflexión de forma predeterminada. Para que un servicio de SDV se pueda usar como fuente de datos de telemetría, debes habilitar la generación de la configuración del tiempo de ejecución del catálogo de VSIDL del servicio. Para obtener más información, consulta la Guía del proveedor de VSIDL para desarrolladores de paquetes de servicios.
Solo para fines de prueba y evaluación, puedes establecer la opción register_reflection_metadata en true en la definición del paquete de servicio. Para obtener más información, consulta Paquete de servicios.
Servicios de SDV de RPC
La telemetría tiene compatibilidad limitada con los servicios de SDV de RPC. Para obtener más información, consulta Define servicios de RPC. Para recopilar datos de un servicio de SDV de RPC, el servicio debe exponer uno o ambos de los siguientes métodos de RPC:
CreateSubscriptiondevuelve un flujo de respuestas definidas por el usuario:rpc CreateSubscription(<configuration>) returns (stream <response>)GetLatestMessagedevuelve una respuesta definida por el usuario:rpc GetLatestMessage(<configuration>) returns (<response>)
Puedes usar el argumento de configuración para parametrizar el comportamiento de tu fuente de datos, por ejemplo, para solicitar una frecuencia de publicación diferente o seleccionar la entidad a la que deseas suscribirte (por ejemplo, de qué neumático leer la presión).
Cuando defines un servicio de SDV de RPC como fuente de datos en una configuración de métricas, puedes especificar un valor configuration en la definición de la fuente de datos, que se usa como argumento para esta RPC. El servicio de Telemetría controla el objeto de configuración de forma transparente y pasa lo que definas.
El tipo del argumento de configuración para ambos métodos puede ser google.protobuf.Any o un tipo definido por el usuario. Si proporcionas ambos métodos, los tipos de argumentos deben ser idénticos. Si no necesitas un argumento de configuración para estos métodos de RPC, usa google.protobuf.Empty.
Según el connection_type especificado en la definición de la fuente de datos de la configuración de métricas, el servicio de Telemetría llama a CreateSubscription (para connection_type: SUBSCRIPTION) o a GetLatestMessage (para connection_type: ON_DEMAND).
Servicios de SDV de Pub/Sub
La telemetría admite por completo la supervisión de los canales de Pub/Sub definidos en VSIDL que exponen los servicios de SDV sin necesidad de configuración adicional. Para obtener más información, consulta Cómo agregar un publicador a un paquete de servicios.
Además de suscribirse a los canales de Pub/Sub, Telemetry también admite la recuperación a pedido del mensaje más reciente publicado en un canal.
Registro de publicadores configurable
Además de recopilar datos de los servicios de SDV con la pila de comunicación de SDV, Telemetry admite la recopilación de datos de aplicaciones y servicios que registran publicadores en el registro de publicadores configurable del servicio de Telemetry. Esta capacidad es más útil en el IVI, donde la pila de comunicaciones del SDV no está disponible.
El registro de publicadores configurable también puede ser útil para la depuración y la creación de prototipos sin tener que escribir paquetes de servicios de SDV. Para obtener más información, consulta Configurable Publisher Registry.