מחולל הגדרות המדדים (MCG) הוא שירות שמפשט את יצירת ההגדרות של טלמטריה של SDV. MCG ממיר הגדרות JSON שקריאות לאנשים לפורמט קובץ בינארי MetricsConfiguration של מאגר אחסון לפרוטוקולים (protobuf) שנדרש לקמפיינים של טלמטריה ברכב.
MCG הוא שירות אינטרנט שמתקשרים איתו באמצעות בקשות HTTP רגילות. הגישה הזו מבוססת על API ומאפשרת לכם להשתמש בכלים של שורת הפקודה כמו curl ליצירה ולניפוי באגים באופן ידני, או לשלב את MCG כקצה עורפי (backend) לכלים מתוחכמים יותר, כמו ממשק גרפי ליצירת הגדרות.
תכונות
שירות הטלמטריה ברכב דורש הודעת MetricsConfiguration protobuf בינארית. אפשר להציג את ההודעה הזו בפורמט textproto לצורך ניפוי באגים, אבל כדי ליצור את הפורמט הזה ישירות נדרש ידע מפורט במבנה הבסיסי שלו, והתהליך יכול להיות מייגע ומועד לשגיאות. הכלי MCG מייעל את התהליך הזה על ידי העברת יצירת ההגדרות לפורמט JSON ידידותי למשתמש.
MCG כולל את התכונות הבאות:
- הגדרה מבוססת-JSON: אפשר להגדיר הגדרות של מדדים, כולל מקורות נתונים, לוגיקה של עיבוד וכללי דיווח, בפורמט JSON שנוח לקריאה. MCG מהדר את ההגדרות האלה לפורמט הבינארי הנדרש של protobuf.
- אימות מובנה: תהליך היצירה מאמת באופן אוטומטי את ההגדרות מול הגדרות האותות וכללי הסכימה כדי לזהות שגיאות לפני הפריסה.
- יצירה אוטומטית של סוגי הודעות: צוברים ודוחות מפיקים תוצאות שצריך להגדיר באמצעות מתארי הודעות של protobuf בהגדרה הבינארית הסופית. MCG מסיק את המבנה של התוצאות האלה על סמך סוגי אותות קלט ולוגיקת צבירה, ומפיק באופן אוטומטי את מתארי ההודעות הנדרשים. כך אתם לא צריכים להגדיר באופן ידני סכימות של מבני נתונים ביניים או מבני נתונים ספציפיים לדוחות.
- יצירת ביטויים קלה יותר: דקדוק מותאם אישית שקריא לאנשים מאפשר להגדיר ביטויים בלי ליצור ידנית עצי ביטויים.
תהליך עבודה
השימוש ב-MCG ליצירת הגדרות של מדדים כולל שני שלבים עיקריים: העלאה חד-פעמית של כל גרסה של Vehicle Signal Catalog שרוצים להשתמש בה, ואז כתיבה ויצירה של הגדרות מדדים נפרדות.
העלאת הגדרות של אותות: צריך לבצע את השלב הזה רק פעם אחת לכל גרסה של קטלוג האותות של הרכב. כדי להפעיל אימות והסקת סוגים, ל-MCG צריכה להיות גישה להגדרות של אותות הרכב שאתם מתכוונים להפנות אליהן בהגדרות שלכם. ההגדרות האלה כבר אמורות להיות קיימות כקבצי protobuf בפרויקט שלכם כחלק מקטלוג VSIDL (או שאתם יכולים להשתמש בהגדרות לדוגמה כדי להתנסות). כדי להפוך אותם לזמינים ל-MCG, צריך לארוז אותם ב-Vehicle Signal Catalog ולהעלות אותו באמצעות ה-API:
- כדי לארוז את קובצי ה-protobuf שלכם ב-FileDescriptorSet, אפשר לעיין במאמר בנושא יצירת 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), ומספק נקודה מרכזית ליצירת תצורה ואימות שלה בכל הצוותים. הוראות הפריסה מופיעות במאמר פריסה ב-Google Cloud.
לפיתוח ולבדיקה מקומיים, אפשר להריץ את MCG גם כשירות עצמאי במחשב של המפתח. הוראות להגדרה מופיעות במאמר הרצה מקומית.