Roman Khavronenko "ExtendedPromQL" විසින් කරන ලද වාර්තාවේ පිටපත කියවීමට මම යෝජනා කරමි.
මා ගැන කෙටියෙන්. මගේ නම රෝමන්. මම CloudFlare සඳහා වැඩ කරන අතර ලන්ඩනයේ ජීවත් වෙමි. නමුත් මමත් වික්ටෝරියා මෙට්රික්ස් නඩත්තු කරන්නෙක්.
ඒ වගේම මම තමයි කතුවරයා
අපි "පරිවර්තන දුෂ්කරතා" ලෙස හැඳින්වෙන පළමු කොටසෙන් පටන් ගනිමු, එහි දී මම ඕනෑම භාෂාවක් හෝ සන්නිවේදන භාෂාවක් පවා ඉතා වැදගත් බව ගැන කතා කරමි. මක්නිසාද යත් ඔබ ඔබේ සිතුවිලි වෙනත් පුද්ගලයෙකුට හෝ පද්ධතියකට ප්රකාශ කරන ආකාරය, ඔබ ඉල්ලීමක් සකස් කරන ආකාරය මෙයයි. අන්තර්ජාලයේ සිටින අය වඩා හොඳ කුමන භාෂාවද යන්න ගැන තර්ක කරති - java හෝ වෙනත්. මා වෙනුවෙන්, මේ සියල්ල නිශ්චිත බැවින්, කාර්යයක් තෝරා ගැනීමට අවශ්ය බව මම තීරණය කළෙමි.
අපි මුල සිටම පටන් ගනිමු. PromQL යනු කුමක්ද? PromQL යනු Prometheus Query Language වේ. කාල ශ්රේණි දත්ත, කාල ශ්රේණි ලබා ගැනීමට අපි Prometheus හි විමසුම් සාදන ආකාරය මෙයයි.
කාල ශ්රේණි දත්ත යනු කුමක්ද? වචනාර්ථයෙන්, මේවා පරාමිති තුනකි.
මෙය:
- අපි මොනවද බලන්නේ.
- අපි එය දෙස බලන විට.
- සහ එය පෙන්නුම් කරන වටිනාකම කුමක්ද.
ඔබ මෙම ප්රස්ථාරය දෙස බැලුවහොත් (මෙම ප්රස්ථාරය මගේ දුරකථනයෙන් වන අතර එය මගේ පියවරවල සංඛ්යාලේඛන පෙන්වයි), එවිට ඔබට මෙම ප්රශ්නවලට ඉක්මනින් පිළිතුරු දිය හැකිය.
අපි පියවර දෙස බලා සිටිමු. අපි අර්ථය දකිමු, අපි එය බලන විට කාලය දකිමු. එනම්, මෙම රූප සටහන දෙස බලන විට, ඉරිදා මම පියවර 15 ක් පමණ ඇවිද ගිය බව ඔබට පහසුවෙන් පැවසිය හැකිය. මෙය කාල ශ්රේණියේ දත්ත වේ.
දැන් අපි ඒවා වගුවක ස්වරූපයෙන් වෙනත් දත්ත ආකෘතියකට "බිඳ" (පරිවර්තනය) කරමු. මෙන්න අපි බලන දේත් තියෙනවා. මෙන්න මම අමතර දත්ත ටිකක් එකතු කළා, අපි එය meta-data ලෙස හඳුන්වමු, එනම්, ඒ හරහා ගියේ මම නොවේ, නමුත් පුද්ගලයන් දෙදෙනෙකු, උදාහරණයක් ලෙස, ජේ සහ සයිලන්ට් බොබ්. මේක තමයි අපි බලන්නේ; එය පෙන්වන දේ සහ එය එම අගය පෙන්වන විට.
දැන් අපි මෙම සියලු දත්ත දත්ත ගබඩාවේ ගබඩා කිරීමට උත්සාහ කරමු. උදාහරණයක් ලෙස, මම ClickHouse සින්ටැක්ස් ගත්තා. මෙන්න අපි "පියවර" නමින් එක් වගුවක් සාදන්නෙමු, එනම් අපි බලන දේ. අපි එය දෙස බලන විට මෙහි කාලයක් තිබේ; එය පෙන්වන දේ සහ සමහර පාර-දත්ත අපි ගබඩා කරන්නේ කවුරුන්ද යන්නයි: ජේ සහ සයිලන්ට් බොබ්.
ඒ සියල්ල දෘශ්යමාන කිරීමට උත්සාහ කිරීම සඳහා, අපි ග්රැෆානා භාවිතා කරන්නෙමු, මන්ද, පළමුව, එය ලස්සනයි.
එසේම අපි මෙම ප්ලගිනය භාවිතා කරන්නෙමු. මෙයට හේතු දෙකක් තිබේ. පළවෙනි එක මම ලියපු නිසා. සහ Grafana හි පෙන්වීමට ClickHouse වෙතින් කාල ශ්රේණි දත්ත ලබා ගැනීම කොතරම් දුෂ්කර දැයි මම හරියටම දනිමි.
අපි ප්රස්තාර පැනලයේ පෙන්වමු. මෙය Grafana හි වඩාත්ම ජනප්රිය පැනලය වන අතර කාලයට සාපේක්ෂව අගය පෙන්වයි, එබැවින් අපට අවශ්ය වන්නේ පරාමිති දෙකක් පමණි.
අපි සරලම විමසුම ලියන්නෙමු - Grafana හි පියවර සංඛ්යාලේඛන පෙන්වන්නේ කෙසේද, මෙම දත්ත ClickHouse හි ගබඩා කරන්නේ කෙසේද, අප විසින් සාදන ලද වගුවේ. තවද අපි එවන් සරල විමසුමක් ලියන්නෙමු. අපි පියවර වලින් තෝරා ගනිමු. අපි අගයක් තෝරා මෙම අගයන් වල කාලය තෝරන්න, එනම් අපි කතා කළ පරාමිති තුනම.
එහි ප්රතිඵලයක් වශයෙන්, අපි මෙම ප්රස්ථාරය ලබා ගනිමු. ඔහු මෙතරම් අමුතු වන්නේ මන්දැයි කවුද දන්නේ?
ඒක හරි, ඔබ කාලය අනුව වර්ග කළ යුතුයි.
අවසානයේදී අපට වඩා හොඳ, නමුත් තවමත් අමුතු කාලසටහනක් ලැබේ. ඇයි දන්නේ කවුද? එය හරි, සහභාගිවන්නන් දෙදෙනෙක් සිටින අතර, අපි ග්රැෆානා හි කාල ශ්රේණි දෙකක් ලබා දෙමු, මන්ද අපි දත්ත ආකෘතිය සමඟ නැවත ගනුදෙනු කරන්නේ නම්, සෑම කාල ශ්රේණියක්ම නමක සහ සියලුම ලේබල් යතුරු-අගයන්හි අද්විතීය සංයෝජනයකි.
එමනිසා, අපි නිශ්චිත පුද්ගලයෙකු තෝරා ගත යුතුය. අපි ජේ තෝරාගන්නවා.
සහ නැවත අඳින්න. දැන් ප්රස්ථාරය සත්ය බව පෙනේ. දැන් එය සාමාන්ය කාලසටහනක් වන අතර සියල්ල හොඳින් ක්රියාත්මක වේ.
සහ, බොහෝ විට, ඔබ එකම දේ කරන්නේ කෙසේදැයි දන්නවා, නමුත් PromQL හරහා Prometheus. දළ වශයෙන් මේ වගේ. ටිකක් පහසුයි. සහ අපි ඒ සියල්ල කඩා දමමු. අපි පියවර ගත්තා. සහ ජේ විසින් පෙරහන් කරන්න. අපි මෙහි අගයක් ලබා ගත යුතු බව සඳහන් කර නැති අතර අපි වේලාවක් තෝරා නොගනිමු.
දැන් අපි ජේ හෝ සයිලන්ට් බොබ්ගේ චලන වේගය ගණනය කිරීමට උත්සාහ කරමු. ClickHouse හි, අපට runDifference කිරීමට අවශ්ය වනු ඇත, එනම්, ලකුණු යුගල අතර වෙනස ගණනය කර නිශ්චිත වේගය ලබා ගැනීම සඳහා ඒවා කාලයෙන් බෙදන්න. ඉල්ලීම මේ වගේ දෙයක් පෙනෙනු ඇත.
ඔහු ආසන්න වශයෙන් මෙම අගයන් පෙන්වනු ඇත, එනම් Silent Bob හෝ Jay තත්පරයකට ආසන්න වශයෙන් පියවර 1,8 ක් පෙන්වයි.
Prometheus වලදී ඔබ එය කරන්නේ කෙසේදැයි දනී. ඉස්සරට වඩා ගොඩක් ලේසියි.
ඒවගේම Grafana වල කරන්නත් ලේසි වෙන්න, PromQL වලට ගොඩක් සමානයි වගේ එහෙම wrapper එකක් මම එකතු කරා. එය Rate Macros ලෙස හැඳින්වේ, නැතහොත් ඔබට එය ඇමතීමට අවශ්ය ඕනෑම දෙයක්. Grafana හි, ඔබ "අනුපාතය" ලියන්නේ, නමුත් කොතැනක හෝ ගැඹුරින් එය එතරම් විශාල ඉල්ලීමක් බවට පරිවර්තනය වේ. ඔබට එය දෙස බැලීමටවත් අවශ්ය නැත, එය කොතැනක හෝ තිබේ, නමුත් ඔබට බොහෝ කාලයක් ඉතිරි වේ, මන්ද එවැනි විශාල SQL විමසුම් ලිවීම සැමවිටම මිල අධිකය. ඔබට පහසුවෙන් වැරැද්දක් කළ හැකි අතර පසුව දිගු කලක් සිදුවන්නේ කුමක්ද යන්න තේරුම් ගත නොහැක.
තවද මෙය එක් විනිවිදකයකටවත් නොගැලපෙන විමසුමක් වන අතර මට එය තීරු දෙකකට බෙදීමට පවා සිදු විය. මෙය ClickHouse හි ඉල්ලීමක් වන අතර, එය එකම අනුපාතයක් ඇති කරයි, නමුත් කාල ශ්රේණි දෙකටම: Silent Bob සහ Jay, එවිට අපට පැනලයේ කාල ශ්රේණි දෙකක් ඇත. මගේ මතය අනුව මෙය දැනටමත් ඉතා අපහසුය.
Prometheus ට අනුව එය එකතුව (අනුපාතය) වනු ඇත. ClickHouse සඳහා මම Prometheus විමසුමක් ලෙස පෙනෙන RateColumns නමින් වෙනම මැක්රෝ එකක් සෑදුවෙමි.
අපි බැලූ අතර PromQL සියල්ල ඉතා සිසිල් බව පෙනේ, නමුත් එයට ඇත්ත වශයෙන්ම සීමාවන් ඇත.
මෙය:
- සීමිත SELECT.
- Edge JOINs.
- සහයෝගයක් නැත.
ඔබ එය සමඟ දිගු කාලයක් වැඩ කර ඇත්නම්, සමහර විට PromQL හි යමක් කිරීම ඉතා අපහසු බව ඔබ දන්නවා, සහ SQL හි ඔබට සෑම දෙයක්ම පාහේ කළ හැකිය, මන්ද අප දැන් කතා කළ මෙම විකල්ප සියල්ලම SQL වලින් කළ හැකිය. . නමුත් එය භාවිතා කිරීමට පහසු වේවිද? සෑම විටම වඩාත්ම බලවත් භාෂාව වඩාත් පහසු විය නොහැකි බව මෙය මට සිතීමට හේතු වේ.
එමනිසා, සමහර විට ඔබට කාර්යයන් සඳහා භාෂාවක් තෝරා ගැනීමට අවශ්ය වේ. ඒක හරියට බැට්මෑන් සහ සුපර්මෑන් අතර සටනක් වගේ. සුපර්මෑන් වඩා ශක්තිමත් බව පැහැදිලිය, නමුත් ඔහු වඩාත් ප්රායෝගික නිසාත් ඔහු කරන දේ හරියටම දැන සිටි නිසාත් ඔහුව පරාජය කිරීමට බැට්මෑන්ට හැකි විය.
ඊළඟ කොටස PromQL දිගු කිරීමයි.
නැවත වරක් වික්ටෝරියා මෙට්රික්ස් ගැන. VictoriaMetrics යනු කුමක්ද? මෙය කාල ශ්රේණියේ දත්ත ගබඩාවකි, එය OpenSource හි ඇත, අපි එහි තනි සහ පොකුරු අනුවාද බෙදා හරිමු. අපගේ මිණුම් සලකුණු වලට අනුව, එය දැන් වෙළඳපොලේ ඇති වේගවත්ම වන අතර එය සම්පීඩනය අනුව සමාන වේ, එනම් ජීවත්වන මිනිසුන් ප්රොමිතියස්ට 0,4-1,2 ඇති විට එක් ලක්ෂ්යයකට බයිට් 1,4 ක් පමණ සම්පීඩනය වාර්තා කරයි.
අපි සහය දක්වන්නේ ප්රොමිතියස්ට පමණක් නොවේ. අපි InfluxDB, Graphite, OpenTSDB සහය දෙමු.
ඔබට අප තුළ "ලියන්න" හැකිය, එනම්, ඔබට පැරණි දත්ත මාරු කළ හැකිය.
ඒ වගේම අපි Prometheus සහ Grafana සමඟත් හොඳින් වැඩ කරනවා, එනම් අපි PromQL එන්ජිමට සහය දෙනවා. තවද Grafana හි, ඔබට Prometheus අන්ත ලක්ෂ්යය VictoriaMetrics ලෙස වෙනස් කළ හැකි අතර ඔබේ සියලු උපකරණ පුවරු ඔවුන් කළ ආකාරයටම ක්රියා කරයි.
නමුත් ඔබට VictoriaMetrics විසින් සපයන ලද අතිරේක චිප් භාවිතා කළ හැකිය.
අපි ඉක්මනින් අපි එකතු කළ විශේෂාංග හරහා යන්නෙමු.
විරාම පරාමිතිය අතහරින්න - ඔබට Grafana හි පරාමිති විරාමය මඟ හැරිය හැක. පැනලයේ විශාලනය කරන විට/පිටතට යන විට ඔබට අමුතු ප්රස්තාර ලබා ගැනීමට අවශ්ය නැති විට, විචල්යය භාවිතා කිරීම නිර්දේශ කෙරේ. $__interval
. මෙය අභ්යන්තර Grafana වෙනසක් වන අතර එය දත්ත පරාසයම තෝරා ගනී. සහ VictoriaMetrics හට මෙම පරාසය කුමක් විය යුතුද යන්න තේරුම් ගත හැකිය. තවද ඔබට ඔබගේ සියලු ඉල්ලීම් යාවත්කාලීන කිරීමට අවශ්ය නැත. එය වඩාත් පහසු වනු ඇත.
දෙවන කාර්යය වන්නේ අන්තරාල යොමු කිරීමයි. ඔබට ඔබේ ප්රකාශනවල මෙම පරතරය භාවිතා කළ හැක. ඔබට එය ගුණ කිරීමට, බෙදීමට, මාරු කිරීමට, යොමු කිරීමට හැකිය.
ඊළඟට rollup function family එක. රෝල්අප් ශ්රිතය ඔබගේ ඕනෑම කාල ශ්රේණියක් වෙනම කාල ශ්රේණි තුනක් බවට පරිවර්තනය කරයි. මේවා අවම, උපරිම සහ සාමාන්ය වේ. මට එය ඉතා පහසුයි, මන්ද සමහර විට එය සමහර බාහිර (විෂමතා) සහ සාවද්ය තැන් පෙන්විය හැක.
තවද ඔබ කෝපයට පත් වීම හෝ අගය කිරීම පමණක් කරන්නේ නම්, ඔබ අදහස් කළ ආකාරයට කාල ශ්රේණිය නොහැසිරෙන සමහර අවස්ථා ඔබට මග හැරිය හැක. මෙම ශ්රිතය සමඟ බැලීම වඩාත් පහසුයි, අපි කියමු max සාමාන්ය ඉතා අඩුයි කියා.
ඊළඟට පෙරනිමි විචල්යය වේ. පෙරනිමිය - මෙයින් අදහස් කරන්නේ අපට මේ මොහොතේ කාල ශ්රේණියක් නොමැති නම් ග්රැෆානා හි ඇඳීමට අවශ්ය අගය කුමක්ද යන්නයි. එය සිදු වන්නේ කවදාද? අපි හිතමු ඔබ යම් දෝෂ ප්රමිතික නිර්යාත කළා කියලා. තවද ඔබට එවැනි සිසිල් යෙදුමක් තිබේ, ඔබ ආරම්භ කරන විට, ඔබට කිසිදු දෝෂයක් නොමැති අතර ඊළඟ පැය තුන හෝ දිනකට පවා දෝෂ නොමැත. සාර්ථකත්වයේ සිට දෝෂය දක්වා සම්බන්ධතා පෙන්වන උපකරණ පුවරු ඔබ සතුව ඇත. තවද ඔබට දෝෂ මෙට්රික් නොමැති නිසා ඔවුන් ඔබට කිසිවක් පෙන්වන්නේ නැත. පෙරනිමියෙන් ඔබට ඕනෑම දෙයක් සඳහන් කළ හැකිය.
Keep_last_Value - මෙට්රික් එකේ අවසාන අගය අස්ථානගත වී ඇත්නම් එය සුරකියි. ඊළඟ සීරීමෙන් පසු Prometheus එය මිනිත්තු 5 ක් ඇතුළත සොයා නොගත්තේ නම්, මෙහිදී අපට එහි අවසාන අගය මතක තබා ගත හැකි අතර ඔබේ ප්රස්ථාර නැවත කැඩී නොයනු ඇත.
Scrape_interval - Prometheus ඔබේ මෙට්රික් මත කොපමණ වාර ගණනක් දත්ත රැස් කරන්නේද යන්න පෙන්වයි. මෙහිදී ඔබට අවසර පත්රය දැකිය හැකිය, උදාහරණයක් ලෙස.
ලේබල් ප්රතිස්ථාපනය ජනප්රිය අංගයකි. නමුත් නිඛිල තර්ක අවශ්ය නිසා එය ටිකක් සංකීර්ණයි කියලා අපි හිතනවා. තවද ඔබට තර්ක 5 මතක තබා ගැනීම පමණක් නොව, ඒවායේ අනුපිළිවෙලද මතක තබා ගත යුතුය.
එමනිසා, ඒවා සරල නොකරන්නේ මන්ද? එනම්, එය පැහැදිලි වාක්ය ඛණ්ඩයක් සහිත කුඩා ශ්රිතවලට කඩා දමන්න.
දැන් වඩාත්ම සිත්ගන්නා සුළුය. එය දිගු කළ PromQL යැයි අපි සිතන්නේ ඇයි? මොකද අපි Common Table Expressions වලට සහය දක්වන නිසා. ඔබට QR කේතය අනුගමනය කළ හැකිය (
සහ එය කුමක්ද? ඉහත ඉල්ලීම තරමක් ජනප්රිය ඉල්ලීමකි. මම හිතන්නේ බොහෝ සමාගම්වල ඕනෑම උපකරණ පුවරුවක ඔබ සෑම දෙයකටම එකම ෆිල්ටරය භාවිතා කරයි. සාමාන්යයෙන් එසේ. නමුත් ඔබට නව පෙරහන කිහිපයක් එක් කිරීමට අවශ්ය වූ විට, ඔබට එක් එක් පැනලය යාවත්කාලීන කිරීමට හෝ උපකරණ පුවරුව බාගත කිරීමට, එය JSON හි විවෘත කිරීමට, සොයා ගැනීම ප්රතිස්ථාපනය කිරීමට සිදු වේ, ඒ සඳහාද කාලය ගත වේ. මෙම අගය විචල්යයක ගබඩා කර නැවත භාවිතා නොකරන්නේ මන්ද? මගේ මතය අනුව, එය වඩා සරල හා පැහැදිලි බව පෙනේ.
උදාහරණයක් ලෙස, මට සියලුම ඉල්ලීම් වලදී Grafana හි පෙරහන් යාවත්කාලීන කිරීමට අවශ්ය වූ විට සහ උපකරණ පුවරුව විශාල විය හැකිය හෝ ඒවායින් කිහිපයක් තිබිය හැකිය. ග්රැෆානා හි මෙම ගැටලුව විසඳීමට මා කැමති වන්නේ කෙසේද?
මම මේ ගැටලුව විසඳන්නේ මෙහෙමයි: මම commonFilter එකක් සාදා එය තුළ මෙම පෙරණය නිර්වචනය කර, පසුව මම එය විමසුම්වල නැවත භාවිතා කරමි. නමුත් ඔබ දැන් එයම කළහොත් එය ක්රියා නොකරනු ඇත, මන්ද ග්රැෆනා ඔබට විමසුම් විචල්යයන් තුළ විචල්ය භාවිතා කිරීමට ඉඩ නොදේ. ඒ වගේම ටිකක් අමුතුයි.
ඒ නිසා මම ඔබට මෙය කිරීමට ඉඩ දෙන විකල්පයක් සාදා ඇත. ඔබ කැමති නම් හෝ එවැනි විශේෂාංගයක් අවශ්ය නම්, ඔබ මෙම අදහසට අකමැති නම් සහාය හෝ අකමැත්ත.
PromQL ගැන වැඩි විස්තර දීර්ඝ. මෙහිදී අපි විචල්යයක් පමණක් නොව, සෘජුවම සම්පූර්ණ ශ්රිතයක් නිර්වචනය කරමු. තවද අපි එය ru (සම්පත් භාවිතය) ලෙස හඳුන්වමු. තවද මෙම කාර්යය නිදහස් සම්පත්, සම්පත් සීමාවක් සහ පෙරහනක් පිළිගනී. වාක්ය ඛණ්ඩය සරල බව පෙනේ. තවද මෙම කාර්යය භාවිතා කිරීම සහ අප සතුව ඇති නිදහස් මතකයේ ප්රතිශතය ගණනය කිරීම ඉතා පහසු වේ. එනම්, අපට කොපමණ මතකයක් තිබේද, කුමන සීමාවක් සහ පෙරහන් කරන්නේ කෙසේද යන්නයි. ඔබ ඒ සියල්ල එකම පෙරහන් නැවත භාවිතා කරමින් ලියන්නේ නම් එය වඩා හොඳ බව පෙනේ, මන්ද එය විශාල, විශාල විමසුමක් බවට පත් වනු ඇත.
මෙන්න එවැනි විශාල, විශාල ඉල්ලීමකට උදාහරණයක්. එය Grafana සඳහා නිල NodeExporter උපකරණ පුවරුවෙන්. නමුත් මට ඇත්තටම තේරෙන්නේ නැහැ මෙතන වෙන්නේ මොකක්ද කියලා. එනම්, ඇත්ත වශයෙන්ම, ඔබ සමීපව බැලුවහොත් මට තේරෙනවා, නමුත් වරහන් ගණන වහාම මෙහි සිදුවන්නේ කුමක්ද යන්න තේරුම් ගැනීමට පෙළඹවීම අඩු කළ හැකිය. සහ එය සරල හා පැහැදිලි නොකරන්නේ මන්ද?
උදාහරණයක් ලෙස, මේ වගේ, විචල්යවල සැලකිය යුතු දේවල් හෝ කොටස් ඉස්මතු කිරීම. ඉන්පසු ඔබේ මූලික ගණිතය කරන්න. මෙය දැනටමත් ක්රමලේඛනයට සමාන ය, අනාගතයේදී ග්රැෆානා හි දැකීමට මා කැමති දේ මෙයයි.
අපට දැනටමත් මෙම ru ශ්රිතය තිබේ නම්, එය දැනටමත් VictoriaMetrics හි සෘජුවම පවතී නම් එය වඩාත් පහසු කර ගත හැකි ආකාරය පිළිබඳ දෙවන උදාහරණයක් මෙන්න. එවිට ඔබ CTE හි ප්රකාශ කළ හැඹිලිගත අගය සමත් වේ.
නිවැරදි ක්රමලේඛන භාෂාව භාවිතා කිරීම කොතරම් වැදගත්ද යන්න ගැන මම දැනටමත් කතා කර ඇත්තෙමි. තවද, බොහෝ විට, සෑම සමාගමකම ග්රැෆානාහි වෙනස් දෙයක් සිදුවෙමින් පවතී. තවද, බොහෝ විට, ඔබ තවමත් ඔබේ සංවර්ධකයින්ට Grafana වෙත ප්රවේශය ලබා දෙන අතර, සංවර්ධකයින් ඔවුන්ගේම දෙයක් කරයි. තවද ඔවුන් සියල්ලෝම එය වෙනස් ආකාරයකින් කරති. නමුත් මට එය කෙසේ හෝ ඒ ආකාරයෙන්ම, එනම් පොදු ප්රමිතියකට අඩු කිරීමට අවශ්ය විය.
ඔබට පද්ධති ඉංජිනේරුවන් පමණක් නොමැති බව කියමු, සමහර විට ඔබට විශේෂඥයින්, devops හෝ SREs පවා සිටී. සමහර විට ඔබට අධීක්ෂණය යනු කුමක්දැයි දන්නා, ග්රැෆානා යනු කුමක්දැයි දන්නා ප්රවීණයන් ඔබ සතුව ඇත, එනම් ඔවුන් වසර ගණනාවක් තිස්සේ මෙය සමඟ වැඩ කර ඇති අතර එය නිවැරදිව කරන්නේ කෙසේදැයි ඔවුන් දනී. ඔවුන් දැනටමත් එය 100 වතාවක් ලියා එය සෑම කෙනෙකුටම පැහැදිලි කර ඇත, නමුත් කිසියම් හේතුවක් නිසා කිසිවෙකු සවන් නොදේ.
වෙනත් පරිශීලකයින්ට කාර්යයන් නැවත භාවිතා කිරීමට හැකි වන පරිදි ඔවුන්ට මෙම දැනුම කෙලින්ම ග්රැෆනා වෙත දැමිය හැකි නම් කුමක් කළ යුතුද? නිදහස් මතකයේ ප්රතිශතය ගණනය කිරීමට අවශ්ය නම්, ඔවුන් සරලව ශ්රිතය යොදනු ඇත. නමුත් අපනයනකරුවන්ගේ නිර්මාපකයින්, ඔවුන්ගේ නිෂ්පාදනය සමඟ, ඔවුන්ගේ ප්රමිතික සමඟ ක්රියා කරන්නේ කෙසේද, මෙම ප්රමිතික මොනවාද සහ ඒවා නිවැරදිව ගණනය කරන්නේ කෙසේදැයි ඔවුන් හරියටම දන්නා නිසා ශ්රිත මාලාවක් ද ලබා දුන්නේ නම් කුමක් කළ යුතුද?
මෙය ඇත්ත වශයෙන්ම පවතින්නේ නැත. මෙන්න මමම කරපු දේ. ග්රැෆානා හි පුස්තකාල සහාය මෙයයි. අපි හිතමු NodeExporter හදපු කට්ටිය මම කියපු දේ කළා කියලා. තවද විශේෂාංග සමූහයක් ද සපයා ඇත.
එනම්, එය මේ වගේ දෙයක් පෙනේ. ඔබ මෙම පුස්තකාලය Grafana වෙත සම්බන්ධ කර, ඔබ සංස්කරණයට පිවිසෙන අතර, මෙම මෙට්රික් සමඟ වැඩ කරන ආකාරය JSON හි ඉතා සරලයි. එනම්, සමහර කාර්යයන් සමූහයක්, ඒවායේ විස්තරය සහ ඒවා දිග හැරෙන දේ.
මගේ මතය අනුව, මෙය ප්රයෝජනවත් විය හැකිය, මන්ද එවිට ඔබ ග්රැෆානා හි ලියන්නේ එලෙසමය. එවැනි සහ එවැනි පුස්තකාලයකින් එවැනි සහ එවැනි කාර්යයක් ඇති බව Grafana ඔබට "කියනවා" - අපි එය භාවිතා කරමු. මම හිතන්නේ එය ඉතා සිසිල් වනු ඇත.
VictoriaMetrics ගැන ටිකක්. අපි රසවත් දේවල් ගොඩක් කරනවා. සම්පීඩනය ගැන, වෙනත් කාල ශ්රේණියේ දත්ත යෙදුම් සමඟ අපගේ තරඟය ගැන, PromQL සමඟ වැඩ කරන්නේ කෙසේද යන්න පිළිබඳ අපගේ පැහැදිලි කිරීම, මෙහි තවත් බොහෝ ආරම්භකයින් සිටින නිසා මෙන්ම සිරස් පරිමාණය සහ Thanos සමඟ ගැටුම ගැන අපගේ ලිපි කියවන්න.
ප්රශ්න:
මම මගේ ප්රශ්නය සරල ජීවිත කතාවකින් ආරම්භ කරමි. මම මුලින්ම Grafana භාවිතා කිරීමට පටන් ගත් විට, මම ඉතා ඒත්තු ගැන්වෙන පේළි 5 විමසුමක් ලිව්වෙමි. අවසාන ප්රතිඵලය ඉතා ඒත්තු ගැන්වෙන වගුවකි. මෙම ප්රස්ථාරය නිෂ්පාදනයට පාහේ ගොස් ඇත. නමුත් සමීපව පරීක්ෂා කිරීමේදී, මෙම ප්රස්ථාරය යථාර්ථයට කිසිදු සම්බන්ධයක් නැති පරම විකාර පෙන්වන බව පෙනී ගියේය, නමුත් සංඛ්යා අප දැකීමට අපේක්ෂා කළ පරාසයට වැටේ. සහ මගේ ප්රශ්නය. අපට පුස්තකාල තිබේ, අපට කාර්යයන් ඇත, නමුත් අපි ග්රැෆානා සඳහා පරීක්ෂණ ලියන්නේ කෙසේද? ඔබ ව්යාපාරික තීරණයට බලපාන සංකීර්ණ විමසුමක් ලියා ඇත - සේවාදායකයන්ගේ සැබෑ බහාලුමක් ඇණවුම් කිරීමට හෝ ඇණවුම් නොකිරීමට. අපි දන්නා පරිදි, ප්රස්ථාරයක් අඳින මෙම ශ්රිතය සත්යයට සමාන වේ. ඔයාට ස්තූතියි.
ප්රශ්නයට ස්තූතියි. මෙහි කොටස් දෙකක් ඇත. පළමුවෙන්ම, මගේ අත්දැකීම් මත පදනම්ව, බොහෝ පරිශීලකයින් ඔවුන්ගේ ප්රස්ථාර දෙස බලන විට, ඔවුන් පෙන්වන්නේ කුමක්දැයි නොතේරෙන බව මට හැඟේ. කොහොම හරි, ප්රස්ථාරවල සිදුවන ඕනෑම විෂමතාවයක්, එය කාර්යයක් ඇතුළත දෝෂයක් වුවද, එයට නිදහසට කරුණක් ඉදිරිපත් කිරීමට මිනිසුන් ඉතා දක්ෂයි. දෙවන කොටස - ඔබේ එක් එක් සංවර්ධකයින් තමන්ගේම ධාරිතා සැලසුම් කිරීම සහ යම් සම්භාවිතාවක් සහිතව වැරදි සිදු කිරීම වෙනුවට, එවැනි කාර්යයන් භාවිතා කිරීම ඔබේ ගැටලුව විසඳීමට වඩාත් සුදුසු බව මට පෙනේ.
පරීක්ෂා කරන්නේ කෙසේද?
පරීක්ෂා කරන්නේ කෙසේද? නොවෙන්නත් පුළුවන්.
ග්රැෆානා හි පරීක්ෂණයක් ලෙස.
සහ Grafana ගැන කුමක් කිව හැකිද? Grafana මෙම ඉල්ලීම කෙලින්ම DataSource වෙත පරිවර්තනය කරයි.
පරාමිති වලට ටිකක් එකතු කිරීමෙන්.
නැහැ, Grafana වෙත කිසිවක් එකතු නොවේ. පියවර වැනි GET පරාමිති තිබිය හැක. එය පැහැදිලිව සඳහන් කර නැත, නමුත් ඔබට එය අභිබවා යා හැක, ඔබට එය ප්රතික්ෂේප කළ නොහැක, නමුත් එය ස්වයංක්රීයව එකතු වේ. ඔබ මෙහි පරීක්ෂණ ලියන්නේ නැත. ඔබ මෙහි සත්ය මූලාශ්රයක් ලෙස ග්රැෆානා මත විශ්වාසය තැබිය යුතු යැයි මම නොසිතමි.
වාර්තාවට ස්තූතියි! සම්පීඩනය සඳහා ස්තූතියි! ප්රස්තාරයක විචල්යයක් සිතියම්ගත කිරීම ගැන ඔබට මතක ඇති, ග්රැෆනා හි ඔබට විචල්යයක විචල්යයක් භාවිතා කළ නොහැකි බව. මම අදහස් කරන දේ ඔබට තේරෙනවාද?
ඔව්.
මට Grafana හි අනතුරු ඇඟවීමක් කිරීමට අවශ්ය වූ විට මෙය මුලින් හිසරදයක් විය. තවද එහිදී ඔබ එක් එක් සත්කාරක සඳහා වෙන වෙනම අනතුරු ඇඟවීමක් කළ යුතුය. මෙන්න මේකයි ඔයා කරපු වැඩේ, Grafana වල ඇලර්ට් වලට වැඩ කරනවද?
Grafana වෙනත් ආකාරයකින් විචල්යවලට ප්රවේශ නොවන්නේ නම්, ඔව්, එය ක්රියා කරයි. නමුත් මගේ උපදෙස නම් කිසිසේත්ම Grafana හි අනතුරු ඇඟවීම් භාවිතා නොකිරීමයි, ඔබ alertmanager භාවිතා කිරීම වඩා හොඳය.
ඔව්, මම එය භාවිතා කරමි, නමුත් එය ග්රැෆානා හි පිහිටුවීම පහසු බව පෙනේ, නමුත් ඔත්තුව සඳහා ස්තූතියි!
මූලාශ්රය: www.habr.com