Metrics Configuration Generator (MCG) è un servizio che semplifica la creazione di configurazioni di telemetria SDV. MCG converte le configurazioni JSON leggibili in formato di file binario MetricsConfiguration buffer di protocollo (protobuf) richiesto dalle campagne di telemetria sui veicoli.
MCG è un servizio web con cui interagisci utilizzando le richieste HTTP standard. Questo approccio basato su API ti consente di utilizzare strumenti a riga di comando come curl per la generazione e il debug manuali o di integrare MCG come backend per strumenti più sofisticati, ad esempio un'interfaccia grafica per la creazione di configurazioni.
Funzionalità
Il servizio di telemetria sul veicolo richiede un messaggio protobuf binario MetricsConfiguration. Sebbene questo messaggio possa essere rappresentato in formato textproto per il debug, la creazione diretta di questo formato richiede una conoscenza dettagliata della sua struttura di basso livello e può essere noiosa e soggetta a errori. MCG semplifica questo processo spostando la creazione della configurazione in un formato JSON di facile utilizzo.
MCG include le seguenti funzionalità:
- Configurazione basata su JSON: le configurazioni delle metriche, incluse le origini dati, la logica di elaborazione e le regole di generazione di report, possono essere definite in un formato JSON leggibile, che MCG compila nel formato protobuf binario richiesto.
- Convalida integrata: il processo di generazione convalida automaticamente le configurazioni in base alle definizioni degli indicatori e alle regole dello schema per rilevare gli errori prima del deployment.
- Generazione automatica del tipo di messaggio: gli aggregatori e i report producono risultati che devono essere definiti utilizzando i descrittori dei messaggi protobuf nella configurazione binaria finale. MCG deduce la struttura di questi risultati in base ai tipi di segnali di input e alla logica di aggregazione e genera automaticamente i descrittori dei messaggi richiesti. In questo modo non è necessario definire manualmente gli schemi per le strutture di dati intermedie o specifiche dei report.
- Creazione di espressioni più semplice: una grammatica personalizzata leggibile per definire le espressioni evita di costruire manualmente gli alberi delle espressioni.
Flusso di lavoro
L'utilizzo di MCG per generare configurazioni delle metriche prevede due fasi principali: un caricamento una tantum di ogni versione del catalogo dei segnali del veicolo che intendi utilizzare, seguito dalla scrittura e dalla generazione di singole configurazioni delle metriche.
Carica le definizioni dei segnali: questo passaggio deve essere eseguito una sola volta per ogni versione del catalogo dei segnali del veicolo. Per abilitare la convalida e l'inferenza dei tipi, MCG deve avere accesso alle definizioni dei segnali del veicolo a cui intendi fare riferimento nelle tue configurazioni. Queste definizioni devono già esistere come file protobuf nel tuo progetto come parte del catalogo VSIDL (oppure puoi utilizzare definizioni di esempio per sperimentare). Per renderle disponibili a MCG, comprimile in un catalogo dei segnali del veicolo e caricalo utilizzando l'API:
- Per comprimere i file protobuf in un FileDescriptorSet, vedi Creare un FileDescriptorSet.
- Per codificare in base64 e caricare il catalogo, vedi Aggiungere o aggiornare una versione del catalogo.
Scrivi la configurazione: dopo aver caricato una versione del catalogo in MCG, puoi scrivere un numero qualsiasi di configurazioni delle metriche che fanno riferimento a questa versione. Nella configurazione JSON, definisci le origini dati da utilizzare, come eseguire calcoli o aggregazioni su questi dati e i trigger che determinano quando vengono generati i risultati.
Genera: invia la configurazione JSON all'API MCG. L'API convalida la configurazione e la compila nel formato
MetricsConfiguration. Può essere richiesta come protobuf binario (application/x-protobuf) per l'utilizzo sul veicolo o come textproto (text/x-protobuf) per la revisione o il debug.- Per generare, utilizza POST /api/v1/generate_metrics_config.
Per informazioni dettagliate su tutti gli endpoint, i formati di richiesta e risposta e gli esempi di utilizzo, consulta il riferimento dell'API MCG.
Deployment
In quanto servizio cloud-native, MCG è progettato per essere sottoposto a deployment in un ambiente cloud (ad esempio Google Cloud Run), fornendo un punto centrale per la generazione e la convalida della configurazione per tutti i team. Per le istruzioni di deployment, vedi Eseguire il deployment su Google Cloud.
Per lo sviluppo e il test in locale, MCG può essere eseguito anche come servizio autonomo su una macchina di sviluppo. Per le istruzioni di configurazione, vedi Eseguire in locale.