Generator konfiguracji wskaźników (MCG) to usługa, która upraszcza tworzenie konfiguracji telemetrii SDV. MCG przekształca konfiguracje JSON w formacie zrozumiałym dla człowieka w binarny format pliku bufora protokołu MetricsConfiguration (protobuf) wymagany przez kampanie telemetryczne w pojazdach.
MCG to usługa internetowa, z którą wchodzisz w interakcję za pomocą standardowych żądań HTTP. To podejście oparte na interfejsie API umożliwia korzystanie z narzędzi wiersza poleceń, takich jak curl, do ręcznego generowania i debugowania lub integrowanie MCG jako backendu bardziej zaawansowanych narzędzi, takich jak interfejs graficzny do tworzenia konfiguracji.
Funkcje
Usługa telemetrii w pojeździe wymaga binarnej wiadomości MetricsConfiguration w formacie protobuf. Chociaż tę wiadomość można przedstawić w formacie textproto na potrzeby debugowania, bezpośrednie tworzenie tego formatu wymaga szczegółowej wiedzy o jego strukturze niskiego poziomu i może być żmudne oraz podatne na błędy. MCG upraszcza ten proces, przenosząc tworzenie konfiguracji do przyjaznego dla użytkownika formatu JSON.
MCG obejmuje te funkcje:
- Konfiguracja oparta na JSON: konfiguracje danych, w tym źródła danych, logika przetwarzania i reguły raportowania, można zdefiniować w formacie JSON zrozumiałym dla człowieka, który MCG kompiluje do wymaganego binarnego formatu protobuf.
- Wbudowana weryfikacja: proces generowania automatycznie weryfikuje konfiguracje pod kątem definicji sygnałów i reguł schematu, aby wykrywać błędy przed wdrożeniem.
- Automatyczne generowanie typów wiadomości: agregatory i raporty generują wyniki, które muszą być zdefiniowane przy użyciu deskryptorów wiadomości protobuf w końcowej konfiguracji binarnej. MCG wnioskuje strukturę tych wyników na podstawie typów sygnałów wejściowych i logiki agregacji oraz automatycznie generuje wymagane deskryptory wiadomości. Dzięki temu nie musisz ręcznie definiować schematów dla pośrednich lub specyficznych dla raportu struktur danych.
- Łatwiejsze tworzenie wyrażeń: niestandardowa, czytelna dla człowieka gramatyka do definiowania wyrażeń pozwala uniknąć ręcznego tworzenia drzew wyrażeń.
Przepływ pracy
Generowanie konfiguracji danych w MCG obejmuje 2 główne etapy: jednorazowe przesłanie każdej wersji katalogu sygnałów pojazdu, której zamierzasz używać, a następnie napisanie i wygenerowanie poszczególnych konfiguracji danych.
Prześlij definicje sygnałów: ten krok należy wykonać tylko raz dla każdej wersji katalogu sygnałów pojazdu. Aby włączyć weryfikację i wnioskowanie o typie, MCG musi mieć dostęp do definicji sygnałów pojazdu, do których chcesz się odwoływać w konfiguracjach. Te definicje powinny już istnieć w projekcie jako pliki protobuf w ramach katalogu VSIDL (możesz też użyć przykładowych definicji do eksperymentowania). Aby udostępnić je w MCG, spakuj je w katalog sygnałów pojazdu i prześlij za pomocą interfejsu API:
- Aby spakować pliki protobuf w FileDescriptorSet, zapoznaj się z artykułem Tworzenie FileDescriptorSet.
- Aby zakodować katalog w formacie base64 i przesłać go, przeczytaj artykuł Dodawanie lub aktualizowanie wersji katalogu.
Konfiguracja zapisu: po przesłaniu wersji katalogu do MCG możesz zapisać dowolną liczbę konfiguracji danych, które się do niej odwołują. W konfiguracji JSON określasz, których źródeł danych używać, jak przeprowadzać obliczenia lub agregacje na tych danych oraz jakie wyzwalacze określają, kiedy generowane są wyniki.
Wygeneruj: prześlij konfigurację JSON do interfejsu MCG API. Interfejs API sprawdza poprawność konfiguracji i kompiluje ją do formatu
MetricsConfiguration. Możesz poprosić o przesłanie go w formacie binarnym protobuf (application/x-protobuf) do użytku w pojeździe lub w formacie textproto (text/x-protobuf) do sprawdzenia lub debugowania.- Aby wygenerować konfigurację, użyj POST /api/v1/generate_metrics_config.
Szczegółowe informacje o wszystkich punktach końcowych, formatach żądań i odpowiedzi oraz przykłady użycia znajdziesz w dokumentacji interfejsu MCG API.
Wdrożenie
MCG to usługa natywna dla chmury, która jest przeznaczona do wdrażania w środowisku chmurowym (np. Google Cloud Run). Zapewnia ona centralny punkt generowania i weryfikowania konfiguracji w zespołach. Instrukcje wdrażania znajdziesz w artykule Wdrażanie w Google Cloud.
Na potrzeby lokalnego programowania i testowania MCG można też uruchomić jako samodzielną usługę na komputerze dewelopera. Instrukcje konfiguracji znajdziesz w sekcji Uruchamianie lokalne.