Генератор конфигураций метрик (MCG) — это сервис, упрощающий создание конфигураций телеметрии SDV. MCG преобразует удобочитаемые конфигурации JSON в двоичный формат файла протокола MetricsConfiguration (protobuf), необходимый для проведения телеметрических кампаний на борту транспортного средства.
MCG — это веб-сервис, с которым вы взаимодействуете с помощью стандартных HTTP-запросов. Такой подход, основанный на API, позволяет использовать инструменты командной строки, такие как curl , для ручной генерации и отладки, или интегрировать MCG в качестве бэкэнда для более сложных инструментов, таких как графический интерфейс для построения конфигураций.
Функции
Для работы службы телеметрии на транспортном средстве требуется двоичное сообщение protobuf MetricsConfiguration . Хотя это сообщение можно представить в формате textproto для отладки, создание такого сообщения напрямую требует детального знания его низкоуровневой структуры и может быть утомительным и чреватым ошибками. MCG упрощает этот процесс, переводя создание конфигурации в удобный для пользователя формат JSON.
MCG включает в себя следующие функции:
- Конфигурация на основе JSON: Конфигурации метрик, включая источники данных, логику обработки и правила формирования отчетов, могут быть определены в удобочитаемом формате JSON, который MCG компилирует в необходимый бинарный формат protobuf.
- Встроенная проверка: процесс генерации автоматически проверяет конфигурации на соответствие определениям сигналов и правилам схемы для выявления ошибок перед развертыванием.
- Автоматическая генерация типов сообщений: Агрегаторы и отчеты создают результаты, которые должны быть определены с помощью дескрипторов сообщений protobuf в окончательной бинарной конфигурации. MCG определяет структуру этих результатов на основе типов входных сигналов и логики агрегации и автоматически генерирует необходимые дескрипторы сообщений. Это избавляет вас от необходимости вручную определять схемы для промежуточных или специфичных для отчетов структур данных.
- Упрощенное создание выражений: специально разработанная удобочитаемая грамматика для определения выражений позволяет избежать ручного построения деревьев выражений.
Рабочий процесс
Использование MCG для генерации конфигураций метрик включает два основных этапа: однократную загрузку каждой версии каталога сигналов транспортных средств, которую вы планируете использовать, а затем написание и генерацию отдельных конфигураций метрик.
Загрузка определений сигналов: Этот шаг необходимо выполнить только один раз для каждой версии каталога сигналов транспортных средств. Для включения проверки и определения типов MCG должен иметь доступ к определениям сигналов транспортных средств, на которые вы собираетесь ссылаться в своих конфигурациях. Эти определения уже должны существовать в виде файлов protobuf в вашем проекте как часть каталога VSIDL (или вы можете использовать примеры определений для экспериментов). Чтобы сделать их доступными для MCG, упакуйте их в каталог сигналов транспортных средств и загрузите его с помощью API:
- Чтобы упаковать файлы protobuf в FileDescriptorSet, см. раздел «Создание FileDescriptorSet» .
- Чтобы закодировать и загрузить каталог в формате base64, см. раздел «Добавление или обновление версии каталога» .
Настройка конфигурации: После загрузки версии каталога в MCG вы можете написать любое количество конфигураций метрик, которые будут ссылаться на нее. В конфигурации JSON вы определяете, какие источники данных использовать, как выполнять вычисления или агрегирование этих данных, а также триггеры, определяющие, когда генерируются результаты.
Генерация: Отправьте свою конфигурацию в формате JSON в API MCG. API проверяет конфигурацию и компилирует ее в формат
MetricsConfiguration. Ее можно запросить как бинарный файл protobuf (application/x-protobuf) для использования в автомобиле или как текстовый файл proto (text/x-protobuf) для проверки или отладки.- Для генерации используйте POST /api/v1/generate_metrics_config .
Подробную информацию обо всех конечных точках, форматах запросов и ответов, а также примерах использования см. в справочнике API MCG .
Развертывание
Будучи облачным сервисом, MCG предназначен для развертывания в облачной среде (например, Google Cloud Run), предоставляя централизованную точку для генерации и проверки конфигурации для всех ваших команд. Инструкции по развертыванию см. в разделе «Развертывание в Google Cloud» .
Для локальной разработки и тестирования MCG также можно запустить как автономную службу на компьютере разработчика. Инструкции по настройке см. в разделе «Запуск локально» .