कस्टम मेट्रिक्स के साथ गहरी अंतर्दृष्टि
AppSignal जेम के साथ आप पहले से ही अपने एप्लिकेशन के प्रदर्शन के बारे में अधिक विवरण प्राप्त करने के लिए कस्टम इंस्ट्रूमेंटेशन का उपयोग कर सकते थे। लेकिन कभी-कभी आप अन्य मेट्रिक्स को भी ट्रैक करना चाहते हैं।
1.0 रिलीज के साथ, अब आप AppSignal को कस्टम मेट्रिक्स भेज सकते हैं। ये मेट्रिक्स आपको अपने एप्लिकेशन में किसी भी चीज़ को ट्रैक करने में सक्षम बनाते हैं, नए अकाउंट से लेकर डेटाबेस डिस्क उपयोग तक। ये कोड इंस्ट्रूमेंटेशन का प्रतिस्थापन नहीं हैं, बल्कि आपके कोड में कुछ डेटा को समय के साथ अधिक सुलभ और मापने योग्य बनाने का एक अतिरिक्त तरीका है।
हम तीन प्रकार के मेट्रिक्स प्रदान करते हैं:
| गेज (Gauge) | एक संख्या जिसे आप ओवरराइट कर सकते हैं, उपयोगकर्ता संख्या जैसी चीजों को स्टोर करने के लिए उपयोगी। |
|---|---|
| काउंटर (Counter) | एक संख्या जिसे दिए गए मूल्य से बढ़ाया जा सकता है, उदाहरण के लिए किसी प्रक्रिया के चलने की संख्या गिनने के लिए उपयोगी। |
| डिस्ट्रीब्यूशन (Distribution) | संख्याओं का एक संग्रह जिसके लिए हम औसत और गिनती स्टोर करते हैं। औसत बिक्री राशि ट्रैक करने के लिए उपयोगी। |
AppSignal जेम में इनमें से प्रत्येक मेट्रिक प्रकार के लिए एक विधि है। आप इन विधियों का उपयोग करके हमारे सिस्टम को डेटा भेज सकते हैं।
गेज (Gauge)
गेज उन मेट्रिक्स के लिए आदर्श है जो बढ़ और घट दोनों सकते हैं। हम AppSignal में सक्रिय अकाउंट की संख्या को ग्राफ़ करने के लिए गेज का उपयोग करते हैं।
count = Account.active.count Appsignal.set_gauge('account_count', count)काउंटर (Counter)
जैसा कि नाम से पता चलता है, काउंटर यह ट्रैक करने का एक शानदार तरीका है कि कोई चीज़ कितनी बार होती है। हमारे वर्कर्स एक पेलोड को प्रोसेस करते हैं जिसमें कई डेटा पॉइंट होते हैं। इसका मतलब है कि जॉब की संख्या हमारे द्वारा प्रोसेस किए जाने वाले डेटा की मात्रा को सटीक रूप से नहीं दर्शाती। काउंटर के साथ हम प्रत्येक डेटा पॉइंट के लिए प्रोसेस होने पर बढ़ाते हैं।
minute.metrics.each do |metric| Appsignal.increment_counter('metric_count', metric.length) endडिस्ट्रीब्यूशन (Distribution)
हम डिस्ट्रीब्यूशन का उपयोग कोड के एक टुकड़े को निष्पादित करने में लगने वाले औसत समय को मापने के लिए करते हैं। उदाहरण के लिए एक जॉब कई मैप/रिड्यूस जॉब चला सकती है और भले ही हम इंस्ट्रूमेंटेशन के साथ अवधि को ट्रैक करते हैं, फिर भी हम प्रत्येक जॉब के लिए औसत अवधि को एक अच्छे ग्राफ़ में देखना चाहते हैं।
Appsignal.add_distribution_value('mapreduce_duration', MapReduce::Minutely.new.run.time)मेट्रिक्स को ग्राफ़ में बदलना
AppSignal को मेट्रिक्स भेजना कहानी का केवल आधा हिस्सा है, डेटा भेजने के बाद हमें मेट्रिक्स दिखाने के लिए ग्राफ़ बनाने की आवश्यकता होती है। हम इसे "कस्टम मेट्रिक्स" पेज पर संपादक में करते हैं।
हमारी कस्टम मेट्रिक्स सुविधा आपको ग्राफ़ के साथ कई स्क्रीन बनाने की अनुमति देती है। आप इन स्क्रीन पर स्क्रीन और ग्राफ़ को YAML फॉर्मेट के माध्यम से परिभाषित कर सकते हैं।
उदाहरण के लिए, अकाउंट से संबंधित ग्राफ़ के साथ एक स्क्रीन बनाने के लिए, जो अकाउंट की संख्या के साथ एक ग्राफ़ दिखाता है, आप निम्नलिखित YAML का उपयोग कर सकते हैं:
- title: Account overview graphs: - title: "Number of accounts" kind: gauge format: number fields: - account_countइसका परिणाम निम्नलिखित पेज होगा:
फील्ड्स की सूची के बजाय आप एक रेगेक्स भी प्रदान कर सकते हैं जो एक या अधिक मेट्रिक नामों से मेल खाता हो। नीचे दिया गया उदाहरण एक थर्ड-पार्टी API के लिए प्रत्येक API रिस्पॉन्स कोड के लिए लाइनों के साथ एक ग्राफ़ प्रस्तुत करता है।
- title: API Responses graphs: - title: "API response codes" kind: count filter: "api_response_code_[0-9]+" format: numberये AppSignal के साथ अब ट्रैक किए जा सकने वाले कई उपयोगी मेट्रिक्स के कुछ उदाहरण हैं। कस्टम मेट्रिक्स के बारे में अधिक जानकारी के लिए, हमारा दस्तावेज़ीकरण देखें या यदि आपको अपने अकाउंट के लिए इसे सेट करने में सहायता की आवश्यकता है तो हमसे संपर्क करें।