Der Metrics Configuration Generator (MCG) ist ein Dienst, der das Erstellen von SDV-Telemetriekonfigurationen vereinfacht. MCG konvertiert für Menschen lesbare JSON-Konfigurationen in das binäre MetricsConfiguration-Protokollpufferformat (protobuf), das für Telemetriekampagnen im Fahrzeug erforderlich ist.
MCG ist ein Webdienst, mit dem Sie über Standard-HTTP-Anfragen interagieren. Mit diesem API-basierten Ansatz können Sie Befehlszeilentools wie curl für die manuelle Generierung und das Debugging verwenden oder MCG als Backend für komplexere Tools wie eine grafische Benutzeroberfläche zum Erstellen von Konfigurationen einbinden.
Features
Für den Telemetriedienst im Fahrzeug ist eine binäre MetricsConfiguration-Protobuf-Nachricht erforderlich. Diese Nachricht kann zwar zur Fehlerbehebung im Textproto-Format dargestellt werden, das direkte Erstellen dieses Formats erfordert jedoch detaillierte Kenntnisse der zugrunde liegenden Struktur und kann mühsam und fehleranfällig sein. MCG vereinfacht diesen Prozess, indem die Konfiguration in ein nutzerfreundliches JSON-Format verschoben wird.
MCG bietet die folgenden Features:
- JSON-basierte Konfiguration: Messwertkonfigurationen, einschließlich Datenquellen, Verarbeitungslogik und Berichtsregeln, können in einem für Menschen lesbaren JSON-Format definiert werden, das von MCG in das erforderliche binäre Protobuf-Format kompiliert wird.
- Integrierte Validierung: Beim Generieren werden Konfigurationen automatisch anhand von Signaldaten und Schemaregeln validiert, um Fehler vor der Bereitstellung zu erkennen.
- Automatische Generierung von Nachrichtentypen: Aggregatoren und Berichte liefern Ergebnisse, die in der endgültigen binären Konfiguration mit Protobuf-Nachrichtendeskriptoren definiert werden müssen. MCG leitet die Struktur dieser Ergebnisse anhand der Eingabesignaltypen und der Aggregationslogik ab und generiert automatisch die erforderlichen Nachrichtendeskriptoren. So müssen Sie keine Schemas für Zwischen- oder berichtsspezifische Datenstrukturen manuell definieren.
- Einfachere Erstellung von Ausdrücken: Eine benutzerdefinierte, für Menschen lesbare Grammatik zum Definieren von Ausdrücken vermeidet das manuelle Erstellen von Ausdrucksbäumen.
Workflow
Die Verwendung von MCG zum Generieren von Messwertkonfigurationen umfasst zwei Hauptphasen: einen einmaligen Upload jeder Version des Vehicle Signal Catalog, die Sie verwenden möchten, gefolgt vom Schreiben und Generieren einzelner Messwertkonfigurationen.
Signaldaten hochladen: Dieser Schritt muss nur einmal pro Version des Vehicle Signal Catalog ausgeführt werden. Damit die Validierung und Typableitung möglich sind, muss MCG Zugriff auf die Signaldaten haben, auf die Sie in Ihren Konfigurationen verweisen möchten. Diese Definitionen sollten bereits als Protobuf-Dateien in Ihrem Projekt als Teil des VSIDL-Katalogs vorhanden sein. Sie können auch Beispieldaten verwenden, um zu experimentieren. Wenn Sie sie für MCG verfügbar machen möchten, packen Sie sie in einen Vehicle Signal Catalog und laden Sie ihn über die API hoch:
- Informationen zum Packen von Protobuf-Dateien in ein FileDescriptorSet finden Sie unter Create a FileDescriptorSet.
- Informationen zum Base64-Codieren und Hochladen des Katalogs finden Sie unter Katalogversion hinzufügen oder aktualisieren.
Konfiguration schreiben: Nachdem eine Katalogversion in MCG hochgeladen wurde, können Sie beliebig viele Messwertkonfigurationen schreiben, die darauf verweisen. In der JSON-Konfiguration definieren Sie, welche Datenquellen verwendet werden sollen, wie Berechnungen oder Aggregationen für diese Daten ausgeführt werden und welche Trigger bestimmen, wann Ergebnisse generiert werden.
Generieren: Senden Sie Ihre JSON-Konfiguration an die MCG API. Die API validiert die Konfiguration und kompiliert sie in das
MetricsConfiguration-Format. Dies kann als binärer Protobuf (application/x-protobuf) für die Verwendung im Fahrzeug oder als Textproto (text/x-protobuf) zur Überprüfung oder Fehlerbehebung angefordert werden.- Verwenden Sie zum Generieren POST /api/v1/generate_metrics_config.
Ausführliche Informationen zu allen Endpunkten, Anfrage- und Antwortformaten sowie Nutzungsbeispielen finden Sie in der MCG API-Referenz.
Bereitstellung
Als cloudnativer Dienst ist MCG für die Bereitstellung in einer Cloud-Umgebung (z. B. Google Cloud Run) konzipiert und bietet einen zentralen Punkt für die Konfigurationsgenerierung und -validierung für alle Ihre Teams. Eine Anleitung zur Bereitstellung finden Sie unter In Google Cloud bereitstellen.
Für die lokale Entwicklung und das Testen kann MCG auch als eigenständiger Dienst auf einem Entwicklercomputer ausgeführt werden. Eine Anleitung zur Einrichtung finden Sie unter Lokal ausführen.