मेट्रिक कॉन्फ़िगरेशन जनरेटर

Metrics Configuration Generator (MCG) एक ऐसी सेवा है जो SDV टेलीमेट्री कॉन्फ़िगरेशन को आसानी से लिखने में मदद करती है. MCG, ऐसे JSON कॉन्फ़िगरेशन को बाइनरी MetricsConfiguration प्रोटोकॉल बफ़र (protobuf) फ़ाइल फ़ॉर्मैट में बदलता है जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है. यह फ़ाइल फ़ॉर्मैट, वाहन पर टेलीमेट्री कैंपेन चलाने के लिए ज़रूरी होता है.

एमसीजी एक वेब सेवा है. इसके साथ इंटरैक्ट करने के लिए, स्टैंडर्ड एचटीटीपी अनुरोधों का इस्तेमाल किया जाता है. एपीआई पर आधारित इस तरीके से, curl जैसे कमांड-लाइन टूल का इस्तेमाल करके, मैन्युअल तरीके से जनरेट करने और डीबग करने के लिए किया जा सकता है. इसके अलावा, एमसीजी को ज़्यादा बेहतर टूलिंग के लिए बैकएंड के तौर पर इंटिग्रेट किया जा सकता है. जैसे, कॉन्फ़िगरेशन बनाने के लिए ग्राफ़िकल इंटरफ़ेस.

सुविधाएं

वाहन में मौजूद टेलीमेट्री सेवा के लिए, MetricsConfiguration बाइनरी protobuf मैसेज की ज़रूरत होती है. इस मैसेज को डीबग करने के लिए, textproto फ़ॉर्मैट में दिखाया जा सकता है. हालांकि, इस फ़ॉर्मैट को सीधे तौर पर लिखने के लिए, इसके लो-लेवल स्ट्रक्चर के बारे में पूरी जानकारी होना ज़रूरी है. साथ ही, यह मुश्किल और गड़बड़ियों वाला हो सकता है. MCG, कॉन्फ़िगरेशन लिखने की प्रोसेस को आसान बनाता है. इसके लिए, यह उपयोगकर्ता के लिए आसान JSON फ़ॉर्मैट का इस्तेमाल करता है.

एमसीजी में ये सुविधाएं शामिल हैं:

  • JSON पर आधारित कॉन्फ़िगरेशन: डेटा सोर्स, प्रोसेसिंग लॉजिक, और रिपोर्टिंग के नियमों जैसे मेट्रिक कॉन्फ़िगरेशन को, आसानी से पढ़े जा सकने वाले JSON फ़ॉर्मैट में तय किया जा सकता है. MCG, इसे ज़रूरी बाइनरी प्रोटोबफ़ फ़ॉर्मैट में कंपाइल करता है.
  • पहले से मौजूद पुष्टि करने की सुविधा: जनरेट करने की प्रोसेस, सिग्नल की परिभाषाओं और स्कीमा के नियमों के हिसाब से कॉन्फ़िगरेशन की पुष्टि अपने-आप करती है. इससे डिप्लॉयमेंट से पहले ही गड़बड़ियों का पता चल जाता है.
  • मैसेज टाइप अपने-आप जनरेट होना: एग्रीगेटर और रिपोर्ट ऐसे नतीजे जनरेट करते हैं जिन्हें फ़ाइनल बाइनरी कॉन्फ़िगरेशन में, प्रोटोबफ़ मैसेज डिस्क्रिप्टर का इस्तेमाल करके तय किया जाना चाहिए. एमसीजी, इन नतीजों के स्ट्रक्चर का अनुमान, इनपुट सिग्नल टाइप और एग्रीगेशन लॉजिक के आधार पर लगाता है. साथ ही, ज़रूरी मैसेज डिस्क्रिप्टर अपने-आप जनरेट करता है. इससे आपको इंटरमीडिएट या रिपोर्ट से जुड़े डेटा स्ट्रक्चर के लिए, स्कीमा को मैन्युअल तरीके से तय करने की ज़रूरत नहीं पड़ती.
  • एक्सप्रेशन को आसानी से लिखना: एक्सप्रेशन को परिभाषित करने के लिए, कस्टम व्याकरण का इस्तेमाल किया जाता है. यह व्याकरण, लोगों के लिए आसानी से पढ़ा जा सकता है. इससे एक्सप्रेशन ट्री को मैन्युअल तरीके से बनाने की ज़रूरत नहीं पड़ती.

वर्कफ़्लो

मेट्रिक कॉन्फ़िगरेशन जनरेट करने के लिए, MCG का इस्तेमाल करने में दो मुख्य चरण शामिल हैं: पहला, आपको वाहन के सिग्नल कैटलॉग के हर उस वर्शन को एक बार अपलोड करना होगा जिसका आपको इस्तेमाल करना है. दूसरा, अलग-अलग मेट्रिक कॉन्फ़िगरेशन लिखना और जनरेट करना होगा.

  1. सिग्नल की परिभाषाएं अपलोड करें: यह चरण, Vehicle Signal Catalog के हर वर्शन के लिए सिर्फ़ एक बार पूरा करना होता है. पुष्टि करने और टाइप इन्फ़रेंस की सुविधा चालू करने के लिए, MCG के पास उन सिग्नल की परिभाषाओं का ऐक्सेस होना चाहिए जिन्हें आपको अपने कॉन्फ़िगरेशन में रेफ़रंस के तौर पर इस्तेमाल करना है. ये परिभाषाएं, VSIDL कैटलॉग के हिस्से के तौर पर आपके प्रोजेक्ट में protobuf फ़ाइलों के तौर पर पहले से मौजूद होनी चाहिए. इसके अलावा, एक्सपेरिमेंट करने के लिए सैंपल परिभाषाओं का इस्तेमाल किया जा सकता है. MCG के लिए इन्हें उपलब्ध कराने के लिए, इन्हें Vehicle Signal Catalog में पैकेज करें और एपीआई का इस्तेमाल करके इसे अपलोड करें:

  2. राइट कॉन्फ़िगरेशन: MCG पर कैटलॉग का वर्शन अपलोड करने के बाद, इससे जुड़ी मेट्रिक के जितने चाहें उतने कॉन्फ़िगरेशन लिखे जा सकते हैं. JSON कॉन्फ़िगरेशन में, यह तय किया जाता है कि किन डेटा सोर्स का इस्तेमाल करना है, उस डेटा पर कैलकुलेशन या एग्रीगेशन कैसे करना है, और वे ट्रिगर कौनसे हैं जिनसे यह तय होता है कि नतीजे कब जनरेट होंगे.

  3. जनरेट करें: MCG API को अपना JSON कॉन्फ़िगरेशन सबमिट करें. एपीआई, कॉन्फ़िगरेशन की पुष्टि करता है और उसे MetricsConfiguration फ़ॉर्मैट में कंपाइल करता है. इसे वाहन में इस्तेमाल करने के लिए, बाइनरी प्रोटोबफ़ (application/x-protobuf) के तौर पर अनुरोध किया जा सकता है. इसके अलावा, समीक्षा या डीबग करने के लिए, टेक्स्टप्रोटो (text/x-protobuf) के तौर पर अनुरोध किया जा सकता है.

सभी एंडपॉइंट, अनुरोध और जवाब के फ़ॉर्मैट, और इस्तेमाल के उदाहरणों के बारे में पूरी जानकारी पाने के लिए, MCG API का रेफ़रंस देखें.

डिप्लॉयमेंट

क्लाउड-नेटिव सेवा के तौर पर, MCG को क्लाउड एनवायरमेंट (जैसे, Google Cloud Run) में डिप्लॉय करने के लिए डिज़ाइन किया गया है. इससे, आपकी सभी टीमों के लिए कॉन्फ़िगरेशन जनरेट करने और पुष्टि करने के लिए एक सेंट्रल पॉइंट मिलता है. डिप्लॉयमेंट के निर्देशों के लिए, Google Cloud पर डिप्लॉय करना लेख पढ़ें.

लोकल डेवलपमेंट और टेस्टिंग के लिए, MCG को डेवलपर मशीन पर स्टैंडअलोन सेवा के तौर पर भी चलाया जा सकता है. सेटअप करने के निर्देशों के लिए, स्थानीय तौर पर चलाना लेख पढ़ें.