El Generador de configuración de métricas (MCG) es un servicio que simplifica la creación de configuraciones de telemetría de SDV. MCG convierte las configuraciones JSON legibles por humanos en el formato de archivo binario MetricsConfiguration de búfer de protocolo (protobuf) que requieren las campañas de telemetría en el vehículo.
MCG es un servicio web con el que interactúas a través de solicitudes HTTP estándar. Este enfoque basado en la API te permite usar herramientas de línea de comandos como curl para la generación y la depuración manuales, o bien integrar MCG como backend para herramientas más sofisticadas, como una interfaz gráfica para compilar configuraciones.
Funciones
El servicio de telemetría del vehículo requiere un mensaje MetricsConfiguration binario de protobuf. Si bien este mensaje se puede representar como formato textproto para la depuración, la creación de este formato directamente requiere un conocimiento detallado de su estructura de bajo nivel y puede ser tediosa y propensa a errores. MCG optimiza este proceso trasladando la creación de la configuración a un formato JSON fácil de usar.
MCG incluye las siguientes funciones:
- Configuración basada en JSON: Las configuraciones de métricas, incluidas las fuentes de datos, la lógica de procesamiento y las reglas de informes, se pueden definir en un formato JSON legible, que MCG compila en el formato protobuf binario requerido.
- Validación integrada: El proceso de generación valida automáticamente las configuraciones en función de las definiciones de indicadores y las reglas de esquema para detectar errores antes de la implementación.
- Generación automática de tipos de mensajes: Los agregadores y los informes producen resultados que se deben definir con descriptores de mensajes de protobuf en la configuración binaria final. MCG infiere la estructura de estos resultados en función de los tipos de señales de entrada y la lógica de agregación, y genera automáticamente los descriptores de mensajes requeridos. Esto te libera de la necesidad de definir manualmente esquemas para estructuras de datos intermedias o específicas de informes.
- Creación de expresiones más sencilla: Una gramática personalizada legible para definir expresiones evita la construcción manual de árboles de expresiones.
Flujo de trabajo
El uso de MCG para generar configuraciones de métricas implica dos fases principales: una carga única de cada versión del Catálogo de señales de vehículos que pretendas usar, seguida de la escritura y la generación de configuraciones de métricas individuales.
Sube definiciones de indicadores: Este paso solo debe realizarse una vez por versión del catálogo de indicadores del vehículo. Para habilitar la validación y la inferencia de tipos, MCG debe tener acceso a las definiciones de indicadores del vehículo a las que deseas hacer referencia en tus configuraciones. Estas definiciones ya deben existir como archivos .proto en tu proyecto como parte del catálogo de VSIDL (o puedes usar definiciones de muestra para experimentar). Para que estén disponibles en MCG, empaquétalas en un catálogo de indicadores del vehículo y súbelo con la API:
- Para empaquetar tus archivos .proto en un FileDescriptorSet, consulta Cómo crear un FileDescriptorSet.
- Para codificar en Base64 y subir el catálogo, consulta Cómo agregar o actualizar una versión del catálogo.
Configuración de escritura: Después de subir una versión del catálogo a MCG, puedes escribir cualquier cantidad de configuraciones de métricas que hagan referencia a ella. En la configuración de JSON, defines qué fuentes de datos usar, cómo realizar cálculos o agregaciones sobre esos datos y los activadores que determinan cuándo se generan los resultados.
Generar: Envía tu configuración en formato JSON a la API de MCG. La API valida la configuración y la compila en formato
MetricsConfiguration. Esto se puede solicitar como protobuf binario (application/x-protobuf) para usarlo en el vehículo o como textproto (text/x-protobuf) para revisarlo o depurarlo.- Para generar, usa POST /api/v1/generate_metrics_config.
Para obtener detalles completos sobre todos los extremos, los formatos de solicitud y respuesta, y los ejemplos de uso, consulta la referencia de la API de MCG.
Implementación
Como servicio nativo de la nube, MCG está diseñado para implementarse en un entorno de nube (como Google Cloud Run), lo que proporciona un punto central para la generación y validación de la configuración en todos tus equipos. Para obtener instrucciones de implementación, consulta Implementa en Google Cloud.
Para el desarrollo y las pruebas locales, MCG también se puede ejecutar como un servicio independiente en una máquina de desarrollador. Para obtener instrucciones de configuración, consulta Ejecuta localmente.