Rust टेलीमेट्री क्लाइंट लाइब्रेरी

टेलीमेट्री क्लाइंट, एक ऐसा ऐप्लिकेशन है जो डेटा कलेक्शन को कॉन्फ़िगर करने, मेट्रिक कॉन्फ़िगरेशन मैनेज करने, और टेलीमेट्री रिपोर्ट पाने के लिए, टेलीमेट्री सेवा के साथ इंटरैक्ट करता है. क्लाइंट, सेवा के साथ इंटरैक्ट करने के लिए, libsdv_telemetry_rust_wrapper रस्ट लाइब्रेरी का इस्तेमाल करते हैं.

एपीआई सरफ़ेस की खास जानकारी

एपीआई के दस्तावेज़ के लिए, रस्ट टेलीमेट्री क्लाइंट लाइब्रेरी का एपीआई रेफ़रंस देखें.

यह लाइब्रेरी, टेलीमेट्री सेवा के साथ इंटरैक्ट करने के लिए, रस्ट इंटरफ़ेस उपलब्ध कराती है. यह लाइब्रेरी, इन कामों के लिए ज़िम्मेदार होती है:

  • सेवा की लाइफ़साइकल मैनेज करना: टेलीमेट्री सेवा से कनेक्शन मैनेज करना.

    • शुरू करना: ब्लॉक करने वाले कॉल का इस्तेमाल करके, सेवा से कनेक्शन बनाना. कनेक्ट करने के बाद, सिस्टम के स्टेटस और नई रिपोर्ट की उपलब्धता के बारे में एसिंक्रोनस सूचनाएं पाने के लिए, कॉलबैक रजिस्टर किए जा सकते हैं.
    • बंद करना: सेवा से आसानी से डिसकनेक्ट करने और उससे जुड़े सभी संसाधनों को साफ़ करने का तरीका उपलब्ध कराना.
  • मेट्रिक कॉन्फ़िगरेशन की लाइफ़साइकल मैनेज करना: मेट्रिक कॉन्फ़िगरेशन की लाइफ़साइकल पर कंट्रोल देना.

    • मैनेज करना: क्लाइंट, मेट्रिक कॉन्फ़िगरेशन जोड़, हटा, चालू, और बंद कर सकते हैं.
    • जांच करना: चालू और बंद किए गए कॉन्फ़िगरेशन की सूची के लिए क्वेरी की जा सकती है.
  • रिपोर्ट को मैनेज करना और वापस पाना: टेलीमेट्री सेवा से इकट्ठा किए गए डेटा को ऐक्सेस करने में मदद करना.

    • सूचनाएं: मेट्रिक की नई रिपोर्ट वापस पाने के लिए तैयार होने पर, कॉलबैक का इस्तेमाल करके क्लाइंट को एसिंक्रोनस तरीके से सूचना देना.
    • डेटा का ऐक्सेस: खास रिपोर्ट को उनके यूयूआईडी से फ़ेच करने और उपलब्ध सभी रिपोर्ट की सूची वापस पाने के तरीके उपलब्ध कराना.
  • स्टेटस और गड़बड़ी की रिपोर्टिंग: टेलीमेट्री सेवा की स्थिति और स्टेटस के बारे में जानकारी देना.

    • स्टेटस के एसिंक्रोनस अपडेट: क्लाइंट को, गड़बड़ियों और चेतावनियों के साथ-साथ, स्टेटस के रीयल-टाइम अपडेट मिलते हैं. इसके लिए, एक खास कॉलबैक का इस्तेमाल किया जाता है. इससे, गड़बड़ी को ठीक करने की मज़बूत सुविधा लागू की जा सकती है और सेवा की स्थिति को मॉनिटर किया जा सकता है.

उदाहरण उपयोग

पूरी लाइफ़साइकल दिखाने वाले, कंपाइल किए जा सकने वाले ऐप्लिकेशन के लिए, क्लाइंट को लागू करने का सैंपल देखें: samples/telemetry/client/rust/telemetry_client/telemetry_rust_c_client.rs.

सैंपल क्लाइंट, एक कमांड-लाइन यूटिलिटी है. यह पूरी लाइब्रेरी के एपीआई के साथ इंटरैक्ट करती है. सैंपल में, चैनल का इस्तेमाल करके, लाइब्रेरी के कॉलबैक-आधारित इंटरफ़ेस को एसिंक्रोनस रस्ट रनटाइम (Tokio) के साथ ब्रिज करने का तरीका दिखाया गया है.

क्लाइंट, इन कार्रवाइयों को इस क्रम में करता है:

  1. टेलीमेट्री सेवा से कनेक्शन बनाता है. साथ ही, स्टेटस अपडेट और मेट्रिक रिपोर्ट की सूचनाओं के लिए कॉलबैक रजिस्टर करता है.
  2. कमांड-लाइन आर्ग्युमेंट के तौर पर दी गई मेट्रिक कॉन्फ़िगरेशन फ़ाइलें पढ़ता है. इसके बाद, सेवा में कॉन्फ़िगरेशन जोड़ता है और उन्हें चालू करता है.
  3. सेवा से मिले स्टेटस के एसिंक्रोनस मैसेज (गड़बड़ियां या चेतावनियां) लॉग करने के लिए, बैकग्राउंड टास्क का इस्तेमाल करता है.
  4. डेटा वापस पाने के लूप को मैनेज करने के लिए, ये कार्रवाइयां करता है:
    • मेट्रिक रिपोर्ट तैयार होने की सूचना का इंतज़ार करता है.
    • मेट्रिक रिपोर्ट का पूरा डेटा फ़ेच करता है.
    • रिपोर्ट को डिस्क पर, बाइनरी प्रोटोकॉल बफ़र फ़ाइल के तौर पर लिखता है. यह कार्रवाई ज़रूरी नहीं है.
  5. मेट्रिक की पहली रिपोर्ट तैयार होने के बाद, सेवा से मेट्रिक कॉन्फ़िगरेशन हटाता है. ध्यान दें कि यह डेमो के तौर पर लागू किया गया है. आपके क्लाइंट, कितनी भी रिपोर्ट पा सकते हैं.
  6. सेवा से कनेक्शन आसानी से बंद करता है.