ஒரு சேவையாக கண்காணிப்பு: மைக்ரோ சர்வீஸ் கட்டமைப்பிற்கான ஒரு மட்டு அமைப்பு

இன்று, மோனோலிதிக் குறியீட்டிற்கு கூடுதலாக, எங்கள் திட்டத்தில் டஜன் கணக்கான மைக்ரோ சர்வீஸ்கள் உள்ளன. அவை ஒவ்வொன்றும் கண்காணிக்கப்பட வேண்டும். DevOps பொறியாளர்களைப் பயன்படுத்தி இதுபோன்ற அளவில் இதைச் செய்வது சிக்கலானது. டெவலப்பர்களுக்கான சேவையாக செயல்படும் கண்காணிப்பு அமைப்பை நாங்கள் உருவாக்கியுள்ளோம். அவர்கள் சுயாதீனமாக கண்காணிப்பு அமைப்பில் அளவீடுகளை எழுதலாம், அவற்றைப் பயன்படுத்தலாம், அவற்றின் அடிப்படையில் டாஷ்போர்டுகளை உருவாக்கலாம் மற்றும் அவற்றுடன் விழிப்பூட்டல்களை இணைக்கலாம், அவை வாசல் மதிப்புகளை எட்டும்போது தூண்டப்படும். DevOps இன்ஜினியர்களுக்கு, உள்கட்டமைப்பு மற்றும் ஆவணங்கள் மட்டுமே.

இந்த இடுகை எங்களுடனான எனது உரையின் டிரான்ஸ்கிரிப்ட் பிரிவில் RIT++ இல். அங்கிருந்து அறிக்கைகளின் உரை பதிப்புகளை உருவாக்க பலர் எங்களிடம் கேட்டனர். நீங்கள் மாநாட்டில் இருந்தாலோ அல்லது வீடியோவைப் பார்த்தாலோ, புதிதாக எதையும் காண முடியாது. மற்ற அனைவரும் - பூனைக்கு வரவேற்கிறோம். அத்தகைய அமைப்புக்கு நாங்கள் எப்படி வந்தோம், அது எவ்வாறு இயங்குகிறது மற்றும் அதை எவ்வாறு புதுப்பிக்க திட்டமிட்டுள்ளோம் என்பதை நான் உங்களுக்கு சொல்கிறேன்.

ஒரு சேவையாக கண்காணிப்பு: மைக்ரோ சர்வீஸ் கட்டமைப்பிற்கான ஒரு மட்டு அமைப்பு

கடந்த காலம்: திட்டங்கள் மற்றும் திட்டங்கள்

தற்போதைய கண்காணிப்பு முறைக்கு நாங்கள் எப்படி வந்தோம்? இந்த கேள்விக்கு பதிலளிக்க, நீங்கள் 2015 க்கு செல்ல வேண்டும். அப்போது தோன்றியது இதுதான்:

ஒரு சேவையாக கண்காணிப்பு: மைக்ரோ சர்வீஸ் கட்டமைப்பிற்கான ஒரு மட்டு அமைப்பு

எங்களிடம் கண்காணிப்புக்குப் பொறுப்பான சுமார் 24 முனைகள் இருந்தன. பல்வேறு கிரீடங்கள், ஸ்கிரிப்டுகள், டீமான்கள் ஆகியவற்றின் முழு பேக் உள்ளது, அவை எப்படியாவது எதையாவது கண்காணிக்கின்றன, செய்திகளை அனுப்புகின்றன மற்றும் செயல்பாடுகளைச் செய்கின்றன. நாம் மேலும் சென்றால், அத்தகைய அமைப்பு குறைவான சாத்தியமானதாக இருக்கும் என்று நாங்கள் நினைத்தோம். அதை வளர்ப்பதில் எந்த அர்த்தமும் இல்லை: இது மிகவும் சிக்கலானது.
நாங்கள் வைத்திருக்கும் மற்றும் மேம்படுத்தும் மற்றும் நாங்கள் கைவிடக்கூடிய கண்காணிப்பு கூறுகளைத் தேர்வு செய்ய முடிவு செய்தோம். அவற்றில் 19 இருந்தன. கிராஃபைட்டுகள், திரட்டிகள் மற்றும் கிராஃபனா ஆகியவை மட்டுமே டாஷ்போர்டாக எஞ்சியிருந்தன. ஆனால் புதிய அமைப்பு எப்படி இருக்கும்? இது போன்ற:

ஒரு சேவையாக கண்காணிப்பு: மைக்ரோ சர்வீஸ் கட்டமைப்பிற்கான ஒரு மட்டு அமைப்பு

எங்களிடம் அளவீடுகள் சேமிப்பகம் உள்ளது: இவை கிராஃபைட்டுகள், இவை வேகமான SSD டிரைவ்களின் அடிப்படையில் இருக்கும், இவை அளவீடுகளுக்கான சில திரட்டிகள். அடுத்து - டாஷ்போர்டுகளைக் காண்பிப்பதற்கான கிராஃபனா மற்றும் விழிப்பூட்டலுக்கான மொய்ரா. முரண்பாடுகளைத் தேடுவதற்கான அமைப்பையும் உருவாக்க விரும்புகிறோம்.

தரநிலை: கண்காணிப்பு 2.0

2015-ல் திட்டங்கள் இப்படித்தான் இருந்தன. ஆனால் உள்கட்டமைப்பு மற்றும் சேவையை மட்டும் அல்ல, அதற்கான ஆவணங்களையும் நாங்கள் தயார் செய்ய வேண்டியிருந்தது. நமக்கென ஒரு கார்ப்பரேட் தரநிலையை நாங்கள் உருவாக்கியுள்ளோம், அதை நாங்கள் கண்காணிப்பு 2.0 என்று அழைக்கிறோம். அமைப்புக்கான தேவைகள் என்ன?

  • நிலையான கிடைக்கும்;
  • அளவீடுகள் சேமிப்பு இடைவெளி = 10 வினாடிகள்;
  • அளவீடுகள் மற்றும் டாஷ்போர்டுகளின் கட்டமைக்கப்பட்ட சேமிப்பு;
  • SLA > 99,99%
  • UDP (!) வழியாக நிகழ்வு அளவீடுகளின் தொகுப்பு.

எங்களுக்கு UDP தேவைப்பட்டது, ஏனெனில் எங்களிடம் அதிக போக்குவரத்து மற்றும் அளவீடுகளை உருவாக்கும் நிகழ்வுகள் உள்ளன. நீங்கள் அனைத்தையும் ஒரே நேரத்தில் கிராஃபைட்டில் எழுதினால், சேமிப்பகம் சரிந்துவிடும். எல்லா அளவீடுகளுக்கும் முதல் நிலை முன்னொட்டுகளையும் நாங்கள் தேர்ந்தெடுத்துள்ளோம்.

ஒரு சேவையாக கண்காணிப்பு: மைக்ரோ சர்வீஸ் கட்டமைப்பிற்கான ஒரு மட்டு அமைப்பு

முன்னொட்டுகள் ஒவ்வொன்றும் சில பண்புகளைக் கொண்டுள்ளன. சர்வர்கள், நெட்வொர்க்குகள், கொள்கலன்கள், ஆதாரங்கள், பயன்பாடுகள் மற்றும் பலவற்றிற்கான அளவீடுகள் உள்ளன. தெளிவான, கண்டிப்பான, தட்டச்சு செய்யப்பட்ட வடிகட்டுதல் செயல்படுத்தப்பட்டது, அங்கு நாங்கள் முதல்-நிலை அளவீடுகளை ஏற்றுக்கொள்கிறோம் மற்றும் மீதமுள்ளவற்றை கைவிடுவோம். இப்படித்தான் இந்த அமைப்பை 2015-ல் திட்டமிட்டோம். நிகழ்காலத்தில் என்ன இருக்கிறது?

தற்போது: கண்காணிப்பு கூறுகளின் தொடர்புகளின் வரைபடம்

முதலில், நாங்கள் பயன்பாடுகளை கண்காணிக்கிறோம்: எங்கள் PHP குறியீடு, பயன்பாடுகள் மற்றும் மைக்ரோ சர்வீஸ்கள் - சுருக்கமாக, எங்கள் டெவலப்பர்கள் எழுதும் அனைத்தும். எல்லா பயன்பாடுகளும் UDP வழியாக ப்ரூபெக் திரட்டிக்கு அளவீடுகளை அனுப்புகின்றன (statsd, C இல் மீண்டும் எழுதப்பட்டது). செயற்கை சோதனைகளில் இது வேகமானதாக மாறியது. மேலும் இது ஏற்கனவே ஒருங்கிணைக்கப்பட்ட அளவீடுகளை TCP வழியாக கிராஃபைட்டுக்கு அனுப்புகிறது.

இது டைமர்கள் எனப்படும் ஒரு வகை அளவீடுகளைக் கொண்டுள்ளது. இது மிகவும் வசதியான விஷயம். எடுத்துக்காட்டாக, சேவைக்கான ஒவ்வொரு பயனர் இணைப்புக்கும், ப்ரூபெக்கிற்கு மறுமொழி நேரத்துடன் மெட்ரிக்கை அனுப்புகிறீர்கள். ஒரு மில்லியன் பதில்கள் வந்தன, ஆனால் திரட்டி 10 அளவீடுகளை மட்டுமே அளித்தது. உங்களிடம் வந்தவர்களின் எண்ணிக்கை, அதிகபட்சம், குறைந்தபட்சம் மற்றும் சராசரியான பதில் நேரம், சராசரி மற்றும் 4 சதவிகிதங்கள் உள்ளன. பின்னர் தரவு கிராஃபைட்டுக்கு மாற்றப்பட்டு, அனைத்தையும் நேரலையில் பார்க்கிறோம்.

எங்களிடம் வன்பொருள், மென்பொருள், கணினி அளவீடுகள் மற்றும் எங்களின் பழைய முனின் கண்காணிப்பு அமைப்பு (இது 2015 வரை எங்களுக்கு வேலை செய்தது) ஆகியவற்றின் அளவீடுகளுக்கான ஒருங்கிணைப்பு உள்ளது. C's CollectD டீமான் மூலம் இவை அனைத்தையும் நாங்கள் சேகரிக்கிறோம் (அதில் பல்வேறு செருகுநிரல்களின் முழு தொகுப்பையும் கொண்டுள்ளது, இது நிறுவப்பட்ட ஹோஸ்ட் அமைப்பின் அனைத்து ஆதாரங்களையும் இது வாக்களிக்க முடியும், தரவை எங்கு எழுத வேண்டும் என்பதை உள்ளமைவில் குறிப்பிடவும்) மற்றும் அதன் மூலம் கிராஃபைட்டில் தரவை எழுதவும். இது பைதான் செருகுநிரல்கள் மற்றும் ஷெல் ஸ்கிரிப்ட்களை ஆதரிக்கிறது, எனவே நீங்கள் உங்கள் சொந்த தனிப்பயன் தீர்வுகளை எழுதலாம்: CollectD இந்தத் தரவை உள்ளூர் அல்லது தொலைநிலை ஹோஸ்டிடமிருந்து (கர்ல் கருதி) சேகரித்து கிராஃபைட்டுக்கு அனுப்பும்.

நாங்கள் சேகரித்த அனைத்து அளவீடுகளையும் கார்பன்-சி-ரிலேக்கு அனுப்புகிறோம். இது கிராஃபைட்டின் கார்பன் ரிலே தீர்வு, இது C இல் மாற்றியமைக்கப்பட்டது. இது ஒரு ரூட்டர் ஆகும், இது நமது திரட்டிகளிடமிருந்து நாம் அனுப்பும் அனைத்து அளவீடுகளையும் சேகரித்து அவற்றை முனைகளுக்கு அனுப்புகிறது. ரூட்டிங் கட்டத்தில், இது அளவீடுகளின் செல்லுபடியை சரிபார்க்கிறது. முதலாவதாக, அவை நான் முன்பு காட்டிய முன்னொட்டு திட்டத்துடன் ஒத்திருக்க வேண்டும், இரண்டாவதாக, அவை கிராஃபைட்டுக்கு செல்லுபடியாகும். இல்லையெனில் அவை கைவிடப்படும்.

கார்பன்-சி-ரிலே பின்னர் அளவீடுகளை கிராஃபைட் கிளஸ்டருக்கு அனுப்புகிறது. Go இல் மீண்டும் எழுதப்பட்ட கார்பன்-கேச், அளவீடுகளின் முக்கிய சேமிப்பகமாகப் பயன்படுத்துகிறோம். கோ-கார்பன், அதன் மல்டித்ரெடிங் காரணமாக, கார்பன்-கேச்சினை விட அதிகமாக உள்ளது. இது தரவுகளைப் பெற்று, விஸ்பர் தொகுப்பைப் பயன்படுத்தி வட்டுகளுக்கு எழுதுகிறது (தரநிலை, பைத்தானில் எழுதப்பட்டது). எங்கள் சேமிப்பகங்களிலிருந்து தரவைப் படிக்க, நாங்கள் கிராஃபைட் API ஐப் பயன்படுத்துகிறோம். இது நிலையான Graphite WEB ஐ விட மிக வேகமாக உள்ளது. தரவுகளுக்கு அடுத்து என்ன நடக்கும்?

அவர்கள் கிராபனாவுக்குச் செல்கிறார்கள். எங்கள் கிராஃபைட் கிளஸ்டர்களை தரவுகளின் முக்கிய ஆதாரமாகப் பயன்படுத்துகிறோம், மேலும் அளவீடுகளைக் காட்டுவதற்கும் டாஷ்போர்டுகளை உருவாக்குவதற்கும் கிராஃபானாவை இணைய இடைமுகமாக வைத்திருக்கிறோம். தங்களின் ஒவ்வொரு சேவைக்கும், டெவலப்பர்கள் தங்கள் சொந்த டாஷ்போர்டை உருவாக்குகிறார்கள். பின்னர் அவர்கள் அவற்றின் அடிப்படையில் வரைபடங்களை உருவாக்குகிறார்கள், இது அவர்களின் பயன்பாடுகளிலிருந்து அவர்கள் எழுதும் அளவீடுகளைக் காண்பிக்கும். கிராஃபானாவைத் தவிர, எங்களிடம் SLAM உள்ளது. இது ஒரு மலைப்பாம்பு பேய் ஆகும், இது கிராஃபைட்டில் இருந்து தரவுகளின் அடிப்படையில் SLA ஐக் கணக்கிடுகிறது. நான் ஏற்கனவே கூறியது போல், எங்களிடம் பல டஜன் மைக்ரோ சர்வீஸ்கள் உள்ளன, ஒவ்வொன்றும் அதன் சொந்த தேவைகளைக் கொண்டுள்ளன. SLAM ஐப் பயன்படுத்தி, நாங்கள் ஆவணங்களுக்குச் சென்று அதை கிராஃபைட்டில் உள்ளவற்றுடன் ஒப்பிட்டு, எங்கள் சேவைகளின் கிடைக்கும் தன்மையுடன் தேவைகள் எவ்வளவு நன்றாகப் பொருந்துகின்றன என்பதை ஒப்பிடுகிறோம்.

மேலும் செல்வோம்: எச்சரிக்கை. இது ஒரு வலுவான அமைப்பைப் பயன்படுத்தி ஒழுங்கமைக்கப்பட்டுள்ளது - மொய்ரா. பேட்டைக்குக் கீழே அதன் சொந்த கிராஃபைட் இருப்பதால் இது சுதந்திரமானது. SKB "Kontur" ஐச் சேர்ந்த தோழர்களால் உருவாக்கப்பட்டது, இது பைதான் மற்றும் கோவில் எழுதப்பட்டது, இது முற்றிலும் திறந்த மூலமாகும். கிராஃபைட்டுகளுக்குள் செல்லும் அதே ஓட்டத்தை மொய்ரா பெறுகிறது. சில காரணங்களால் உங்கள் சேமிப்பகம் இறந்துவிட்டால், உங்கள் எச்சரிக்கை வேலை செய்யும்.

நாங்கள் மொய்ராவை குபெர்னெட்டஸில் பயன்படுத்தினோம்; இது ரெடிஸ் சேவையகங்களின் தொகுப்பை முக்கிய தரவுத்தளமாகப் பயன்படுத்துகிறது. இதன் விளைவாக ஒரு தவறு-சகிப்பு அமைப்பு இருந்தது. இது அளவீடுகளின் ஸ்ட்ரீமை தூண்டுதல்களின் பட்டியலுடன் ஒப்பிடுகிறது: அதில் குறிப்புகள் இல்லை என்றால், அது மெட்ரிக்கைக் குறைக்கிறது. எனவே இது நிமிடத்திற்கு ஜிகாபைட் அளவீடுகளை ஜீரணிக்க முடிகிறது.

அதனுடன் கார்ப்பரேட் எல்டிஏபியையும் இணைத்துள்ளோம், அதன் உதவியுடன் கார்ப்பரேட் அமைப்பின் ஒவ்வொரு பயனரும் ஏற்கனவே உள்ள (அல்லது புதிதாக உருவாக்கப்பட்ட) தூண்டுதல்களின் அடிப்படையில் தங்களுக்கான அறிவிப்புகளை உருவாக்கிக்கொள்ளலாம். மொய்ராவில் கிராஃபைட் இருப்பதால், அதன் அனைத்து அம்சங்களையும் ஆதரிக்கிறது. எனவே நீங்கள் முதலில் வரியை எடுத்து கிராஃபனாவில் நகலெடுக்கவும். வரைபடங்களில் தரவு எவ்வாறு காட்டப்படுகிறது என்பதைப் பார்க்கவும். பின்னர் நீங்கள் அதே வரியை எடுத்து மொய்ராவில் நகலெடுக்கிறீர்கள். நீங்கள் அதை வரம்புகளுடன் தொங்கவிட்டு, வெளியீட்டில் எச்சரிக்கையைப் பெறுவீர்கள். இதையெல்லாம் செய்ய, உங்களுக்கு எந்த குறிப்பிட்ட அறிவும் தேவையில்லை. மொய்ரா எஸ்எம்எஸ், மின்னஞ்சல், ஜிரா, ஸ்லாக் வழியாக எச்சரிக்கை செய்யலாம்... இது தனிப்பயன் ஸ்கிரிப்ட்களை செயல்படுத்துவதையும் ஆதரிக்கிறது. ஒரு தூண்டுதல் அவளுக்கு நேர்ந்தால், அவள் தனிப்பயன் ஸ்கிரிப்ட் அல்லது பைனரிக்கு குழுசேர்ந்தால், அவள் அதை இயக்கி, இந்த பைனரிக்காக JSON ஐ stdin க்கு அனுப்புகிறாள். அதன்படி, உங்கள் நிரல் அதை அலச வேண்டும். இந்த JSON உடன் நீங்கள் என்ன செய்வீர்கள் என்பது உங்களுடையது. நீங்கள் விரும்பினால், டெலிகிராமிற்கு அனுப்பவும், நீங்கள் விரும்பினால், ஜிராவில் பணிகளைத் திறக்கவும், என்ன வேண்டுமானாலும் செய்யுங்கள்.

விழிப்பூட்டலுக்கு எங்கள் சொந்த வளர்ச்சியையும் பயன்படுத்துகிறோம் - இமாகோடாக். வழக்கமாக கடைகளில் மின்னணு விலைக் குறிச்சொற்களுக்குப் பயன்படுத்தப்படும் பேனலை எங்கள் தேவைகளுக்கு ஏற்ப மாற்றினோம். அதற்கு மொய்ராவிலிருந்து தூண்டுதல்களைக் கொண்டு வந்தோம். அவை எந்த நிலையில் உள்ளன, எப்போது நிகழ்ந்தன என்பதைக் குறிக்கிறது. இந்த பேனலுக்கு ஆதரவாக ஸ்லாக் மற்றும் மின்னஞ்சலில் உள்ள அறிவிப்புகளை சில மேம்பாட்டு தோழர்கள் கைவிட்டனர்.

ஒரு சேவையாக கண்காணிப்பு: மைக்ரோ சர்வீஸ் கட்டமைப்பிற்கான ஒரு மட்டு அமைப்பு

சரி, நாங்கள் ஒரு முற்போக்கான நிறுவனம் என்பதால், இந்த அமைப்பில் குபர்னெட்டஸையும் கண்காணித்தோம். க்ளஸ்டரில் நிறுவிய ஹீப்ஸ்டரைப் பயன்படுத்தி கணினியில் சேர்த்துள்ளோம், அது தரவைச் சேகரித்து கிராஃபைட்டுக்கு அனுப்புகிறது. இதன் விளைவாக, வரைபடம் இதுபோல் தெரிகிறது:

ஒரு சேவையாக கண்காணிப்பு: மைக்ரோ சர்வீஸ் கட்டமைப்பிற்கான ஒரு மட்டு அமைப்பு

கண்காணிப்பு கூறுகள்

இந்த பணிக்காக நாங்கள் பயன்படுத்திய கூறுகளுக்கான இணைப்புகளின் பட்டியல் இங்கே உள்ளது. அவை அனைத்தும் திறந்த மூலமாகும்.

கிராஃபைட்:

கார்பன்-சி-ரிலே:

github.com/grobian/carbon-c-relay

ப்ரூபெக்:

github.com/github/brubeck

சேகரிக்கப்பட்டது:

சேகரிக்கப்பட்டது.org

மொய்ரா:

github.com/moira-alert

கிராஃபானா:

grafana.com

குவியல்:

github.com/kubernetes/heapster

புள்ளிவிவரங்கள்

இந்த அமைப்பு நமக்கு எவ்வாறு செயல்படுகிறது என்பது பற்றிய சில எண்கள் இங்கே உள்ளன.

திரட்டி (ப்ரூபெக்)

அளவீடுகளின் எண்ணிக்கை: ~300/sec
கிராஃபைட்டுக்கு அளவீடுகளை அனுப்புவதற்கான இடைவெளி: 30 நொடி
சேவையக வள பயன்பாடு: ~ 6% CPU (நாங்கள் முழு அளவிலான சேவையகங்களைப் பற்றி பேசுகிறோம்); ~ 1ஜிபி ரேம்; ~3 Mbps லேன்

கிராஃபைட் (கோ-கார்பன்)

அளவீடுகளின் எண்ணிக்கை: ~ 1 / நிமிடம்
அளவீடுகள் புதுப்பிப்பு இடைவெளி: 30 நொடி
அளவீடுகள் சேமிப்பகத் திட்டம்: 30 நொடி 35டி, 5நிமி 90டி, 10நிமி 365டி (நீண்ட காலத்திற்கு சேவையில் என்ன நடக்கிறது என்பதைப் பற்றிய புரிதலை உங்களுக்கு வழங்குகிறது)
சேவையக வள பயன்பாடு: ~10% CPU; ~ 20ஜிபி ரேம்; ~30 Mbps லேன்

நெகிழ்வு

Avito இல் உள்ள நாங்கள் எங்கள் கண்காணிப்பு சேவையில் நெகிழ்வுத்தன்மையை மிகவும் மதிக்கிறோம். அவர் உண்மையில் ஏன் இப்படி மாறினார்? முதலாவதாக, அதன் கூறுகள் ஒன்றுக்கொன்று மாறக்கூடியவை: இரண்டு கூறுகளும் அவற்றின் பதிப்புகளும். இரண்டாவதாக, ஆதரவு. முழு திட்டமும் திறந்த மூலமாக இருப்பதால், குறியீட்டை நீங்களே திருத்தலாம், மாற்றங்களைச் செய்யலாம் மற்றும் பெட்டிக்கு வெளியே கிடைக்காத செயல்பாடுகளைச் செயல்படுத்தலாம். மிகவும் பொதுவான அடுக்குகள் பயன்படுத்தப்படுகின்றன, முக்கியமாக Go மற்றும் Python, எனவே இது மிகவும் எளிமையாக செய்யப்படுகிறது.

ஒரு உண்மையான பிரச்சனையின் உதாரணம் இங்கே. கிராஃபைட்டில் மெட்ரிக் என்பது ஒரு கோப்பு. அதற்கு ஒரு பெயர் உண்டு. கோப்பு பெயர் = மெட்ரிக் பெயர். மற்றும் அங்கு செல்ல ஒரு வழி உள்ளது. லினக்ஸில் கோப்பு பெயர்கள் 255 எழுத்துகளுக்கு மட்டுமே. எங்களிடம் ("உள் வாடிக்கையாளர்களாக") தரவுத்தளத் துறையைச் சேர்ந்த தோழர்கள் உள்ளனர். அவர்கள் எங்களிடம் கூறுகிறார்கள்: “எங்கள் SQL வினவல்களை நாங்கள் கண்காணிக்க விரும்புகிறோம். மேலும் அவை 255 எழுத்துகள் அல்ல, ஒவ்வொன்றும் 8 எம்பி. நாங்கள் அவற்றை கிராஃபனாவில் காட்ட விரும்புகிறோம், இந்தக் கோரிக்கைக்கான அளவுருக்களைப் பார்க்கவும், இன்னும் சிறப்பாக, அத்தகைய கோரிக்கைகளின் மேல் பகுதியைப் பார்க்கவும் விரும்புகிறோம். இது உண்மையான நேரத்தில் காட்டப்பட்டால் நன்றாக இருக்கும். அவர்களை எச்சரிக்கையில் வைப்பது மிகவும் அருமையாக இருக்கும்.

ஒரு சேவையாக கண்காணிப்பு: மைக்ரோ சர்வீஸ் கட்டமைப்பிற்கான ஒரு மட்டு அமைப்பு
உதாரணம் SQL வினவல் ஒரு உதாரணத்திற்கு எடுக்கப்பட்டது தளம் postgrespro.ru

நாங்கள் ரெடிஸ் சேவையகத்தை அமைத்து, எங்களின் சேகரிக்கப்பட்ட செருகுநிரல்களைப் பயன்படுத்துகிறோம், அவை போஸ்ட்கிரெஸுக்குச் சென்று அங்கிருந்து எல்லா தரவையும் எடுத்து, அளவீடுகளை கிராஃபைட்டுக்கு அனுப்புகிறது. ஆனால் மெட்ரிக் பெயரை ஹாஷ்களால் மாற்றுகிறோம். ஒரே நேரத்தில் ஒரே ஹாஷை ரெடிஸுக்கு விசையாகவும், முழு SQL வினவலையும் மதிப்பாகவும் அனுப்புவோம். நாம் செய்ய வேண்டியதெல்லாம், கிராஃபானா ரெடிஸுக்குச் சென்று இந்தத் தகவலை எடுக்க முடியும் என்பதை உறுதிப்படுத்திக் கொள்வதுதான். நாங்கள் Graphite API ஐ திறக்கிறோம் ஏனெனில்... கிராஃபைட்டுடனான அனைத்து கண்காணிப்பு கூறுகளின் தொடர்புக்கான முக்கிய இடைமுகம் இதுவாகும், மேலும் aliasByHash() எனப்படும் புதிய செயல்பாட்டை உள்ளிடுகிறோம் - கிராஃபானாவிலிருந்து மெட்ரிக் பெயரைப் பெறுகிறோம், மேலும் அதை ரெடிஸுக்கு ஒரு விசையாகப் பயன்படுத்துகிறோம். பதில் விசையின் மதிப்பைப் பெறுகிறோம், இது எங்கள் "SQL வினவல்" " எனவே, ஒரு SQL வினவலின் காட்சியை கிராஃபனாவில் காட்டினோம், கோட்பாட்டில் அதைக் காட்ட இயலாது, அதன் புள்ளிவிவரங்களுடன் (அழைப்புகள், வரிசைகள், மொத்த_நேரம், ...).

முடிவுகளை

கிடைக்கும். எங்கள் கண்காணிப்பு சேவை 24/7 எந்த பயன்பாட்டிலிருந்தும் எந்த குறியீட்டிலிருந்தும் கிடைக்கும். உங்களிடம் சேமிப்பக வசதிகள் இருந்தால், நீங்கள் சேவைக்கு தரவை எழுதலாம். மொழி முக்கியமில்லை, முடிவுகள் முக்கியமில்லை. ஒரு சாக்கெட்டை எவ்வாறு திறப்பது, அங்கு ஒரு மெட்ரிக் வைத்து, சாக்கெட்டை மூடுவது எப்படி என்பதை மட்டுமே நீங்கள் தெரிந்து கொள்ள வேண்டும்.

நம்பகத்தன்மை. அனைத்து கூறுகளும் தவறு-சகிப்புத்தன்மை கொண்டவை மற்றும் எங்கள் சுமைகளை நன்கு கையாளுகின்றன.

நுழைவதற்கு குறைந்த தடை. இந்த அமைப்பைப் பயன்படுத்த, நீங்கள் கிராஃபானாவில் நிரலாக்க மொழிகள் மற்றும் வினவல்களைக் கற்றுக்கொள்ள வேண்டியதில்லை. உங்கள் விண்ணப்பத்தைத் திறந்து, அதில் ஒரு சாக்கெட்டை உள்ளிடவும், அது கிராஃபைட்டுக்கு அளவீடுகளை அனுப்பும், அதை மூடவும், கிராஃபனாவைத் திறக்கவும், அங்கு டாஷ்போர்டுகளை உருவாக்கவும் மற்றும் உங்கள் அளவீடுகளின் நடத்தையைப் பார்க்கவும், மொய்ரா மூலம் அறிவிப்புகளைப் பெறவும்.

சுதந்திரம். DevOps இன்ஜினியர்களின் உதவியின்றி இதையெல்லாம் நீங்களே செய்யலாம். இது ஒரு நன்மை, ஏனென்றால் உங்கள் திட்டத்தை நீங்கள் இப்போது கண்காணிக்க முடியும், நீங்கள் யாரையும் கேட்க வேண்டியதில்லை - வேலையைத் தொடங்க அல்லது மாற்றங்களைச் செய்ய.

நாம் எதை நோக்கமாகக் கொண்டுள்ளோம்?

கீழே பட்டியலிடப்பட்டுள்ள அனைத்தும் சுருக்கமான எண்ணங்கள் மட்டுமல்ல, குறைந்தபட்சம் முதல் படிகள் எடுக்கப்பட்டவை.

  1. ஒழுங்கின்மை கண்டறியும் கருவி. எங்கள் கிராஃபைட் சேமிப்பகங்களுக்குச் சென்று, பல்வேறு அல்காரிதம்களைப் பயன்படுத்தி ஒவ்வொரு அளவீட்டையும் சரிபார்க்கும் சேவையை உருவாக்க விரும்புகிறோம். நாம் பார்க்க விரும்பும் அல்காரிதம்கள் ஏற்கனவே உள்ளன, தரவு உள்ளது, அதனுடன் எவ்வாறு செயல்படுவது என்பது எங்களுக்குத் தெரியும்.
  2. மெட்டாடேட்டா. எங்களிடம் பல சேவைகள் உள்ளன, அவர்களுடன் பணிபுரியும் நபர்களைப் போலவே அவை காலப்போக்கில் மாறுகின்றன. ஆவணங்களை கைமுறையாக தொடர்ந்து பராமரிப்பது ஒரு விருப்பமல்ல. அதனால்தான் இப்போது மெட்டாடேட்டாவை எங்கள் மைக்ரோ சர்வீஸில் உட்பொதிக்கிறோம். அதை உருவாக்கியது யார், அது தொடர்பு கொள்ளும் மொழிகள், SLA தேவைகள், எங்கே, யாருக்கு அறிவிப்புகள் அனுப்பப்பட வேண்டும் என்பதைக் குறிப்பிடுகிறது. ஒரு சேவையைப் பயன்படுத்தும்போது, ​​அனைத்து நிறுவனத் தரவும் சுயாதீனமாக உருவாக்கப்படும். இதன் விளைவாக, நீங்கள் இரண்டு இணைப்புகளைப் பெறுவீர்கள் - ஒன்று தூண்டுதல்களுக்கு, மற்றொன்று கிராஃபனாவில் உள்ள டாஷ்போர்டுகளுக்கு.
  3. ஒவ்வொரு வீட்டிலும் கண்காணிப்பு. அனைத்து டெவலப்பர்களும் அத்தகைய அமைப்பைப் பயன்படுத்த வேண்டும் என்று நாங்கள் நம்புகிறோம். இந்த விஷயத்தில், உங்கள் போக்குவரத்து எங்கே, அதற்கு என்ன நடக்கிறது, எங்கு விழுகிறது, அதன் பலவீனங்கள் எங்கே என்பதை நீங்கள் எப்போதும் புரிந்துகொள்கிறீர்கள். எடுத்துக்காட்டாக, ஏதாவது வந்து உங்கள் சேவையை செயலிழக்கச் செய்தால், மேலாளரின் அழைப்பின் போது அல்ல, ஆனால் விழிப்பூட்டலில் இருந்து அதைப் பற்றி அறிந்து கொள்வீர்கள், மேலும் நீங்கள் உடனடியாக சமீபத்திய பதிவுகளைத் திறந்து அங்கு என்ன நடந்தது என்பதைப் பார்க்கலாம்.
  4. உயர் செயல்திறன். எங்கள் திட்டம் தொடர்ந்து வளர்ந்து வருகிறது, இன்று இது நிமிடத்திற்கு சுமார் 2 மெட்ரிக் மதிப்புகளை செயலாக்குகிறது. ஒரு வருடத்திற்கு முன்பு, இந்த எண்ணிக்கை 000 ஆக இருந்தது. மேலும் வளர்ச்சி தொடர்கிறது, இதன் பொருள் சிறிது நேரத்திற்குப் பிறகு கிராஃபைட் (விஸ்பர்) வட்டு துணை அமைப்பை பெரிதும் ஏற்றத் தொடங்கும். நான் ஏற்கனவே கூறியது போல், கூறுகளின் பரிமாற்றம் காரணமாக இந்த கண்காணிப்பு அமைப்பு மிகவும் உலகளாவியது. யாரோ ஒருவர் தங்கள் உள்கட்டமைப்பை குறிப்பாக கிராஃபைட்டுக்காக பராமரிக்கிறார் மற்றும் தொடர்ந்து விரிவுபடுத்துகிறார், ஆனால் நாங்கள் வேறு வழியில் செல்ல முடிவு செய்தோம்: பயன்படுத்தவும் கிளிக்ஹவுஸ் எங்கள் அளவீடுகளுக்கான களஞ்சியமாக. இந்த மாற்றம் ஏறக்குறைய முடிந்தது, இது எவ்வாறு செய்யப்பட்டது என்பதை மிக விரைவில் நான் உங்களுக்குச் சொல்கிறேன்: என்ன சிரமங்கள் இருந்தன, அவை எவ்வாறு சமாளிக்கப்பட்டன, இடம்பெயர்வு செயல்முறை எவ்வாறு சென்றது, பிணைப்பாகத் தேர்ந்தெடுக்கப்பட்ட கூறுகள் மற்றும் அவற்றின் உள்ளமைவுகளை விவரிப்பேன்.

உங்கள் கவனத்திற்கு நன்றி! தலைப்பில் உங்கள் கேள்விகளைக் கேளுங்கள், நான் இங்கே அல்லது பின்வரும் இடுகைகளில் பதிலளிக்க முயற்சிப்பேன். இதேபோன்ற கண்காணிப்பு அமைப்பை உருவாக்கி அல்லது இதேபோன்ற சூழ்நிலையில் கிளிக்ஹவுஸுக்கு மாறுவதில் யாராவது அனுபவம் பெற்றிருக்கலாம் - கருத்துகளில் பகிர்ந்து கொள்ளுங்கள்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்