Graphite 1.1 - Configuring Carbon

कार्बन का विन्यास




graphite

कार्बन का विन्यास

कार्बन का कॉन्फिगर फाइल सभी /opt/graphite/conf/ में लाइव होता है। यदि आपने अभी-अभी ग्रेफाइट स्थापित किया है, तो .conf फ़ाइलों में से कोई भी अभी तक मौजूद नहीं है, लेकिन प्रत्येक के लिए एक .conf.example फ़ाइल होगी। बस .example एक्सटेंशन को हटाकर, उदाहरण फ़ाइलों को कॉपी करें और अपनी सेटिंग्स को कस्टमाइज़ करें।

pushd /opt/graphite/conf
cp carbon.conf.example carbon.conf
cp storage-schemas.conf.example storage-schemas.conf

उदाहरण डिफॉल्ट सेंस हैं, लेकिन वे आपकी सूचना समाधान आवश्यकताओं या भंडारण सीमाओं को पूरा नहीं कर सकते हैं।

carbon.conf

यह मुख्य कॉन्फ़िगरेशन फ़ाइल है, और प्रत्येक कार्बन डेमॉन के लिए सेटिंग्स को परिभाषित करता है।

इस फ़ाइल के भीतर प्रत्येक सेटिंग को कॉन्फ़िगर फ़ाइल में टिप्पणियों के माध्यम से प्रलेखित किया जाता है। सेटिंग्स को प्रत्येक डेमॉन के लिए खंडों में विभाजित किया जाता है - कार्बन-कैश [cache] अनुभाग द्वारा नियंत्रित किया जाता है, कार्बन-रिले [relay] और कार्बन-एग्रीगेटर द्वारा [aggregator] द्वारा नियंत्रित किया जाता है। हालाँकि, यदि यह ग्रेफाइट का उपयोग करते हुए आपका पहली बार है, तो अभी के लिए [cache] अनुभाग के बारे में कुछ भी चिंता न करें।

टिप

कार्बन-कैश और कार्बन-रिले एक ही मेजबान पर चल सकते हैं! LINE_RECEIVER_PORT और PICKLE_RECEIVER_PORT को [cache] और [relay] वर्गों के बीच सूचीबद्ध डिफ़ॉल्ट स्वैपिंग को अपने तैनात मीट्रिक प्रेषकों को फिर से कॉन्फ़िगर करने से रोकने के लिए प्रयास करें। [relay] सेक्शन में DESTINATIONS सेट PICKLE_RECEIVER_PORT समय, [cache] सेक्शन में अपने नए सेट PICKLE_RECEIVER_PORT को ध्यान में रखें।

भंडारण-schemas.conf

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

जारी रखने से पहले महत्वपूर्ण नोट:

  • इस फाइल में कई सेक्शन हो सकते हैं।
  • अनुभाग शीर्ष (पहले) और नीचे (अंतिम) से क्रम में लागू होते हैं।
  • URL API में उपयोग किए जाने वाले वाइल्डकार्ड्स के विपरीत, पैटर्न नियमित अभिव्यक्ति हैं।
  • मीट्रिक नाम से मेल खाने वाले पहले पैटर्न का उपयोग किया जाता है।
  • यह प्रतिधारण उस समय सेट किया जाता है जब पहली मीट्रिक भेजी जाती है।
  • इस फ़ाइल को बदलने से पहले से निर्मित .wsp फ़ाइलें प्रभावित नहीं होंगी। उन्हें बदलने के लिए व्हिस्पर-resize.py का उपयोग करें।

एक नियम 3 लाइनों से बना है:

  • वर्ग कोष्ठक के अंदर निर्दिष्ट एक नाम।
  • "पैटर्न =" के बाद निर्दिष्ट एक रेगीक्स
  • "अवधारण =" के बाद निर्दिष्ट एक अवधारण दर रेखा

रिटेंशन लाइन कई रिटेंशन निर्दिष्ट कर सकती है। frequency:history की प्रत्येक अवधारण frequency:history एक अल्पविराम द्वारा अलग किया जाता है।

आवृत्ति और इतिहास निम्नलिखित प्रत्ययों का उपयोग करके निर्दिष्ट किए गए हैं:

  • s - दूसरा
  • मी - मिनट
  • ज - घंटे
  • घ - दिन
  • डब्ल्यू - सप्ताह
  • y - वर्ष

यहाँ एक सरल, एकल प्रतिधारण उदाहरण दिया गया है:

[garbage_collection]
pattern = garbageCollections$
retentions = 10s:14d

नाम [garbage_collection] मुख्य रूप से प्रलेखन उद्देश्यों के लिए है, और इस अनुभाग को बनाने वाले मैट्रिक्स से बना होने पर [garbage_collection] दिखाई देगा।

नियमित अभिव्यक्ति पैटर्न किसी भी मीट्रिक से मेल खाएगा जो garbageCollections समाप्त होता है। उदाहरण के लिए, com.acmeCorp.instance01.jvm.memory.garbageCollections मेल खाएगा, लेकिन com.acmeCorp.instance01.jvm.memory.garbageCollections.full नहीं होगा

retentions लाइन कह रही है कि प्रत्येक डेटापॉइंट 10 सेकंड का प्रतिनिधित्व करता है, और हम पर्याप्त डेटा पॉइंट रखना चाहते हैं ताकि वे 14 दिनों के डेटा को जोड़ दें।

यहां कई अवधारण दरों के साथ एक अधिक जटिल उदाहरण दिया गया है:

[apache_busyWorkers]
pattern = ^servers\.www.*\.workers\.busyWorkers$
retentions = 15s:7d,1m:21d,15m:5y

इस उदाहरण में, कल्पना करें कि आपकी मीट्रिक योजना servers.<servername>.<metrics> । यह पैटर्न 'www' से शुरू होने वाले सर्वर के नामों से मेल खाता होगा, इसके बाद कुछ भी हो सकता है, जो कि '.workers.busyWorkers' (अंत में भागे हुए नोट ') वर्णों में आने वाले मैट्रिक्स भेज रहे हैं।

इसके अतिरिक्त, यह उदाहरण कई अवधारणों का उपयोग करता है। सामान्य नियम सबसे सटीक से अवधारणों को निर्दिष्ट करना है: न्यूनतम-इतिहास से न्यूनतम-सटीक: अधिकांश-इतिहास - कानाफूसी को पार कर लिया जाता है क्योंकि प्रतिधारण के लिए थ्रेसहोल्ड मेट्रिक्स (डिफ़ॉल्ट रूप से औसत) को पार कर जाएंगे।

कई रिटेंशन का उपयोग करके, आप डिस्क स्थान और I / O पर बचत करते हुए मैट्रिक्स के लंबे इतिहास को स्टोर कर सकते हैं। क्योंकि यह औसत रूप से फुसफुसाता है (डिफ़ॉल्ट रूप से), कोई भी बाद में सड़क पर औसत प्रक्रिया को उलट कर मैट्रिक्स के योग निर्धारित करने में सक्षम है।

उदाहरण: आप प्रति वर्ष बिक्री की संख्या को 1 वर्ष के लिए संग्रहीत करते हैं, और उसके बाद प्रति घंटे बिक्री को 5 वर्ष के लिए। वर्ष की पहली जनवरी के लिए आपको कुल बिक्री जानने की आवश्यकता है। आप कच्चे डेटा के लिए कानाफूसी कर सकते हैं, और आपको प्रत्येक घंटे के लिए 24 डेटा पॉइंट मिलेंगे। वे सबसे अधिक संभावना फ्लोटिंग पॉइंट नंबर होंगे। आप प्रत्येक डेटापॉइंट ले सकते हैं, 60 से गुणा कर सकते हैं (उच्च परिशुद्धता से निम्न-परिशुद्धता डेटापॉइंट के अनुपात) और अभी भी प्रति घंटे कुल बिक्री प्राप्त करते हैं।

इसके अतिरिक्त, कानाफूसी पीछे की संगतता कारणों के लिए एक विरासत प्रतिधारण विनिर्देश का समर्थन करती है - seconds-per-datapoint:count-of-datapoints

retentions = 60:1440

60 प्रति डेटा पॉइंट प्रति सेकंड की संख्या का प्रतिनिधित्व करता है, और 1440 स्टोर करने के लिए डेटा पॉइंट की संख्या का प्रतिनिधित्व करता है। इसके लिए कुछ अनावश्यक रूप से जटिल गणित की आवश्यकता थी, इसलिए हालांकि यह मान्य है, यह अनुशंसित नहीं है।

भंडारण-aggregation.conf

यह फ़ाइल परिभाषित करती है कि डेटा को कम-सटीक रिटेंशन में कैसे संयोजित किया जाए। प्रारूप storage-schemas.conf समान है। जारी रखने से पहले महत्वपूर्ण नोट:

  • यह फ़ाइल वैकल्पिक है। यदि यह मौजूद नहीं है, तो चूक का उपयोग किया जाएगा।
  • storage-schemas.conf समान, शीर्ष (प्रथम) और बॉटम (लास्ट) के क्रम में सेक्शन storage-schemas.conf
  • मीट्रिक नाम से मेल खाने वाला पहला पैटर्न storage-schemas.conf समान उपयोग किया जाता है।
  • कोई retentions रेखा नहीं है। इसके बजाय, xFilesFactor और / या aggregationMethod लाइनें हैं।
  • xFilesFactor 0 और 1 के बीच एक फ्लोटिंग पॉइंट नंबर होना चाहिए, और यह निर्दिष्ट करता है कि पिछले अवधारण स्तर के स्लॉट्स के किस अंश में गैर-शून्य मान होना चाहिए। डिफ़ॉल्ट 0.5 है।
  • aggregationMethod अगले अवधारण स्तर के लिए मूल्यों को एकत्र करने के लिए उपयोग किए जाने वाले फ़ंक्शन को निर्दिष्ट करता है। कानूनी तरीके average , sum , min , max और last । डिफ़ॉल्ट average
  • इन्हें पहली बार मैट्रिक भेजे जाने के समय निर्धारित किया जाता है।
  • इस फ़ाइल को बदलने से डिस्क पर पहले से निर्मित .wsp फ़ाइलें प्रभावित नहीं होंगी। उन को बदलने के लिए व्हिस्पर-सेट- ग्रैगुएशन- method.py का उपयोग करें

यहाँ एक उदाहरण है:

[all_min]
pattern = \.min$
xFilesFactor = 0.1
aggregationMethod = min

उपरोक्त पैटर्न .min साथ समाप्त होने वाली किसी भी मीट्रिक से मेल .min

xFilesFactor लाइन कह रही है कि पिछले अवधारण स्तर में स्लॉट्स के न्यूनतम 10% के पास एक समाहित करने के लिए अगले अवधारण स्तर के लिए मान होना चाहिए। aggregationMethod लाइन कह रही है कि उपयोग करने के लिए कुल कार्य min

यदि या तो xFilesFactor या aggregationMethod को छोड़ दिया जाता है, तो डिफ़ॉल्ट मान का उपयोग किया जाएगा।

एकत्रीकरण मापदंडों को अवधारण मापदंडों से अलग रखा जाता है क्योंकि पूर्व निर्भर करता है कि किस प्रकार का डेटा एकत्र किया जा रहा है और बाद का वॉल्यूम और महत्व पर निर्भर करता है।

यदि आप मौजूदा डेटा के लिए एकत्रीकरण के तरीकों को बदलना चाहते हैं, तो सुनिश्चित करें कि आप व्हिस्पर फ़ाइलों को भी अपडेट करते हैं।

उदाहरण:

/opt/graphite/bin/whisper-set-aggregation-method.py /opt/graphite/storage/whisper/test.wsp max

यह उदाहरण परीक्षण के लिए एकत्रीकरण को सेट करता है। अधिकतम करने के लिए। (अजगर स्क्रिप्ट का स्थान आपकी स्थापना पर निर्भर करता है)

रिले-rules.conf

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

उदाहरण:

[example]
pattern = ^mydata\.foo\..+
servers = 10.1.2.3, 10.1.2.4:2004, myserver.mydomain.com

आपको डिफ़ॉल्ट के रूप में कम से कम एक अनुभाग को परिभाषित करना होगा।

एकत्रीकरण-rules.conf

एकत्रीकरण के नियम आपको हर URL में एक साथ कई मैट्रिक्स जोड़ने की अनुमति देते हैं, जिससे हर URL में कई मैट्रिक्स की राशि () की आवश्यकता कम हो जाती है। ध्यान दें कि कुछ अन्य कॉन्फिग फाइलों के विपरीत, किसी भी समय यह फाइल संशोधित होने पर यह अपने आप प्रभावी हो जाएगी। इसके लिए कार्बन-एग्रीगेटर सेवा चल रही है।

इस फ़ाइल में प्रत्येक पंक्ति का रूप इस प्रकार होना चाहिए:

output_template (frequency) = method input_pattern

यह किसी भी प्राप्त मीट्रिक्स को कैप्चर करेगा, जो एक समुच्चय मीट्रिक की गणना के लिए input_pattern मेल खाता है। गणना हर frequency सेकंड में मान्य method का उपयोग करके होगी। कुल मीट्रिक का नाम output_template से किसी भी कैप्चर किए गए फ़ील्ड में output_template भरने से लिया input_pattern carbon-aggregator पहुंचने वाला कोई भी मेट्रिक इसके उत्पादन से तब तक अछूता रहेगा, जब तक कि यह किसी नियम से ओवरराइड नहीं होता है।

उपलब्ध एकत्रीकरण विधियाँ इस प्रकार हैं: sum , avg , max , p50 , p75 , p90 , p95 , p99 , p999 , p999 , और count - जहाँ p50 अर्थ है 50 वाँ प्रतिशत और p999 अर्थ है 99.9 वाँ प्रतिशत, आदि

प्रतिशत एकत्रीकरण विधियों का उपयोग करते समय देखभाल की जानी चाहिए क्योंकि पुनः एकत्रीकरण उस तरीके से काम नहीं करता है जिस तरह से आप expect might expect । प्रतिशतक एकत्रीकरण की उपयोगिता का अर्थ है कि यदि आप उनका उपयोग करना चाहते हैं तो वे प्रदान किए जाते हैं।

उदाहरण के लिए, यदि आपकी मीट्रिक नामकरण योजना है:

<env>.applications.<app>.<server>.<metric>

आप कुछ एकत्रीकरण को कॉन्फ़िगर कर सकते हैं जैसे:

<env>.applications.<app>.all.requests (60) = sum <env>.applications.<app>.*.requests
<env>.applications.<app>.all.latency (60) = avg <env>.applications.<app>.*.latency

एक उदाहरण के रूप में, यदि निम्न मीट्रिक प्राप्त होते हैं:

prod.applications.apache.www01.requests
prod.applications.apache.www02.requests
prod.applications.apache.www03.requests
prod.applications.apache.www04.requests
prod.applications.apache.www05.requests

वे सभी एक ही एकत्रीकरण बफर में चले जाएंगे और 60 सेकंड के बाद समग्र मीट्रिक prod.applications.apache.all.requests उनके मूल्यों को संक्षेप द्वारा गणना की जाएगी।

टेम्पलेट घटक जैसे कि <env> अगले डॉट तक सब कुछ मेल खाएगा। डॉट्स सहित मीट्रिक के कई घटकों का मिलान करने के लिए, इनपुट टेम्पलेट में << मीट्रिक >> का उपयोग करें:

<env>.applications.<app>.all.<app_metric> (60) = sum <env>.applications.<app>.*.<<app_metric>>

नियमित अभिव्यक्ति का उपयोग करना भी संभव है। उपयोग करते समय ऊपर दिए गए उदाहरण के बाद:

<env>.applications.<app>.<domain>.requests (60) = sum <env>.applications.<app>.<domain>\d{2}.requests

आप prod.applications.apache.www.requests बजाय prod.applications.apache.www.requests साथ समाप्त हो prod.applications.apache.all.requests

carbon-aggregator का एक अन्य सामान्य उपयोग पैटर्न एक ही मीट्रिक के कई डेटा बिंदुओं को एकत्र करना है। यह तब काम आ सकता है जब आपको एक ही मीट्रिक कई मेजबानों से आ रही हो, या जब आप अपने कम से कम प्रतिधारण से अधिक बार डेटा भेजने के लिए बाध्य हों।

पुनर्लेखन-rules.conf

पुनर्व्यवस्थित नियम आपको पायथन नियमित अभिव्यक्तियों का उपयोग करके मीट्रिक नामों को फिर से लिखने की अनुमति देते हैं। ध्यान दें कि कुछ अन्य कॉन्फिग फाइलों के विपरीत, किसी भी समय यह फाइल संशोधित होने पर यह अपने आप प्रभावी हो जाएगी। इसके लिए कार्बन-एग्रीगेटर सेवा चल रही है।

इस फ़ाइल में प्रत्येक पंक्ति का रूप इस प्रकार होना चाहिए:

regex-pattern = replacement-text

यह किसी भी प्राप्त मीट्रिक्स को पकड़ लेगा जो 'रेगेक्स-पैटर्न' से मेल खाते हैं और पाठ के मिलान वाले हिस्से को 'रिप्लेसमेंट-टेक्स्ट' से फिर से लिखते हैं। 'रेगेक्स-पैटर्न' एक वैध पायथन नियमित अभिव्यक्ति होना चाहिए, और 'प्रतिस्थापन-पाठ' का कोई भी मूल्य हो सकता है। आप कैप्चर समूहों का भी उपयोग कर सकते हैं:

^collectd\.([a-z0-9]+)\. = \1.system.

जिसके परिणामस्वरूप होगा:

collectd.prod.cpu-0.idle-time => prod.system.cpu-0.idle-item

rewrite-rules.conf में दो खंड होते हैं, [pre] और [post]। प्री सेक्शन में नियम प्राप्त होते ही मेट्रिक नामों पर लागू होते हैं। एकत्रीकरण होने के बाद पद नियम लागू होते हैं।

उदाहरण के लिए:

[post]
_sum$ =
_avg$ =

ये नियम एकत्रीकरण के बाद किसी भी मीट्रिक नामों से _sum या _avg का प्रत्यय छीन लेंगे।

नोट: यदि आप अपने पुनर्लेखन नियमों में = चिह्न का उपयोग करने की योजना बना रहे हैं। इसके अष्टाधारित मूल्य का उपयोग करें: \075 । उदाहरण के लिए foo=bar = foo.bar foo\075bar = foo.bar

श्वेतसूची और काली सूची

श्वेतसूची कार्यक्षमता किसी भी कार्बन डेमन को केवल ऐसे मैट्रिक्स को स्वीकार करने की अनुमति देती है जो स्पष्ट रूप से श्वेतसूची में हैं और / या ब्लैक लिस्टेड मैट्रिक्स को अस्वीकार करने के लिए। कार्यक्षमता को USE_WHITELIST ध्वज के साथ carbon.conf में सक्षम किया जा सकता है। यह उपयोगी हो सकता है जब बहुत सारे मेट्रिक्स को ग्रेफाइट उदाहरण के लिए भेजा जा रहा हो या जब मीट्रिक भेजने वाले बेकार या अवैध मैट्रिक्स भेज रहे हों।

GRAPHITE_CONF_DIR को whitelist.conf और blacklist.conf लिए खोजा जाता है। प्रत्येक फ़ाइल में मीट्रिक मूल्यों के विरुद्ध मिलान के लिए प्रति पंक्ति एक नियमित अभिव्यक्ति होती है। यदि श्वेतसूची विन्यास गायब या रिक्त है, तो सभी मीट्रिक डिफ़ॉल्ट रूप से पारित हो जाएंगे।