20 पॉइंट द्वारा ironlung 2023-09-04 | 8 टिप्पणियां | WhatsApp पर शेयर करें
  • Observability की अवधारणा:

    • यह एक माप है जो बताती है कि सिस्टम के बाहरी आउटपुट के परिणामों (ज्ञान) से सिस्टम की आंतरिक स्थिति का कितना अच्छा अनुमान लगाया जा सकता है
    • ऐसा dynamic system जो आउटपुट वैल्यू को मापकर सिस्टम की स्थिति का अनुमान लगाने के लिए डिज़ाइन किया गया हो
    • cloud environment के लोकप्रिय होने और Docker-आधारित apps तथा microservices architecture के आम हो जाने के साथ Observability की ज़रूरत बढ़ी
  • Observability और monitoring में अंतर:

    • monitoring: वह काम जो उपयोगकर्ता करता है। यह दिखाता है कि क्या गलत हुआ
    • Observability: monitoring को शामिल करने वाली एक व्यापक अवधारणा। यह आंतरिक व्यवहार की पृष्ठभूमि की समृद्ध जानकारी देती है और गहरे सिस्टम समस्याओं को हल करने में मदद करती है। यह यह भी दिखाती है कि क्या ‘क्यों’ गलत हुआ
  • संगठन में Observability की आवश्यकता कब होती है:

    • जब production में issue आने पर यह सवाल उठे कि ‘समस्या के कारण का पता लगाने वाला डेटा क्या है, वह कहाँ है, और उसे कैसे देखना चाहिए?’
    • जब 1 मिनट पहले तक ठीक चल रही service में समस्या आ जाए और यह सवाल सामने आए कि ‘root cause कहाँ ढूँढना चाहिए?’
    • जब संगठन यह सोच रहा हो कि ‘service में असामान्य लक्षणों की जानकारी development team को customer या support/operations team से पहले कैसे मिले?’
    • जब यह जानना हो कि microservices में service errors और performance errors को प्रभावी ढंग से कैसे track किया जाए, या ‘क्या इसे logs या application performance monitoring (APM) के रूप में देखा जा सकता है?’
  • Observability टूल्स के विकास की प्रक्रिया:

    • 2010 के दशक के बाद से IT industry में कई तरह के Observability टूल्स आए
    • 2010 में Google ने बड़े पैमाने के distributed system tracing infrastructure ‘Dapper’ को प्रस्तुत किया
    • इसके बाद Uber और Twitter ने क्रमशः distributed tracing systems ‘Jaeger’ (Uber) और ‘Zipkin’ (Twitter) बनाए
    • distributed systems के व्यवहार को लगातार model और explain करने वाले standard API set ‘Open Tracing’ का उदय हुआ
    • ‘Open Census’ जारी किया गया: यह कई भाषाओं के लिए libraries का एक set है, जो application metrics और distributed tracing को collect करके backend को real time में data भेजता है
    • इसके बाद ‘Prometheus’ आया
    • 2019 में Open Tracing और Open Census को मिलाकर ‘Open Telemetry (OTel)’ नामक tools, APIs और SDKs का संग्रह जारी किया गया
  • Open Telemetry:

    • vendor-neutral open source Observability framework
    • software performance और व्यवहार का विश्लेषण करने में मदद करने वाले telemetry data में logs, metrics और traces शामिल हैं, और Open Telemetry का उपयोग इन्हें instrument, generate, collect और export करने के लिए होता है
      • logs: timestamp metadata। issue के root cause का पता लगाने में उपयोगी
      • metrics: service द्वारा मापे गए key/value tags वाले statistical या aggregated data। runtime में capture किए गए service measurements
      • traces: user और application पर हुए events का रिकॉर्ड। individual request के propagation path का रिकॉर्ड
    • उपयोग का तरीका: Observability tool alert भेजता है -> alert की सामग्री की जाँच करें, dashboard पर जाएँ और समस्या का बिंदु पहचानें -> उस बिंदु पर किसी खास हिस्से को detail में query करें -> logs ढूँढकर जाँचें -> उन logs से संबंधित trace data ढूँढकर pattern बनाएँ -> यहीं समस्या पहचानें, उसे ठीक करें, और Observability लागू करें
    • आजकल बनने वाले अधिकांश Observability टूल्स Open Telemetry को default रूप से support करते हैं
  • Open Telemetry के आने का कारण:

    • पहले हर Observability backend के पास tools तक data भेजने के लिए अपनी instrumentation libraries और agents होते थे, और code को instrument करने के कई तरीके थे
    • Observability backend को data भेजने के लिए कोई standardized data format नहीं था
    • बाद में एक standard बनाने के लिए Open Tracing और Open Census को मिलाकर Open Telemetry बनाया गया
  • SigNoz: open source APM tool

    • application को monitor करने और समस्याएँ हल करने में मदद करता है
    • distributed tracing technology का उपयोग करके user software stack को समझता है
      • latency, requests per second, error rates जैसे application metrics को monitor करता है
      • CPU utilization या memory usage जैसे infrastructure metrics को भी observe करता है
      • पूरी service में user requests को trace करता है
      • metrics पर alerts सेट किए जा सकते हैं
      • समस्या पैदा करने वाले सटीक trace तक जाकर root cause पता लगाया जा सकता है
      • individual request traces के विस्तृत flame graph भी देखे जा सकते हैं

8 टिप्पणियां

 
ninebow 2023-09-06

अच्छे लेख के लिए धन्यवाद!

 
ironlung 2023-09-06

टिप्पणी के लिए धन्यवाद! :)

 
kaistj 2023-09-05

अच्छा लेख साझा करने के लिए धन्यवाद~

 
ironlung 2023-09-05

टिप्पणी के लिए धन्यवाद! :)

 
jujumilk3 2023-09-05

मॉनिटरिंग ठीक से काम कर रही है या नहीं, इसे मॉनिटर कैसे करें?

मैंने भी Watchmen नाम की कॉमिक में आने वाली ऐसी ही एक दुविधा के बारे में सोचा था, लेकिन पता चला कि इसके लिए observability जैसा एक शब्द भी है, धन्यवाद।

 
ironlung 2023-09-05

धन्यवाद! आजकल कुछ जगहों पर ऐसे टूल भी बनते दिख रहे हैं जो AI के ज़रिए Observability को सरल बनाते हैं। यह ऐसा क्षेत्र है जिसके बारे में मैं और जानना चाहता/चाहती हूँ! :)

 
inthelife 2023-09-04

अच्छा लेख साझा करने के लिए धन्यवाद :)

 
ironlung 2023-09-04

धन्यवाद! :D