Graphite 1.1 - The Carbon Daemons

कार्बन डेमोंस




graphite

कार्बन डेमोंस

जब हम "कार्बन" के बारे में बात करते हैं तो हमारा मतलब एक या एक से अधिक विभिन्न डेमों से होता है जो ग्रेफाइट इंस्टॉलेशन का स्टोरेज बैकेंड बनाते हैं। साधारण प्रतिष्ठानों में, आमतौर पर केवल एक डेमॉन, carbon-cache.py । जैसे-जैसे एक इंस्टॉलेशन बढ़ता जाता है, carbon-relay.py और carbon-aggregator.py daemons को क्रमशः मेट्रिक्स लोड वितरित करने और कस्टम एकत्रीकरण करने के लिए पेश किया जा सकता है।

सभी कार्बन डेमॉन समय-श्रृंखला डेटा के लिए सुनते हैं और इसे protocols एक सामान्य सेट पर स्वीकार कर सकते हैं। हालांकि, वे इसे प्राप्त करने के बाद डेटा के साथ क्या करते हैं, इसमें भिन्नता है। यह दस्तावेज़ एक संक्षिप्त विवरण देता है कि प्रत्येक डेमॉन क्या करता है और आप एक अधिक परिष्कृत भंडारण बैकेंड बनाने के लिए उनका उपयोग कैसे कर सकते हैं।

carbon-cache.py

carbon-cache.py विभिन्न प्रोटोकॉल पर मैट्रिक्स स्वीकार करता है और उन्हें यथासंभव कुशलता से डिस्क पर लिखता है। इसके लिए RAM में मीट्रिक मानों को कैशिंग करने की आवश्यकता होती है क्योंकि वे प्राप्त होते हैं, और अंतर्निहित फुसफुसा पुस्तकालय का उपयोग करके अंतराल पर डिस्क को फ्लश करते हैं। यह इन-मेमोरी मीट्रिक डेटापॉइंट्स के लिए एक क्वेरी सेवा भी प्रदान करता है, जिसका उपयोग "हॉट डेटा" प्राप्त करने के लिए ग्रेफाइट वेबैप द्वारा किया जाता है।

carbon-cache.py को carbon-cache.py लिए कुछ मूल कॉन्फ़िगरेशन फ़ाइलों की आवश्यकता होती है:

carbon.conf
[cache] अनुभाग carbon-cache.py बताता है कि किन पोर्ट्स (2003/2004/7002), प्रोटोकॉल (न्यूलाइन सीमांकित, अचार) और ट्रांसपोर्ट (टीसीपी / यूडीपी) को सुनने के लिए।
carbon.conf
रेगेक्स पैटर्न के आधार पर आने वाली मीट्रिक के लिए एक अवधारण नीति को परिभाषित करता है। जब .wsp फ़ाइल पूर्व-आबंटित की जाती है, तो यह नीति कानाफूसी करने के लिए पारित की जाती है और यह बताती है कि कितने समय के लिए डेटा संग्रहीत है।

जैसे ही आने वाली मीट्रिक की संख्या बढ़ती है, एक carbon-cache.py उदाहरण I / O लोड को संभालने के लिए पर्याप्त नहीं हो सकता है। स्केल करने के लिए, बस carbon-cache.py इंस्टेंस (एक या एक से अधिक मशीनों पर) को carbon-aggregator.py या carbon-relay.py पीछे carbon-relay.py

चेतावनी

अगर carbon-cache.py से जुड़ने वाले क्लाइंट को त्रुटियों का सामना करना carbon-cache.py जैसे कि डेमॉन द्वारा कनेक्शन से इनकार कर दिया गया है, तो एक सामान्य कारण फ़ाइल डिस्क्रिप्टर की कमी है।

console.log फ़ाइल में, यदि आप की उपस्थिति पाते हैं:

Could not accept new connection (EMFILE)

या

exceptions.IOError: [Errno 24] Too many open files: '/var/lib/graphite/whisper/systems/somehost/something.wsp'

carbon-cache.py खुलने वाली फ़ाइलों की संख्या को carbon-cache.py होगा। कई सिस्टम अधिकतम 1024 फ़ाइल डिस्क्रिप्टर के लिए डिफ़ॉल्ट होते हैं। 8192 या उससे अधिक का मूल्य इस आधार पर आवश्यक हो सकता है कि कितने ग्राहक एक साथ carbon-cache.py डेमॉन से carbon-cache.py रहे हैं।

लिनक्स में, सिस्टम-ग्लोबल फ़ाइल डिस्क्रिप्टर अधिकतम sysctl के माध्यम से सेट किया जा सकता है। प्रति-प्रक्रिया सीमाएं ulimit के माध्यम से निर्धारित की जाती हैं। ये मान सेट करने के तरीके के विवरण के लिए अपने ऑपरेटिंग सिस्टम वितरण के लिए दस्तावेज़ देखें।

carbon-relay.py

carbon-relay.py दो अलग-अलग उद्देश्यों पर कार्य करता है: प्रतिकृति और पैनापन।

RELAY_METHOD = rules साथ चलने पर, एक carbon-relay.py उदाहरण एक carbon-cache.py सर्वर के स्थान पर carbon-cache.py सकता है और आने वाले सभी मैट्रिक्स को कई बैकेंड carbon-cache.py के अलग-अलग पोर्ट या होस्ट पर चल रहा है।

RELAY_METHOD = consistent-hashing मोड में, एक सेटिंग जो कई carbon-cache.py बैकएंड में एक carbon-cache.py रणनीति को परिभाषित करता है। एक ही सुसंगत हैशिंग सूची को कई बैकएंड में CARBONLINK_HOSTS फैलाने के लिए CARBONLINK_HOSTS माध्यम से ग्रेफाइट वेब पर प्रदान किया जा सकता है।

carbon-relay.py माध्यम से कॉन्फ़िगर किया गया है:

carbon.conf
[relay] खंड श्रोता मेजबान / बंदरगाहों और एक RELAY_METHOD को परिभाषित करता है
carbon.conf
RELAY_METHOD = rules सेट के साथ, इस फ़ाइल में पैटर्न / सर्वर ट्यूपल्स परिभाषित करते हैं कि कुछ रेगेक्स नियमों से मेल खाने वाले मैट्रिक्स किस मेजबानों को भेजे जाते हैं।

carbon-aggregator.py

समय-समय पर carbon-cache.py रिपोर्ट करने से पहले carbon-cache.py को carbon-cache.py सामने बफर मैट्रिक्स में चलाया जा सकता है। यह उपयोगी है जब दानेदार रिपोर्टिंग की आवश्यकता नहीं होती है, और कम अवधारण नीतियों के कारण I / O लोड और कानाफूसी फ़ाइल आकार को कम करने में मदद मिल सकती है।

carbon-aggregator.py माध्यम से कॉन्फ़िगर किया गया है:

carbon.conf
[aggregator] अनुभाग श्रोता और गंतव्य होस्ट / पोर्ट को परिभाषित करता है।
carbon.conf
एक निश्चित पैटर्न से मेल खाते आने वाले मैट्रिक्स के लिए एक समय अंतराल (सेकंड में) और एकत्रीकरण फ़ंक्शन (योग या औसत) को परिभाषित करता है। प्रत्येक अंतराल के अंत में, प्राप्त मूल्यों को एक मीट्रिक के रूप में carbon-cache.py में एकत्र और प्रकाशित किया जाता है।

carbon-aggregator-cache.py

carbon-aggregator-cache.py , carbon-aggregator.py और carbon-cache.py दोनों को जोड़ती है। यह दोनों डेमों को चलाने के संसाधन और प्रशासन को कम करने के लिए उपयोगी है।

carbon-aggregator-cache.py माध्यम से कॉन्फ़िगर किया गया है:

carbon.conf
[aggregator-cache] सेक्शन श्रोता और गंतव्य होस्ट / पोर्ट को परिभाषित करता है।
carbon.conf
कार्बन-relay.py अनुभाग देखें।
carbon.conf
कार्बन -ग्रेग्युटरेक्स्ट सेक्शन देखें।