Генератор конфигурации показателей (MCG) – это сервис, который упрощает создание конфигураций телеметрии SDV. MCG преобразует человекочитаемые конфигурации JSON в двоичный формат файла буфера протокола (protobuf) MetricsConfiguration, необходимый для кампаний телеметрии в автомобиле.
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 в MCG API. API проверяет конфигурацию и компилирует ее в формат
MetricsConfiguration. Его можно запросить в виде двоичного файла protobuf (application/x-protobuf) для использования в автомобиле или в виде файла textproto (text/x-protobuf) для проверки или отладки.- Чтобы создать конфигурацию, используйте POST /api/v2/generate_metrics_config.
Подробную информацию обо всех конечных точках, форматах запросов и ответов, а также примеры использования можно найти в документации по MCG API.
Развертывание
MCG – это облачный сервис, предназначенный для развертывания в облачной среде (например, Google Cloud Run). Он предоставляет централизованную точку для создания и проверки конфигураций в ваших командах. Инструкции по развертыванию приведены в статье Развертывание в Google Cloud.
Для локальной разработки и тестирования MCG также можно запустить как отдельный сервис на компьютере разработчика. Инструкции по настройке приведены в разделе Локальный запуск.