मेट्रिक कॉन्फ़िगरेशन से, टेलीमेट्री कैंपेन तय होते हैं. इन कैंपेन को टेलीमेट्री सेवा चलाती है. मेट्रिक कॉन्फ़िगरेशन, MetricsConfig
प्रोटोकॉल बफ़र (प्रोटोबफ़) मैसेज का एक इंस्टेंस होता है. मेट्रिक कॉन्फ़िगरेशन से यह तय होता है कि डेटा को कैसे इकट्ठा, प्रोसेस, और रिपोर्ट किया जाए. ओईएम, टेलीमेट्री सेवा के एपीआई के ज़रिए मेट्रिक कॉन्फ़िगरेशन चालू कर सकते हैं. एक साथ कई कॉन्फ़िगरेशन चलाए जा सकते हैं.
शुरू करने से पहले, SDV आर्किटेक्चर के बारे में जान लें. यह सेवा-उन्मुख आर्किटेक्चर है, जो protobuf मैसेज के तौर पर डेटा पब्लिश करता है. ये मैसेज, एसडीवी कम्यूनिकेशन स्टैक का इस्तेमाल करके, आरपीसी या पब्लिश-सब्सक्राइब के ज़रिए कम्यूनिकेट करते हैं.
मुख्य शब्द
मेट्रिक कॉन्फ़िगरेशन, डेटा सोर्स, प्रोसेसिंग के नियम, और रिपोर्टिंग के तरीके तय करके डेटा कलेक्शन को व्यवस्थित करता है. इस एज प्रोसेसिंग का एक मुख्य फ़ायदा यह है कि इससे मोबाइल डेटा का इस्तेमाल कम होता है. डिवाइस पर ज़्यादा फ़्रीक्वेंसी वाले डेटा को प्रोसेस करके और सिर्फ़ एग्रीगेट या अहम जानकारी अपलोड करके, क्लाउड पर भेजे जाने वाले डेटा की मात्रा को काफ़ी हद तक कम किया जा सकता है.
मेट्रिक कॉन्फ़िगरेशन की परिभाषा में, सबसे पहले कॉन्फ़िगरेशन में इस्तेमाल किए जाने वाले डेटा सोर्स की सूची दी जाती है. ये ऐसी सेवाएं हैं जो SDV कम्यूनिकेशन स्टैक के ज़रिए डेटा उपलब्ध कराती हैं. किसी कॉन्फ़िगरेशन को चालू करने पर, टेलीमेट्री सेवा इन सोर्स से कनेक्ट होती है, ताकि ज़रूरत के मुताबिक डेटा स्ट्रीम या फ़ेच किया जा सके.
कॉन्फ़िगरेशन की मुख्य बात यह है कि इसमें एज डेटा प्रोसेसिंग की सुविधा होती है. इसे स्टेटफ़ुल डेटा एग्रीगेटर के ज़रिए मैनेज किया जाता है. हर एग्रीगेटर, मैसेज बिल्डर का इस्तेमाल करता है. यह स्टेटफ़ुल प्रोटो मैसेज इंस्टेंस को बनाए रखता है. इस मैसेज में मौजूद हर फ़ील्ड में, किसी एक्सप्रेशन का आकलन करके वैल्यू भरी जाती है. इससे यह तय होता है कि अन्य डेटा सोर्स या एग्रीगेटर से कौनसा डेटा पढ़ना है और डेटा पर कौनसा गणितीय, तार्किक या एग्रीगेशन ऑपरेशन लागू करना है. किसी एक्सप्रेशन के नतीजे पर अतिरिक्त एग्रीगेशन लागू किए जा सकते हैं.
इस प्रोसेस को कंट्रोल करने के लिए, ट्रिगर सबसे ज़रूरी होते हैं. ये समय-समय पर ट्रिगर हो सकते हैं. इसके अलावा, नए डेटा के जवाब में या डेटा पर आधारित शर्तों के पूरा होने पर भी ट्रिगर हो सकते हैं. ट्रिगर से यह तय होता है कि एग्रीगेटर, मैसेज बिल्डर का आकलन कब करेंगे और मेट्रिक रिपोर्ट कब जनरेट होंगी. साथ ही, ये कॉन्फ़िगरेशन के लाइफ़साइकल पर भी असर डाल सकते हैं. उदाहरण के लिए, डेटा कलेक्शन शुरू या बंद करके.
मेट्रिक रिपोर्ट, फ़ाइनल आउटपुट होती हैं. हर रिपोर्ट में, मैसेज बिल्डर के ज़रिए तय किया गया डेटा पेलोड शामिल होता है. साथ ही, इसमें टाइमस्टैंप और रिपोर्ट आईडी जैसे मेटाडेटा भी शामिल होते हैं. कॉन्फ़िगरेशन के लाइफ़साइकल के खास चरणों में रिपोर्ट जनरेट की जा सकती हैं. जैसे, कॉन्फ़िगरेशन चालू या बंद होने पर. जनरेट की गई रिपोर्ट, मेमोरी में सेव की जाती हैं. साथ ही, क्लाइंट को रिपोर्ट की स्थिति से जुड़ी सूचना के चैनल के ज़रिए, रिपोर्ट को वापस पाने के लिए सूचना दी जाती है.
यहां दिए गए डायग्राम में, यह दिखाया गया है कि मेट्रिक कॉन्फ़िगरेशन में कॉम्पोनेंट कैसे इंटरैक्ट कर सकते हैं:
पहली इमेज. मेट्रिक कॉन्फ़िगरेशन में डेटा सोर्स, प्रोसेसिंग, और रिपोर्टिंग.
मेट्रिक कॉन्फ़िगरेशन कॉम्पोनेंट
डेटा कलेक्शन के टास्क और डिवाइस पर प्रोसेस करने वाली जटिल पाइपलाइन तय करने के लिए, मेट्रिक कॉन्फ़िगरेशन का इस्तेमाल किया जा सकता है. इस सेक्शन में, मेट्रिक कैंपेन को तय करने के लिए इस्तेमाल किए गए मुख्य कॉम्पोनेंट के बारे में बताया गया है. कॉम्पोनेंट को उस क्रम में दिखाया जाता है जिस क्रम में डेटा, सिस्टम में इनपुट से आउटपुट तक जाता है. इन कॉम्पोनेंट को किसी भी क्रम में तय किया जा सकता है. डेटा एग्रीगेटर की मदद से डेटा प्रोसेस करना और लाइफ़साइकल मैनेजमेंट करना ज़रूरी नहीं है.
- डेटा सोर्स तय करना
- एग्रीगेटर की मदद से डेटा प्रोसेस करना
- ट्रिगर की मदद से, एक्ज़ीक्यूशन फ़्लो को कंट्रोल करना
- मेट्रिक रिपोर्ट जनरेट करना
- डेटा कलेक्शन के लाइफ़साइकल को मैनेज करना
डेटा सोर्स तय करना
किसी भी मेट्रिक कैंपेन का आधार डेटा होता है. मेट्रिक कॉन्फ़िगरेशन में, डेटा पाने का तरीका छिपा होता है. आपको सिर्फ़ उस नाम को तय करना होता है जिससे डेटा सोर्स की पहचान की जा सके. साथ ही, कनेक्शन का मोड (सदस्यता या मांग पर) तय करना होता है. डेटा सोर्स, ऐसी कोई भी सेवा हो सकती है जो SDV कम्यूनिकेशन स्टैक के ज़रिए डेटा उपलब्ध कराती है या कॉन्फ़िगर की जा सकने वाली पब्लिशर रजिस्ट्री में खुद को रजिस्टर करती है. इससे उन ऐप्लिकेशन से डेटा कलेक्शन किया जा सकता है जहां SDV मिडलवेयर उपलब्ध नहीं है. कॉन्फ़िगरेशन में हर डेटा सोर्स का नाम यूनीक होना चाहिए, ताकि इसे ट्रिगर या एग्रीगेटर जैसे अन्य मेट्रिक कॉन्फ़िगरेशन कॉम्पोनेंट से रेफ़र किया जा सके. यह कॉन्फ़िगर किया जा सकता है कि यह कैसे कनेक्ट होता है, इसे कितनी बार डेटा मिलता है, और सेवा के हिसाब से कॉन्फ़िगरेशन ऑब्जेक्ट दिया जा सकता है.
डेटा सोर्स कॉन्फ़िगर करना
टेलीमेट्री सेवा, डेटा सोर्स से दो तरीकों से कनेक्ट हो सकती है:
- गेटर: यह तरीका, मांग पर डेटा फ़ेच करता है. ऐसा तब होता है, जब मेट्रिक कॉन्फ़िगरेशन में तय किए गए किसी एक्सप्रेशन को इस सोर्स से डेटा पढ़ने की ज़रूरत होती है. यह उन डेटा सोर्स के लिए फ़ायदेमंद है जो लगातार स्ट्रीम नहीं करते या जब आपको डेटा के स्नैपशॉट कभी-कभी चाहिए होते हैं.
- सदस्यता: यह डिफ़ॉल्ट तरीका है. यह सोर्स से लगातार डेटा स्ट्रीम करता है. अगर आपको ऐसे डेटा ट्रिगर का इस्तेमाल करना है जो इस सोर्स से नए मैसेज मिलने पर ट्रिगर होता है, तो इस तरह का कनेक्शन ज़रूरी है.
सदस्यता का इस्तेमाल करते समय, ये कॉन्फ़िगर किए जा सकते हैं:
- सबसैंपलिंग: डेटा को बार-बार प्रोसेस करने से बचने के लिए, एक ही सोर्स से लगातार मिलने वाले मैसेज के बीच कम से कम समय तय किया जा सकता है. अगर सोर्स, इस इंटरवल से ज़्यादा तेज़ी से डेटा पब्लिश करता है, तो टेलीमेट्री सेवा सूचनाओं को थ्रॉटल करती है. साथ ही, डेटा ट्रिगर सिर्फ़ थ्रॉटलिंग के बाद मिले मैसेज के लिए चालू होते हैं. इससे डेटा का सबसैंपल तैयार हो जाता है.
- शुरुआती मैसेज वापस पाना: इस सेवा को कॉन्फ़िगर किया जा सकता है, ताकि सदस्यता लेने पर यह सोर्स से सबसे नया मैसेज वापस पा सके. इस वजह से, अगर कोई वैल्यू उपलब्ध है, तो डेटा सोर्स में तुरंत वैल्यू भर दी जाती है. इसके लिए, पहले नए मैसेज के पब्लिश होने का इंतज़ार नहीं किया जाता. यह उन एग्रीगेटर या शर्त के साथ ट्रिगर होने वाले ट्रिगर के लिए काम का है जिनमें शुरुआती स्थिति की ज़रूरत होती है. यह तब भी काम आता है, जब डेटा सोर्स को कम बार पब्लिश किया जाता है.
मैसेज के टाइप से कोई फ़र्क़ नहीं पड़ता, उन्हें इंटरनल तौर पर कैश मेमोरी में सेव किया जाता है. अगर एक ही आकलन साइकल के दौरान, कई एक्सप्रेशन या एग्रीगेटर को एक ही सोर्स से डेटा की ज़रूरत होती है, तो सिस्टम डेटा को सिर्फ़ एक बार फ़ेच करता है. अगर सदस्यता का इस्तेमाल करके कोई नया मैसेज मिला है, तो सिस्टम डेटा को कैश मेमोरी से फ़ेच करता है. इसके अलावा, सिस्टम डेटा को सिर्फ़ एक बार ऑन-डिमांड कॉल का इस्तेमाल करके भी फ़ेच कर सकता है.
एग्रीगेटर की मदद से डेटा प्रोसेस करना
डेटा सोर्स से रॉ डेटा मिलता है, जबकि एग्रीगेटर, स्टेटफ़ुल और एज डेटा प्रोसेसिंग करते हैं. ये डेटा सोर्स या अन्य एग्रीगेटर से डेटा लेते हैं, उसे बदलते हैं, और नतीजे को उपलब्ध कराते हैं. इस नतीजे को मेट्रिक रिपोर्ट में पढ़ा जा सकता है या अन्य एग्रीगेटर इसे आगे प्रोसेस कर सकते हैं. इससे कई चरणों वाली प्रोसेसिंग पाइपलाइन बनाना मुमकिन हो जाता है. उदाहरण के लिए, एक एग्रीगेटर में स्पीड के आंकड़े कैलकुलेट करना और उन आंकड़ों का इस्तेमाल किसी ऐसे कॉम्पोनेंट में करना जो ड्राइविंग के पैटर्न का पता लगाता है.
एग्रीगेटर, एक या उससे ज़्यादा ट्रिगर की मदद से कैलकुलेशन करते हैं. जब भी कोई ट्रिगर चालू होता है, एग्रीगेटर अपने नियमों का आकलन करता है और अपनी इंटरनल स्थिति को अपडेट करता है.
किसी एग्रीगेटर को इस तरह कॉन्फ़िगर किया जा सकता है कि जब कोई दूसरा कॉम्पोनेंट उसकी वैल्यू पढ़ ले, तो वह अपनी स्थिति रीसेट कर ले. यह सुविधा, एक-दूसरे से अलग समयावधि के लिए आंकड़े कैलकुलेट करने में मददगार होती है.
मैसेज बिल्डर, एग्रीगेटर के स्ट्रक्चर और लॉजिक के बारे में बताता है. मैसेज बिल्डर, प्रोटो मैसेज का इंस्टेंस बनाने का तरीका बताता है. इसके लिए, वह यह बताता है कि इसके हर फ़ील्ड के लिए डेटा कैसे जनरेट किया जाए. हर फ़ील्ड के लिए, एक्सप्रेशन यह तय करता है कि डेटा सोर्स और एग्रीगेटर से डेटा कैसे पढ़ा जाए. साथ ही, इस डेटा पर कार्रवाइयां कैसे लागू की जाएं. इसके अलावा, एग्रीगेशन लागू किया जा सकता है. यह समय के साथ एक्सप्रेशन के नतीजों पर लागू होने वाली कैलकुलेशन या कलेक्शन ऑपरेशन है.
ये एग्रीगेशन टाइप इस्तेमाल किए जा सकते हैं:
- गणितीय: यह हर ट्रिगर पर, किसी एक्सप्रेशन से मिली वैल्यू के आधार पर आंकड़े (औसत, कम से कम, ज़्यादा से ज़्यादा, योग, मानक विचलन, और अंतर) कैलकुलेट करता है. डेल्टा, किसी एक्सप्रेशन से मिली मौजूदा और पिछली संख्यात्मक वैल्यू के बीच का अंतर होता है.
- सूची: यह फ़ंक्शन, किसी एक्सप्रेशन से मिली वैल्यू को सूची में इकट्ठा करता है. हाल की वैल्यू का रोलिंग विंडो (रिंग बफ़र) बनाने के लिए, सूची के साइज़ को सीमित किया जा सकता है.
- गिनती: यह एक खास मामला है, जिसमें कोई एक्सप्रेशन नहीं दिया गया है. इसकी मदद से यह पता चलता है कि फ़ील्ड का आकलन कितनी बार किया गया है. इसका मतलब है कि एग्रीगेटर या रिपोर्ट कितनी बार ट्रिगर हुई है.
- पासथ्रू: इसमें किसी एक्सप्रेशन के नतीजे का सीधे तौर पर इस्तेमाल किया जाता है. इसमें एग्रीगेशन लागू नहीं किया जाता. यह रिपोर्ट कॉन्फ़िगरेशन में काम आता है. इससे एग्रीगेटर से फ़ाइनल वैल्यू ऐक्सेस की जा सकती हैं.
नीचे दी गई इमेज में, एग्रीगेटर के आकलन का कॉन्सेप्ट दिखाने वाला डायग्राम दिया गया है:
दूसरी इमेज. एग्रीगेटर का आकलन.
एक्सप्रेशन का इस्तेमाल करके, कैलकुलेशन करना या शर्तें तय करना
एक्सप्रेशन का इस्तेमाल, मैसेज बिल्डर और शर्तों के आधार पर ट्रिगर होने वाले ट्रिगर में किया जाता है. इससे कैलकुलेशन की जाती है या शर्तें तय की जाती हैं. मेट्रिक कॉन्फ़िगरेशन JSON ऑब्जेक्ट बनाने के लिए, मेट्रिक कॉन्फ़िगरेशन जनरेटर (एमसीजी) का इस्तेमाल करते समय, एक्सप्रेशन को ऐसी स्ट्रिंग के तौर पर लिखा जाता है जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है. ये स्ट्रिंग, डेटा सोर्स के फ़ील्ड (उदाहरण के लिए, vehicle_speed.speed_value) को ऐक्सेस करने के लिए डॉट नोटेशन का इस्तेमाल करती हैं. साथ ही, कई तरह के ऑपरेशन लागू करती हैं. MCG, इन स्ट्रिंग को ऑप्टिमाइज़ किए गए ट्री स्ट्रक्चर में बदलता है. यह ऐब्स्ट्रैक्ट सिंटैक्स ट्री (एएसटी) के जैसा होता है. इससे डिवाइस पर फ़ाइनल MetricsConfig protobuf मैसेज का आकलन आसानी से किया जा सकता है.
ऑपरेटर और फ़ंक्शन
एक्सप्रेशन में, ऑपरेटर और फ़ंक्शन के इस सेट का इस्तेमाल किया जा सकता है:
- अंकगणित: इसमें जोड़ना, घटाना (बाइनरी और यूनरी), गुणा करना, भाग देना, मॉड्युलो, और पावर जैसे फ़ंक्शन काम करते हैं.
- लॉजिकल: इसमें AND, OR, NOT, और XOR ऑपरेटर काम करते हैं.
- रिलेशनल: इसमें समानता की जांच की जा सकती है. साथ ही, तुलना करने के लिए 'इससे ज़्यादा' और 'इससे कम' ऑपरेटर का इस्तेमाल किया जा सकता है.
- सूची: इससे यह पता चलता है कि किसी सूची में कोई खास वैल्यू मौजूद है या नहीं.
- टाइमस्टैंप: यह फ़ंक्शन, आकलन के समय का टाइमस्टैंप माइक्रोसेकंड में दिखाता है. क्लॉक टाइप, रीयलटाइम क्लॉक, बूट होने के बाद से बीता हुआ समय (इसमें सस्पेंड होने का समय भी शामिल है) या बूट होने या आखिरी बार फिर से शुरू होने के बाद से बीता हुआ समय हो सकता है.
- ऐब्सलूट वैल्यू: किसी संख्या की ऐब्सलूट वैल्यू दिखाता है.
- पूर्णांक बनाना: किसी संख्या को सबसे करीब वाले पूर्णांक में बदलता है (
round), किसी संख्या से कम या उसके बराबर सबसे बड़ा पूर्णांक दिखाता है (floor), या किसी संख्या से ज़्यादा या उसके बराबर सबसे छोटा पूर्णांक दिखाता है (ceil).
यहां एक एक्सप्रेशन का उदाहरण दिया गया है. यह दो डेटा सोर्स से डेटा पढ़ता है और अगर वाहन की स्पीड 100 किमी/घंटा से ज़्यादा है और टायर के प्रेशर की कोई चेतावनी नहीं है, तो इसकी वैल्यू true होती है:
(vehicle_speed.speed_value * 3.6) > 100 && tire_pressure.warning == false
ट्रिगर की मदद से, एक्ज़ीक्यूशन फ़्लो को कंट्रोल करना
ट्रिगर, मेट्रिक कॉन्फ़िगरेशन को व्यवस्थित करते हैं. ये तय करते हैं कि डेटा को कब प्रोसेस किया जाए और रिपोर्ट कब जनरेट की जाएं. हर ट्रिगर का एक यूनीक नाम होना चाहिए.
ट्रिगर तीन तरह के होते हैं:
- डेटा ट्रिगर: ये तब ट्रिगर होते हैं, जब सदस्यता कनेक्शन वाला कोई डेटा सोर्स, नया मैसेज पब्लिश करता है. अगर सबसैंपलिंग कॉन्फ़िगर की गई है, तो यह मैसेज सबसैंपलिंग के बाद पब्लिश होता है.
- समय-समय पर ट्रिगर होने वाले ट्रिगर: ये तय किए गए समय के इंटरवल पर ट्रिगर होते हैं.
- शर्त के हिसाब से ट्रिगर: ये तब ट्रिगर होते हैं, जब तय की गई लॉजिकल शर्त पूरी हो जाती है.
शर्तों के हिसाब से ट्रिगर होने की सुविधा
शर्त के साथ ट्रिगर होने वाले ट्रिगर, अन्य ट्रिगर (डेटा, समय-समय पर या शर्त के साथ ट्रिगर होने वाले अन्य ट्रिगर) को सुनते हैं. जब उनमें से कोई ट्रिगर फ़ायर होता है, तो वे एक्सप्रेशन का आकलन करते हैं. शर्त के हिसाब से ट्रिगर होने वाला टैग सिर्फ़ तब ट्रिगर होता है, जब एक्सप्रेशन का नतीजा किसी खास शर्त को पूरा करता हो.
कंडीशनल ट्रिगर को कई तरह की शर्तों के आधार पर ट्रिगर होने के लिए कॉन्फ़िगर किया जा सकता है:
- वैल्यू: जब एक्सप्रेशन का आकलन
true(या शून्य से ज़्यादा) याfalse(या शून्य) के तौर पर किया जाता है. - बढ़ती हुई वैल्यू: जब बूलियन एक्सप्रेशन
falseसेtrueमें बदलता है या जब संख्यात्मक वैल्यू बढ़ती है. - फ़ॉलिंग एज: जब कोई बूलियन एक्सप्रेशन
trueसेfalseमें बदलता है या कोई संख्यात्मक वैल्यू कम होती है. - बदलाव होने पर: जब भी एक्सप्रेशन का नतीजा, उसकी पिछली वैल्यू से अलग होता है.
शोरगुल की वजह से होने वाले बदलावों को फ़िल्टर करना
एज-आधारित या बदलाव होने पर ट्रिगर होने वाले ट्रिगर के लिए, कुछ समय के लिए होने वाले या बार-बार होने वाले बदलावों (गड़बड़ियों) को फ़िल्टर किया जा सकता है. इसके लिए, यह ज़रूरी है कि ट्रिगर के चालू होने से पहले, स्थिति कम से कम कुछ समय के लिए नई स्थिति में बनी रहे.
उदाहरण के लिए, किसी ट्रिगर को इस तरह कॉन्फ़िगर किया जा सकता है कि वह सिर्फ़ तब ट्रिगर हो, जब vehicle_speed > 100 true हो जाए और कम से कम पांच सेकंड तक true रहे. इससे, तेज़ी से पढ़ने की सुविधा के कुछ समय के लिए चालू होने पर, ट्रिगर के चालू होने से रोका जा सकता है. यह भी ज़रूरी किया जा सकता है कि इस अवधि के दौरान दिखने वाली सभी वैल्यू एक जैसी हों.
मेट्रिक रिपोर्ट जनरेट करना
डेटा प्रोसेस होने के बाद, यह तय किया जाता है कि रिपोर्ट में डेटा को कैसे और कब शामिल किया जाए.
रिपोर्ट को मेट्रिक रिपोर्ट कॉन्फ़िगरेशन का इस्तेमाल करके तय किया जाता है. ये कॉन्फ़िगरेशन, मैसेज बिल्डर का इस्तेमाल करके अपने आउटपुट के स्ट्रक्चर और कॉन्टेंट को तय करते हैं. जब रिपोर्ट का कोई ट्रिगर चालू होता है, तो मैसेज बिल्डर, रिपोर्ट के डेटा पेलोड को बनाने के लिए, फ़ील्ड असाइनमेंट का आकलन करता है.
जनरेट की गई हर रिपोर्ट, MetricsReport Protobuf मैसेज का एक इंस्टेंस होती है. यह मैसेज बिल्डर के आउटपुट को payload फ़ील्ड में रैप करता है और मेटाडेटा जोड़ता है. टेलीमेट्री सेवा, हर MetricsReport में यह मेटाडेटा अपने-आप जोड़ देती है:
- रिपोर्ट के लिए यूनीवर्सली यूनीक आइडेंटिफ़ायर (यूयूआईडी)
- क्रम में दिया गया रिपोर्ट नंबर, जो इस रिपोर्ट कॉन्फ़िगरेशन से जनरेट होने वाली हर रिपोर्ट के लिए बढ़ता है
- रिपोर्ट जनरेट होने का टाइमस्टैंप
- कॉन्टेंट जनरेट होने की वजह (उदाहरण के लिए, किसी नियम के ट्रिगर होने पर या शटडाउन होने पर जनरेट किया गया)
- रिपोर्ट जनरेट करने वाले मेट्रिक कॉन्फ़िगरेशन का यूयूआईडी और वर्शन
- मेट्रिक रिपोर्ट कॉन्फ़िगरेशन का नाम
रिपोर्ट जनरेट करने से जुड़ा कंट्रोल
आम तौर पर, ट्रिगर के जवाब में रिपोर्ट जनरेट होती हैं. हालांकि, मेट्रिक कॉन्फ़िगरेशन के लाइफ़साइकल के खास पलों में रिपोर्ट जनरेट करने के लिए भी इन्हें कॉन्फ़िगर किया जा सकता है:
- चालू होने पर रिपोर्ट: अगर यह सेटिंग चालू है, तो मेट्रिक कॉन्फ़िगरेशन चालू होने के तुरंत बाद सिस्टम एक शुरुआती रिपोर्ट जनरेट करता है.
- फ़ाइनल रिपोर्ट: अगर यह सुविधा चालू है, तो डेटा इकट्ठा करने की प्रोसेस रुकने या बंद होने पर सिस्टम एक फ़ाइनल रिपोर्ट जनरेट करता है. ऐसा तब भी होता है, जब टेलीमेट्री सेवा बंद हो जाती है. इस रिपोर्ट में, उस समय तक का इकट्ठा किया गया डेटा होता है. इससे यह पक्का करने में मदद मिलती है कि सेशन के आखिर में कोई डेटा न छूटे.
डेटा कलेक्शन के लाइफ़साइकल को मैनेज करना
डिफ़ॉल्ट रूप से, मेट्रिक कॉन्फ़िगरेशन, क्लाइंट के चालू करते ही डेटा इकट्ठा करना और उसे प्रोसेस करना शुरू कर देता है. यह तब तक जारी रहता है, जब तक क्लाइंट इसे बंद नहीं कर देता. हालांकि, डेटा कलेक्शन या मेट्रिक कॉन्फ़िगरेशन को शुरू या बंद करने वाले ट्रिगर तय करके, इस लाइफ़साइकल को ज़्यादा बारीकी से कंट्रोल किया जा सकता है:
- स्टार्ट ट्रिगर: अगर इसे तय किया गया है, तो डेटा कलेक्शन सिर्फ़ तब शुरू होता है, जब यह ट्रिगर फ़ायर होता है. अगर स्टॉप ट्रिगर की वजह से कलेक्शन को रोका गया है, तो स्टार्ट ट्रिगर उसे फिर से शुरू करता है.
- ट्रिगर बंद करें: अगर इसे तय किया गया है, तो यह ट्रिगर डेटा कलेक्शन को रोक देता है. स्टार्ट ट्रिगर के फिर से चालू होने तक, एग्रीगेशन और रिपोर्ट जनरेट करने की प्रोसेस रुक जाती है.
- ट्रिगर बंद करना: यह ट्रिगर, मेट्रिक कॉन्फ़िगरेशन को उसी तरह से बंद करता है जिस तरह क्लाइंट से किया गया
deactivate_metrics_configकॉल करता है.
उदाहरण के लिए, एक ऐसा शर्तिया ट्रिगर तय किया जा सकता है जो vehicle_state से DRIVING में बदलने पर शुरू हो और दूसरा ऐसा ट्रिगर तय किया जा सकता है जो vehicle_state से PARKED में बदलने पर बंद हो. इससे यह पक्का करने में मदद मिलती है कि डेटा सिर्फ़ तब इकट्ठा किया जाए, जब वाहन चल रहा हो.