සේවාවක් ලෙස අධීක්‍ෂණය: ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පය සඳහා මොඩියුලර් පද්ධතියක්

අද, මොනොලිතික් කේතයට අමතරව, අපගේ ව්‍යාපෘතියට ක්ෂුද්‍ර සේවා දුසිම් ගණනක් ඇතුළත් වේ. ඒ සෑම එකක්ම නිරීක්ෂණය කිරීම අවශ්ය වේ. DevOps ඉංජිනේරුවන් භාවිතා කරමින් එවැනි පරිමාණයකින් මෙය කිරීම ගැටළු සහගතය. අපි සංවර්ධකයින් සඳහා සේවාවක් ලෙස ක්‍රියා කරන අධීක්ෂණ පද්ධතියක් සකස් කර ඇත. ඔවුන්ට ස්වාධීනව අධීක්ෂණ පද්ධතියට ප්‍රමිතික ලිවීමට, ඒවා භාවිතා කිරීමට, ඒවා මත පදනම්ව උපකරණ පුවරු තැනීමට සහ එළිපත්ත අගයන් ළඟා වූ විට ක්‍රියාත්මක වන අනතුරු ඇඟවීම් ඒවාට ඇමිණිය හැකිය. DevOps ඉංජිනේරුවන් සඳහා, යටිතල පහසුකම් සහ ලියකියවිලි පමණි.

මෙම සටහන අප සමඟ මා කළ කතාවේ පිටපතකි කොටස් RIT++ හි. එතනින් වාර්තාවල text versions හදන්න කියලා ගොඩක් අය අපෙන් කිව්වා. ඔබ සම්මන්ත්‍රණයේ සිටියේ නම් හෝ වීඩියෝව නැරඹුවේ නම්, ඔබට අලුත් කිසිවක් සොයාගත නොහැක. සහ අනෙක් සියල්ලන් - බළලාට සාදරයෙන් පිළිගනිමු. අපි එවැනි පද්ධතියකට පැමිණියේ කෙසේද, එය ක්‍රියාත්මක වන ආකාරය සහ එය යාවත්කාලීන කිරීමට අප සැලසුම් කරන්නේ කෙසේද යන්න මම ඔබට කියමි.

සේවාවක් ලෙස අධීක්‍ෂණය: ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පය සඳහා මොඩියුලර් පද්ධතියක්

අතීතය: යෝජනා ක්රම සහ සැලසුම්

වත්මන් අධීක්ෂණ පද්ධතියට අප පැමිණියේ කෙසේද? මෙම ප්රශ්නයට පිළිතුරු සැපයීම සඳහා, ඔබ 2015 වෙත යා යුතුය. එදා පෙනුනේ මෙහෙමයි.

සේවාවක් ලෙස අධීක්‍ෂණය: ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පය සඳහා මොඩියුලර් පද්ධතියක්

අපි නිරීක්ෂණය සඳහා වගකිව යුතු නෝඩ් 24 ක් පමණ තිබුණා. විවිධ ඔටුනු, ස්ක්‍රිප්ට්, ඩීමන්, කෙසේ හෝ යමක් නිරීක්ෂණය කරන, පණිවිඩ යැවීම සහ කාර්යයන් ඉටු කරන සම්පූර්ණ ඇසුරුමක් තිබේ. අපි හිතුවේ අපි තව දුරටත් යන තරමට එවැනි ක්‍රමයක් අඩු ශක්‍යතාවයක් ඇති වනු ඇති බවයි. එය සංවර්ධනය කිරීමේ තේරුමක් නැත: එය ඉතා අපහසුයි.
අප තබා ගන්නා සහ සංවර්ධනය කරන සහ අප විසින් අත්හරින අධීක්ෂණ අංග තෝරා ගැනීමට අපි තීරණය කළෙමු. ඒවායින් 19 ක් විය. ග්‍රැෆයිට්, ඇග්‍රිගේටර් සහ ග්‍රැෆනා පමණක් උපකරණ පුවරුවක් ලෙස ඉතිරිව ඇත. නමුත් නව පද්ධතිය කෙබඳු වනු ඇත්ද? මෙවැනි:

සේවාවක් ලෙස අධීක්‍ෂණය: ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පය සඳහා මොඩියුලර් පද්ධතියක්

අපට ප්‍රමිතික ගබඩාවක් ඇත: මේවා ග්‍රැෆයිට් වේ, ඒවා වේගවත් SSD ධාවකයන් මත පදනම් වනු ඇත, මේවා ප්‍රමිතික සඳහා නිශ්චිත එකතු කරන්නන් වේ. ඊළඟ - උපකරණ පුවරු ප්‍රදර්ශනය කිරීම සඳහා ග්‍රැෆානා සහ අනතුරු ඇඟවීම සඳහා මොයිරා. විෂමතා සෙවීමේ ක්‍රමයක් සකස් කිරීමට ද අපට අවශ්‍ය විය.

සම්මත: අධීක්ෂණ 2.0

2015 දී සැලසුම් පෙනුණේ මෙයයි. නමුත් අපට යටිතල පහසුකම් සහ සේවාව පමණක් නොව, ඒ සඳහා ලියකියවිලි ද සකස් කිරීමට සිදු විය. අපි අප වෙනුවෙන් ආයතනික ප්‍රමිතියක් ගොඩනඟා ගෙන ඇති අතර, එය අපි අධීක්ෂණ 2.0 ලෙස හඳුන්වමු. පද්ධතිය සඳහා වූ අවශ්යතා මොනවාද?

  • නිරන්තර ලබා ගැනීම;
  • ප්‍රමිතික ගබඩා පරතරය = තත්පර 10;
  • ප්රමිතික සහ උපකරණ පුවරු ව්යුහගත ගබඩා කිරීම;
  • SLA > 99,99%
  • UDP (!) හරහා සිදුවීම් ප්‍රමිතික එකතු කිරීම

අපට ප්‍රමිතික ජනනය කරන විශාල මාර්ග තදබදයක් සහ සිදුවීම් ඇති නිසා අපට UDP අවශ්‍ය විය. ඔබ ඒවා සියල්ලම එකවර ග්‍රැෆයිට් වලට ලිව්වහොත් ගබඩාව කඩා වැටෙනු ඇත. අපි සියලු ප්‍රමිතික සඳහා පළමු මට්ටමේ උපසර්ග ද තෝරා ගත්තෙමු.

සේවාවක් ලෙස අධීක්‍ෂණය: ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පය සඳහා මොඩියුලර් පද්ධතියක්

සෑම උපසර්ගයකම යම් දේපලක් ඇත. සේවාදායකයන්, ජාල, බහාලුම්, සම්පත්, යෙදුම් සහ යනාදිය සඳහා ප්‍රමිතික තිබේ. පැහැදිලි, දැඩි, ටයිප් කළ පෙරහන ක්‍රියාත්මක කර ඇත, එහිදී අපි පළමු මට්ටමේ ප්‍රමිතික පිළිගෙන ඉතිරිය අතහැර දමමු. අපි 2015 දී මේ ක්‍රමය සැලසුම් කළේ එහෙමයි. වර්තමානය තුළ ඇත්තේ කුමක්ද?

වර්තමානය: අධීක්ෂණ සංරචකවල අන්තර්ක්‍රියා රූප සටහන

පළමුවෙන්ම, අපි යෙදුම් අධීක්ෂණය කරන්නෙමු: අපගේ PHP කේතය, යෙදුම් සහ ක්ෂුද්‍ර සේවා - කෙටියෙන් කිවහොත්, අපගේ සංවර්ධකයින් ලියන සියල්ල. සියලුම යෙදුම් UDP හරහා Brubeck aggregator වෙත ප්‍රමිතික යවයි (statsd, C වලින් නැවත ලියා ඇත). එය කෘතිම පරීක්ෂණවල වේගවත්ම එකක් බවට පත් විය. තවද එය දැනටමත් එකතු කර ඇති ප්‍රමිතික TCP හරහා Graphite වෙත යවයි.

එහි ටයිමර් නම් මෙට්‍රික් වර්ගයක් ඇත. මෙය ඉතා පහසු දෙයක්. උදාහරණයක් ලෙස, සේවාව වෙත එක් එක් පරිශීලක සම්බන්ධතාවය සඳහා, ඔබ Brubeck වෙත ප්‍රතිචාර කාලය සමඟ මෙට්‍රික් එකක් යවයි. ප්‍රතිචාර මිලියනයක් පැමිණියද, එකතුකරන්නා විසින් ප්‍රමිතික 10ක් පමණක් ලබාදී ඇත. ඔබට පැමිණි පුද්ගලයින් සංඛ්‍යාව, උපරිම, අවම සහ සාමාන්‍ය ප්‍රතිචාර කාලය, මධ්‍ය සහ ප්‍රතිශත 4 ඇත. එවිට දත්ත ග්‍රැෆයිට් වෙත මාරු වන අතර අපි ඒ සියල්ල සජීවීව දකිමු.

දෘඪාංග, මෘදුකාංග, පද්ධති ප්‍රමිතික සහ අපගේ පැරණි මුනින් අධීක්ෂණ පද්ධතිය (එය 2015 දක්වා අප වෙනුවෙන් ක්‍රියා කර ඇත) පිළිබඳ ප්‍රමිතික සඳහා ද අප සතුව ඇත. අපි මේ සියල්ල එකතු කරන්නේ C daemon CollectD හරහා (එය තුළ විවිධ ප්ලගීන රාශියක් ගොඩනගා ඇත, එය ස්ථාපනය කර ඇති ධාරක පද්ධතියේ සියලුම සම්පත් මත විමසිය හැකිය, දත්ත ලිවිය යුතු වින්‍යාසය තුළ සඳහන් කරන්න) සහ එය හරහා Graphite වෙත දත්ත ලියන්න. එය python plugins සහ shell scripts සඳහාද සහය දක්වයි, එබැවින් ඔබට ඔබේම අභිරුචි විසඳුම් ලිවිය හැක: CollectD විසින් මෙම දත්ත දේශීය හෝ දුරස්ථ ධාරකයකින් (Curl උපකල්පනය කර) එකතු කර එය Graphite වෙත යවනු ඇත.

ඊට පස්සේ අපි එකතු කරපු සියලුම මෙට්‍රික්ස් අපි Carbon-c-relay එකට යවනවා. මෙය ග්‍රැෆයිට් වෙතින් වන කාබන් රිලේ ද්‍රාවණයයි, එය සී හි වෙනස් කර ඇත. මෙය රවුටරයක් ​​වන අතර එමඟින් අප අපගේ ඇග්‍රිගේටර් වෙතින් යවන සියලුම ප්‍රමිතික එකතු කර ඒවා නෝඩ් වෙත යොමු කරයි. මාර්ගගත කිරීමේ අදියරේදී, එය මිනුම්වල වලංගු භාවය පරීක්ෂා කරයි. පළමුව, ඒවා මා කලින් පෙන්වූ උපසර්ග යෝජනා ක්‍රමයට අනුරූප විය යුතු අතර, දෙවනුව, ඒවා මිනිරන් සඳහා වලංගු වේ. එසේ නොමැතිනම් ඔවුන් පහත වැටෙනු ඇත.

Carbon-c-relay පසුව ප්‍රමිතික ග්‍රැෆයිට් පොකුරට යවයි. අපි ප්‍රමිතිකවල ප්‍රධාන ගබඩාව ලෙස Go හි නැවත ලියන ලද කාබන්-හැඹිලිය භාවිතා කරමු. Go-carbon, එහි multithreading නිසා, Carbon-cache අභිබවා යයි. එය දත්ත ලබා ගන්නා අතර එය විස්පර් පැකේජය භාවිතයෙන් තැටි වෙත ලියයි (සම්මත, python වලින් ලියා ඇත). අපගේ ගබඩාවලින් දත්ත කියවීම සඳහා, අපි Graphite API භාවිතා කරමු. එය සම්මත Graphite WEB වලට වඩා ඉතා වේගවත්ය. ඊළඟට දත්ත වලට කුමක් සිදුවේද?

ඔවුන් ග්‍රැෆානා වෙත යනවා. අපි ප්‍රධාන දත්ත මූලාශ්‍රය ලෙස අපගේ ග්‍රැෆයිට් පොකුරු භාවිත කරන අතර, ප්‍රමිතික සංදර්ශන කිරීමට සහ උපකරණ පුවරු තැනීමට වෙබ් අතුරු මුහුණතක් ලෙස අපට Grafana ඇත. ඔවුන්ගේ සෑම සේවාවක් සඳහාම, සංවර්ධකයින් ඔවුන්ගේම උපකරණ පුවරුව සාදයි. ඉන්පසු ඔවුන් ඒවා මත පදනම්ව ප්‍රස්ථාර ගොඩනඟයි, එමඟින් ඔවුන්ගේ යෙදුම් වලින් ඔවුන් ලියන ප්‍රමිතික පෙන්වයි. Grafana වලට අමතරව අපිට SLAM එකත් තියෙනවා. මෙය මිනිරන් දත්ත මත පදනම්ව SLA ගණනය කරන පයිතන් යක්ෂයෙකි. මා දැනටමත් පවසා ඇති පරිදි, අපට ක්ෂුද්‍ර සේවා දුසිම් කිහිපයක් ඇත, ඒ සෑම එකක්ම තමන්ගේම අවශ්‍යතා ඇත. SLAM භාවිතා කරමින්, අපි ලේඛන වෙත ගොස් එය Graphite හි ඇති දේ සමඟ සංසන්දනය කර අපගේ සේවාවන් ලබා ගැනීමේ අවශ්‍යතා කෙතරම් හොඳින් ගැලපෙනවාද යන්න සංසන්දනය කරමු.

අපි තවදුරටත් යමු: අනතුරු ඇඟවීම. එය ශක්තිමත් පද්ධතියක් භාවිතා කරමින් සංවිධානය කර ඇත - මොයිරා. තොප්පිය යට එහි ම ග්‍රැෆයිට් ඇති බැවින් එය ස්වාධීන ය. SKB "Kontur" හි යාලුවන් විසින් සංවර්ධනය කරන ලද, python සහ Go වලින් ලියා ඇත, සම්පූර්ණයෙන්ම විවෘත මූලාශ්‍ර. මිනිරන් තුළට යන ප්‍රවාහයම මොයිරාට ලැබේ. කිසියම් හේතුවක් නිසා ඔබේ ගබඩාව මිය ගියහොත්, ඔබේ ඇඟවීම තවමත් ක්‍රියා කරයි.

අපි Moira Kubernetes හි යෙදෙව්වෙමු; එය ප්‍රධාන දත්ත ගබඩාව ලෙස Redis සේවාදායක පොකුරක් භාවිතා කරයි. එහි ප්‍රතිඵලය වූයේ වරදට ඔරොත්තු දෙන පද්ධතියකි. එය ප්‍රේරක ලැයිස්තුව සමඟ ප්‍රමිතික ප්‍රවාහය සංසන්දනය කරයි: එහි කිසිදු සඳහනක් නොමැති නම්, එය මෙට්‍රික් පහත හෙළයි. එබැවින් එය විනාඩියකට ගිගාබයිට් මෙට්රික්ස් දිරවීමට සමත් වේ.

අපි එයට ආයතනික LDAP එකක් ද අමුණා ඇති අතර, එහි උපකාරයෙන් ආයතනික පද්ධතියේ සෑම පරිශීලකයෙකුටම පවතින (හෝ අලුතින් සාදන ලද) ප්‍රේරක මත පදනම්ව තමන්ටම දැනුම්දීම් නිර්මාණය කළ හැකිය. මොයිරා ග්‍රැෆයිට් අඩංගු බැවින් එහි සියලුම අංග සඳහා සහය දක්වයි. එබැවින් ඔබ මුලින්ම රේඛාව ගෙන එය Grafana වෙත පිටපත් කරන්න. ප්‍රස්ථාරවල දත්ත පෙන්වන ආකාරය බලන්න. ඉන්පසු ඔබ එම රේඛාවම ගෙන එය මොයිරා වෙත පිටපත් කරන්න. ඔබ එය සීමා සහිතව එල්ලා ප්‍රතිදානයේදී අනතුරු ඇඟවීමක් ලබා ගන්න. මේ සියල්ල කිරීමට, ඔබට නිශ්චිත දැනුමක් අවශ්ය නොවේ. මොයිරාට SMS, විද්‍යුත් තැපෑල, ජිරා, ස්ලැක් හරහා අනතුරු ඇඟවීම් කළ හැක... එය අභිරුචි ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීමට ද සහාය වේ. ඇයට ප්‍රේරකයක් සිදු වූ විට, සහ ඇය අභිරුචි ස්ක්‍රිප්ට් එකකට හෝ ද්විමය පිටපතකට දායක වූ විට, ඇය එය ක්‍රියාත්මක කර මෙම ද්විමය සඳහා stdin වෙත JSON යවයි. ඒ අනුව, ඔබේ වැඩසටහන එය විග්‍රහ කළ යුතුය. මෙම JSON සමඟ ඔබ කරන්නේ කුමක්ද යන්න ඔබට භාරයි. ඕන නම් ටෙලිග්‍රාම් එකට යවන්න, ඕන නම් ජිරා එකේ වැඩ ඕපන් කරන්න, ඕන දෙයක් කරන්න.

අපි අනතුරු ඇඟවීම සඳහා අපගේම සංවර්ධනය භාවිතා කරමු - Imagotag. සාමාන්‍යයෙන් වෙළඳසැල්වල ඉලෙක්ට්‍රොනික මිල ටැග් සඳහා භාවිතා කරන පැනලය අපි අපගේ අවශ්‍යතාවලට ගැලපෙන පරිදි සකස් කළෙමු. අපි ඒකට මොයිරා එකෙන් කොකා ගෙනාවා. ඔවුන් සිටින්නේ කුමන තත්වයකද සහ ඒවා සිදු වූ විට එය පෙන්නුම් කරයි. සමහර සංවර්ධන කොල්ලන් මෙම පැනලයට පක්ෂව Slack සහ විද්‍යුත් තැපෑලෙහි දැනුම්දීම් අත්හැර දැමූහ.

සේවාවක් ලෙස අධීක්‍ෂණය: ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පය සඳහා මොඩියුලර් පද්ධතියක්

හොඳයි, අපි ප්‍රගතිශීලී සමාගමක් බැවින්, අපි මෙම පද්ධතිය තුළ Kubernetes ද නිරීක්ෂණය කළෙමු. අපි එය පොකුරේ ස්ථාපනය කරන ලද Heapster භාවිතයෙන් පද්ධතියට ඇතුළත් කළෙමු, එය දත්ත එකතු කර එය ග්‍රැෆයිට් වෙත යවයි. ප්රතිඵලයක් වශයෙන්, රූප සටහන මේ ආකාරයෙන් පෙනේ:

සේවාවක් ලෙස අධීක්‍ෂණය: ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පය සඳහා මොඩියුලර් පද්ධතියක්

අධීක්ෂණ සංරචක

මෙන්න අපි මෙම කාර්යය සඳහා භාවිතා කළ සංරචක වෙත සබැඳි ලැයිස්තුවකි. ඒවා සියල්ලම විවෘත මූලාශ්ර වේ.

මිනිරන්:

කාබන්-සී-රිලේ:

github.com/grobian/carbon-c-relay

බෲබෙක්:

github.com/github/brubeck

එකතු කරන ලද:

collected.org

මොයිරා:

github.com/moira-alert

ග්‍රැෆානා:

grafana.com

Heapster:

github.com/kubernetes/heapster

සංඛ්‍යාලේඛන

තවද පද්ධතිය අපට ක්‍රියා කරන ආකාරය පිළිබඳ අංක කිහිපයක් මෙන්න.

එකතු කරන්නා (බෲබෙක්)

ප්‍රමිතික ගණන: ~300/sec
ග්‍රැෆයිට් වෙත ප්‍රමිතික යැවීම සඳහා පරතරය: තත්පර 30
සේවාදායක සම්පත් භාවිතය: ~ 6% CPU (අපි කතා කරන්නේ සම්පූර්ණ සර්වර් ගැන); ~ 1Gb RAM; ~3 Mbps LAN

ග්රැෆයිට් (go-කාබන්)

ප්‍රමිතික ගණන: ~ 1 / min
ප්‍රමිතික යාවත්කාලීන පරතරය: තත්පර 30
ප්‍රමිතික ගබඩා ක්‍රමය: 30sec 35d, 5min 90d, 10min 365d (දිගු කාලයක් පුරා සේවාවට සිදුවන්නේ කුමක්ද යන්න පිළිබඳව ඔබට අවබෝධයක් ලබා දේ)
සේවාදායක සම්පත් භාවිතය: ~10% CPU; ~ 20Gb RAM; ~30 Mbps LAN

නම්‍යශීලී බව

Avito හි අපි අපගේ අධීක්ෂණ සේවාවේ නම්‍යශීලී බව සැබවින්ම අගය කරමු. ඇත්තටම ඇයි ඔහු මේ විදියට හැරුණේ? පළමුව, එහි සංරචක එකිනෙකට හුවමාරු කළ හැකිය: සංරචක සහ ඒවායේ අනුවාද දෙකම. දෙවනුව, සහයෝගය. සම්පූර්ණ ව්‍යාපෘතිය විවෘත මූලාශ්‍රයක් බැවින්, ඔබට කේතය ඔබම සංස්කරණය කිරීමට, වෙනස්කම් කිරීමට සහ කොටුවෙන් පිටත නොමැති කාර්යයන් ක්‍රියාත්මක කිරීමට හැකිය. ප්‍රධාන වශයෙන් Go සහ Python භාවිතා කරන තරමක් පොදු අට්ටි භාවිතා වේ, එබැවින් මෙය ඉතා සරලව සිදු කෙරේ.

මෙන්න සැබෑ ගැටලුවක උදාහරණයක්. ග්‍රැෆයිට් හි මෙට්‍රික් එකක් යනු ගොනුවකි. ඒකට නමක් තියෙනවා. ගොනු නාමය = මෙට්රික් නම. ඒ වගේම එතනට යන්න ක්‍රමයක් තියෙනවා. ලිනක්ස් හි ගොනු නාම අක්ෂර 255 කට සීමා වේ. තවද අපට (“අභ්‍යන්තර ගනුදෙනුකරුවන්” ලෙස) දත්ත සමුදා දෙපාර්තමේන්තුවේ අය සිටිති. ඔවුන් අපට පවසන්නේ: “අපට අපගේ SQL විමසුම් නිරීක්ෂණය කිරීමට අවශ්‍යයි. තවද ඒවා අක්ෂර 255 ක් නොව 8 MB බැගින් වේ. අපට ඒවා ග්‍රැෆානා හි ප්‍රදර්ශනය කිරීමට අවශ්‍ය වේ, මෙම ඉල්ලීම සඳහා පරාමිති බලන්න, සහ ඊටත් වඩා හොඳ, අපට එවැනි ඉල්ලීම්වල ඉහළින්ම දැකීමට අවශ්‍යය. එය නියම වේලාවට ප්‍රදර්ශනය කරන්නේ නම් එය විශිෂ්ට වනු ඇත. ඔවුන් සීරුවෙන් තැබීම ඇත්තෙන්ම සිසිල් වනු ඇත. ”

සේවාවක් ලෙස අධීක්‍ෂණය: ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පය සඳහා මොඩියුලර් පද්ධතියක්
උදාහරණ SQL විමසුම උදාහරණයක් ලෙස ගෙන ඇත අඩවිය postgrespro.ru

අපි Redis සේවාදායකයක් සකසා අපගේ එකතු කරන ලද ප්ලගීන භාවිතා කරමු, එය Postgres වෙත ගොස් එහි ඇති සියලුම දත්ත ග්‍රැෆයිට් වෙත ප්‍රමිතික යවයි. නමුත් අපි මෙට්‍රික් නම හෑෂ් වලින් ආදේශ කරමු. අපි එකවරම එකම හැෂ් යතුරක් ලෙස Redis වෙත යවමු, සහ සම්පූර්ණ SQL විමසුම අගයක් ලෙස යවමු. අපිට කරන්න තියෙන්නේ ග්‍රැෆානාට රෙඩිස් එකට ගිහින් මේ තොරතුරු ගන්න පුළුවන්ද කියන එකයි. අපි Graphite API විවෘත කරන්නේ... ග්‍රැෆයිට් සමඟ සියලුම අධීක්ෂණ සංරචක අන්තර්ක්‍රියා කිරීම සඳහා වන ප්‍රධාන අතුරු මුහුණත මෙය වන අතර, අපි එහි aliasByHash() නමින් නව ශ්‍රිතයක් ඇතුළත් කරන්නෙමු - ග්‍රැෆනා වෙතින් අපට මෙට්‍රික් නම ලැබෙන අතර එය යතුරක් ලෙස රෙඩිස් වෙත ඉල්ලීමකදී භාවිතා කරයි. ප්‍රතිචාරයෙන් අපට යතුරේ වටිනාකම ලැබේ, එය අපගේ "SQL විමසුම" " මේ අනුව, අපි ග්‍රැෆානා හි SQL විමසුමක සංදර්ශකයක් ප්‍රදර්ශනය කළෙමු, එය න්‍යායාත්මකව එහි ප්‍රදර්ශනය කිරීමට නොහැකි වූ අතර එය පිළිබඳ සංඛ්‍යාලේඛන (ඇමතුම්, පේළි, මුළු_කාලය, ...).

ප්රතිඵල

ලබා ගත හැකි. අපගේ නිරීක්ෂණ සේවාව ඕනෑම යෙදුමකින් සහ ඕනෑම කේතයකින් 24/7 ලබා ගත හැකිය. ඔබට ගබඩා පහසුකම් සඳහා ප්රවේශය තිබේ නම්, ඔබට සේවාව වෙත දත්ත ලිවිය හැකිය. භාෂාව වැදගත් නැත, තීරණ වැදගත් නොවේ. ඔබ දැනගත යුත්තේ සොකට් එකක් විවෘත කර එහි මෙට්‍රික් එකක් දමා සොකට් එක වසා දමන්නේ කෙසේද යන්න පමණි.

විශ්වසනීයත්වය සියලුම සංරචක දෝෂ වලට ඔරොත්තු දෙන අතර අපගේ බර හොඳින් හසුරුවයි.

ඇතුල්වීමට අඩු බාධකයක්. මෙම පද්ධතිය භාවිතා කිරීම සඳහා, ඔබට Grafana හි ක්‍රමලේඛන භාෂා සහ විමසුම් ඉගෙන ගැනීමට අවශ්‍ය නොවේ. ඔබගේ යෙදුම විවෘත කරන්න, එයට සොකට් එකක් ඇතුළු කරන්න, එය ග්‍රැෆයිට් වෙත ප්‍රමිතික යවනු ඇත, එය වසා දමන්න, ග්‍රැෆානා විවෘත කරන්න, එහි උපකරණ පුවරු සාදන්න සහ මොයිරා හරහා දැනුම්දීම් ලබා ගනිමින් ඔබේ මිනුම්වල හැසිරීම බලන්න.

නිදහස. DevOps ඉංජිනේරුවන්ගේ සහාය නොමැතිව ඔබට මේ සියල්ල තනිවම කළ හැකිය. මෙය වාසියකි, ඔබට දැන් ඔබේ ව්‍යාපෘතිය නිරීක්ෂණය කළ හැකි නිසා, ඔබට කිසිවකුගෙන් ඇසීමට අවශ්‍ය නැත - එක්කෝ වැඩ ආරම්භ කිරීමට හෝ වෙනස්කම් කිරීමට.

අප ඉලක්ක කරන්නේ කුමක් සඳහාද?

පහත ලැයිස්තුගත කර ඇති සෑම දෙයක්ම වියුක්ත සිතුවිලි පමණක් නොව, අවම වශයෙන් පළමු පියවර ගෙන ඇති දෙයකි.

  1. විෂමතා අනාවරකය. අපගේ ග්‍රැෆයිට් ගබඩා වෙත ගොස් විවිධ ඇල්ගොරිතම භාවිතයෙන් එක් එක් මෙට්‍රික් පරීක්ෂා කරන සේවාවක් නිර්මාණය කිරීමට අපට අවශ්‍යය. දැනටමත් අපට බැලීමට අවශ්‍ය ඇල්ගොරිතම තිබේ, දත්ත තිබේ, එය සමඟ වැඩ කරන්නේ කෙසේදැයි අපි දනිමු.
  2. පාරදත්ත. අපට බොහෝ සේවාවන් ඇත, ඒවා කාලයත් සමඟ වෙනස් වේ, ඔවුන් සමඟ වැඩ කරන පුද්ගලයින් මෙන්. අතින් ලියකියවිලි නිරන්තරයෙන් නඩත්තු කිරීම විකල්පයක් නොවේ. අපි දැන් අපගේ ක්ෂුද්‍ර සේවාවලට පාරදත්ත කාවැද්දුවේ එබැවිනි. එය සංවර්ධනය කළේ කවුරුන්ද, එය අන්තර්ක්‍රියා කරන භාෂා, SLA අවශ්‍යතා, දැනුම්දීම් යැවිය යුත්තේ කොතැනටද සහ කාටද යන්න එහි සඳහන් වේ. සේවාවක් යෙදවීමේදී, සියලුම ආයතන දත්ත ස්වාධීනව නිර්මාණය වේ. ප්‍රතිඵලයක් වශයෙන්, ඔබට සබැඳි දෙකක් ලැබේ - එකක් ප්‍රේරක සඳහා, අනෙක ග්‍රැෆානා හි උපකරණ පුවරු වෙත.
  3. සෑම නිවසකම අධීක්ෂණය. සියලුම සංවර්ධකයින් එවැනි පද්ධතියක් භාවිතා කළ යුතු බව අපි විශ්වාස කරමු. මෙම අවස්ථාවේදී, ඔබේ ගමනාගමනය කොතැනද, එයට කුමක් සිදුවේද, එය වැටෙන්නේ කොතැනද, එහි දුර්වලතා කොතැනද යන්න ඔබ සැමවිටම තේරුම් ගනී. උදාහරණයක් ලෙස, යමක් පැමිණ ඔබේ සේවාව බිඳ වැටුණහොත්, ඔබ ඒ ගැන ඉගෙන ගන්නේ කළමනාකරුගේ ඇමතුමකදී නොව, අනතුරු ඇඟවීමකින් වන අතර, ඔබට වහාම නවතම ලොග් විවෘත කර එහි සිදු වූ දේ දැක ගත හැකිය.
  4. ඉහළ කාර්ය සාධනය. අපගේ ව්‍යාපෘතිය නිරන්තරයෙන් වර්ධනය වන අතර අද එය විනාඩියකට මෙට්‍රික් අගයන් 2 ක් පමණ ක්‍රියාවට නංවයි. වසරකට පෙර, මෙම අගය 000. සහ වර්ධනය දිගටම පවතින අතර, මෙයින් අදහස් කරන්නේ ටික වේලාවකට පසු ග්‍රැෆයිට් (විස්පර්) තැටි උප පද්ධතිය දැඩි ලෙස පැටවීමට පටන් ගන්නා බවයි. මා දැනටමත් පවසා ඇති පරිදි, මෙම අධීක්ෂණ පද්ධතිය සංරචකවල අන්තර් හුවමාරු හැකියාව හේතුවෙන් තරමක් විශ්වීය වේ. යමෙක් ග්‍රැෆයිට් සඳහා ඔවුන්ගේ යටිතල පහසුකම් නඩත්තු කර නිරන්තරයෙන් පුළුල් කරයි, නමුත් අපි වෙනත් මාර්ගයකට යාමට තීරණය කළෙමු: භාවිතා කරන්න නිවස ක්ලික් කරන්න අපගේ මිනුම් සඳහා ගබඩාවක් ලෙස. මෙම සංක්‍රාන්තිය බොහෝ දුරට සම්පූර්ණ වී ඇති අතර, මෙය සිදු කළේ කෙසේද යන්න ඉතා ඉක්මනින් මම ඔබට වඩාත් විස්තරාත්මකව කියමි: එහි ඇති දුෂ්කරතා මොනවාද සහ ඒවා ජයගත්තේ කෙසේද, සංක්‍රමණ ක්‍රියාවලිය සිදු වූ ආකාරය, මම බන්ධන ලෙස තෝරාගත් සංරචක සහ ඒවායේ වින්‍යාසයන් විස්තර කරමි.

ඔබගේ අවදානය පිළිබඳ ස්තූතියි! මාතෘකාව පිළිබඳ ඔබේ ප්‍රශ්න අසන්න, මම මෙහි හෝ පහත ලිපි වලින් පිළිතුරු දීමට උත්සාහ කරමි. සමහර විට යමෙකුට සමාන අධීක්ෂණ පද්ධතියක් ගොඩනඟා හෝ සමාන තත්වයක් තුළ ක්ලික්හවුස් වෙත මාරු වීමේ අත්දැකීමක් තිබේ - එය අදහස් දැක්වීමේදී බෙදා ගන්න.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න