مولد پیکربندی متریک (MCG) سرویسی است که نوشتن پیکربندیهای تلهمتری SDV را ساده میکند. MCG پیکربندیهای JSON قابل خواندن توسط انسان را به فرمت فایل بافر پروتکل MetricsConfiguration (protobuf) باینری مورد نیاز کمپینهای تلهمتری درون خودرویی تبدیل میکند.
MCG یک سرویس وب است که شما با استفاده از درخواستهای استاندارد HTTP با آن تعامل دارید. این رویکرد مبتنی بر API به شما امکان میدهد از ابزارهای خط فرمان مانند curl برای تولید دستی و اشکالزدایی استفاده کنید، یا MCG را به عنوان یک backend برای ابزارهای پیچیدهتر، مانند یک رابط گرافیکی برای ساخت پیکربندیها، ادغام کنید.
ویژگیها
سرویس تلهمتری روی وسیله نقلیه به یک پیام دودویی Protobuf به نام MetricsConfiguration نیاز دارد. اگرچه این پیام میتواند برای اشکالزدایی به صورت فرمت textproto نمایش داده شود، اما نوشتن مستقیم این فرمت نیاز به دانش دقیقی از ساختار سطح پایین آن دارد و میتواند خستهکننده و مستعد خطا باشد. MCG با تغییر نوشتن پیکربندی به فرمت JSON کاربرپسند، این فرآیند را ساده میکند.
MCG شامل ویژگیهای زیر است:
- پیکربندی مبتنی بر JSON: پیکربندی معیارها، شامل منابع داده، منطق پردازش و قوانین گزارشدهی، میتوانند در قالب JSON قابل خواندن توسط انسان تعریف شوند، که MCG آن را به قالب دودویی protobuf مورد نیاز کامپایل میکند.
- اعتبارسنجی داخلی: فرآیند تولید، پیکربندیها را به طور خودکار با تعاریف سیگنال و قوانین طرحواره اعتبارسنجی میکند تا خطاها را قبل از استقرار تشخیص دهد.
- تولید خودکار نوع پیام: تجمیعکنندهها و گزارشها نتایجی تولید میکنند که باید با استفاده از توصیفگرهای پیام protobuf در پیکربندی دودویی نهایی تعریف شوند. MCG ساختار این نتایج را بر اساس انواع سیگنال ورودی و منطق تجمیع استنباط میکند و توصیفگرهای پیام مورد نیاز را به طور خودکار تولید میکند. این امر شما را از نیاز به تعریف دستی طرحوارهها برای ساختارهای داده میانی یا خاص گزارش بینیاز میکند.
- نوشتن آسانتر عبارات: یک دستور زبان سفارشی و قابل خواندن توسط انسان برای تعریف عبارات، از ساخت دستی درختهای عبارات جلوگیری میکند.
گردش کار
استفاده از MCG برای تولید پیکربندی معیارها شامل دو مرحله اصلی است: بارگذاری یکباره هر نسخه از کاتالوگ سیگنال خودرو که قصد استفاده از آن را دارید، و پس از آن نوشتن و تولید پیکربندیهای معیارها به صورت جداگانه.
آپلود تعاریف سیگنال: این مرحله فقط یک بار برای هر نسخه کاتالوگ سیگنال خودرو باید انجام شود. برای فعال کردن اعتبارسنجی و استنتاج نوع، MCG باید به تعاریف سیگنال خودرویی که قصد دارید در پیکربندیهای خود به آن ارجاع دهید، دسترسی داشته باشد. این تعاریف باید از قبل به عنوان فایلهای protobuf در پروژه شما به عنوان بخشی از کاتالوگ VSIDL وجود داشته باشند (یا میتوانید از تعاریف نمونه برای آزمایش استفاده کنید). برای اینکه آنها را در دسترس MCG قرار دهید، آنها را در یک کاتالوگ سیگنال خودرو بستهبندی کرده و با استفاده از API آن را آپلود کنید:
- برای بستهبندی فایلهای protobuf خود در یک FileDescriptorSet، به Create a FileDescriptorSet مراجعه کنید.
- برای رمزگذاری base64 و آپلود کاتالوگ، به افزودن یا بهروزرسانی نسخه کاتالوگ مراجعه کنید.
نوشتن پیکربندی: پس از آپلود نسخه کاتالوگ در MCG، میتوانید هر تعداد پیکربندی معیار که به آن ارجاع میدهند را بنویسید. در پیکربندی JSON، شما تعریف میکنید که از کدام منابع داده استفاده شود، چگونه محاسبات یا تجمیعها روی آن دادهها انجام شود و محرکهایی که زمان تولید نتایج را تعیین میکنند.
تولید: پیکربندی JSON خود را به MCG API ارسال کنید. API پیکربندی را اعتبارسنجی کرده و آن را در قالب
MetricsConfigurationکامپایل میکند. این میتواند به عنوان protobuf باینری (application/x-protobuf) برای استفاده در خودرو یا به عنوان textproto (text/x-protobuf) برای بررسی یا اشکالزدایی درخواست شود.- برای تولید، از دستور POST /api/v1/generate_metrics_config استفاده کنید.
برای جزئیات جامع در مورد تمام نقاط پایانی، قالبهای درخواست و پاسخ و مثالهای کاربرد، به مرجع MCG API مراجعه کنید.
استقرار
به عنوان یک سرویس ابری، MCG به گونهای طراحی شده است که در یک محیط ابری (مانند Google Cloud Run) مستقر شود و یک نقطه مرکزی برای تولید پیکربندی و اعتبارسنجی در بین تیمهای شما فراهم کند. برای دستورالعملهای استقرار، به Deploy to Google Cloud مراجعه کنید.
برای توسعه و آزمایش محلی، MCG همچنین میتواند به عنوان یک سرویس مستقل روی دستگاه توسعهدهنده اجرا شود. برای دستورالعملهای راهاندازی، به Run locally مراجعه کنید.