"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Men sizga Roman Xavronenkoning "ExtendedPromQL" hisobotining stenogrammasini o'qishni taklif qilaman.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Men haqimda qisqacha. Mening ismim Roman. Men CloudFlare-da ishlayman va Londonda yashayman. Lekin men ham VictoriaMetrics boshqaruvchisiman.
Va men muallifman ClickHouse plagini Grafana uchun va ClickHouse-proksi ClickHouse uchun kichik proksi-server hisoblanadi.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Biz “Tarjimaning qiyinchiliklari” deb nomlangan birinchi qismdan boshlaymiz va unda men har qanday til yoki shunchaki muloqot tili juda muhim ekanligi haqida gapiraman. Chunki siz o'z fikrlaringizni boshqa shaxs yoki tizimga mana shunday etkazasiz, so'rovni qanday shakllantirasiz. Internetdagi odamlar qaysi til yaxshiroq - java yoki boshqasi haqida bahslashmoqda. O'zim uchun men vazifaga ko'ra tanlashim kerak deb qaror qildim, chunki bularning barchasi o'ziga xosdir.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Eng boshidan boshlaylik. PromQL nima? PromQL - bu Prometey so'rovlar tili. Vaqt seriyalari ma'lumotlarini olish uchun biz Prometeyda so'rovlarni shunday shakllantiramiz.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Vaqt seriyali ma'lumotlari nima? To'liq ma'noda, bu uchta parametr.

Ular quyidagilardir:

  • Biz nimaga qarayapmiz?
  • Biz qaraganimizda.
  • Va u qanday qiymatni ko'rsatadi?

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Agar siz ushbu jadvalga qarasangiz (bu diagramma mening telefonimdan olingan boʻlib, u mening qadamlarimni koʻrsatadi), u bu savollarga tezda javob berishi mumkin.

Biz qadamlarni ko'rib chiqamiz. Biz unga qaraganimizda ma'noni ko'ramiz va vaqtni ko'ramiz. Ya'ni, ushbu diagrammaga qarab, yakshanba kuni men 15 000 ga yaqin qadamni bosib o'tganimni osongina aytishingiz mumkin. Bu vaqt seriyasi ma'lumotlari.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Endi ularni jadval ko'rinishidagi boshqa ma'lumotlar modeliga "ajratamiz" (aylantiramiz). Bu erda biz ko'rayotgan narsamiz ham bor. Bu erda men bir oz qo'shimcha ma'lumotlarni qo'shdim, biz ularni meta-ma'lumotlar deb ataymiz, ya'ni bu men emas, balki ikki kishi, masalan, Jey va Silent Bob. Bu biz ko'rib chiqayotgan narsa; u nimani ko'rsatadi va qachon bu qiymatni ko'rsatadi.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti
Keling, ushbu ma'lumotlarning barchasini ma'lumotlar bazasida saqlashga harakat qilaylik. Masalan, men ClickHouse sintaksisini oldim. Va bu erda biz "Qadamlar" deb nomlangan bitta jadvalni yaratamiz, ya'ni biz nimani ko'rib chiqamiz. Biz unga qaraydigan vaqt bor; u nimani ko'rsatadi va ba'zi meta-ma'lumotlar biz kimligini qaerda saqlaymiz: Jey va Silent Bob.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va bularning barchasini tasavvur qilishga harakat qilish uchun biz Grafana-dan foydalanamiz, chunki birinchi navbatda u chiroyli.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Biz ham ushbu plagindan foydalanamiz. Buning ikkita sababi bor. Birinchisi, men yozganim uchun. Va men Grafana-da ko'rsatish uchun ClickHouse-dan vaqt seriyasi ma'lumotlarini olish qanchalik qiyinligini aniq bilaman.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Biz uni Grafik panelida ko'rsatamiz. Bu Grafana'dagi eng mashhur panel bo'lib, u qiymatning vaqtga bog'liqligini ko'rsatadi, shuning uchun bizga faqat ikkita parametr kerak.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti
Keling, eng oddiy so'rovni yozamiz - Grafana-da qadamlar statistikasini qanday ko'rsatish, ushbu ma'lumotlarni ClickHouse-da saqlash, biz yaratgan jadvalda. Va biz bu oddiy so'rovni yozamiz. Biz qadamlardan tanlaymiz. Biz qiymatni tanlaymiz va bu qiymatlarning vaqtini tanlaymiz, ya'ni biz gaplashgan bir xil uchta parametr.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va natijada biz shunga o'xshash grafikni olamiz. Kim biladi u nega g'alati?

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

To'g'ri, vaqt bo'yicha saralashimiz kerak.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va oxirida biz yaxshiroq, ammo g'alati jadvalga ega bo'lamiz. Kim biladi nega? To'g'ri, ikkita ishtirokchi bor va biz Grafana'da ikkita vaqt seriyasini taqdim etamiz, chunki agar siz ma'lumotlar modeliga yana qarasangiz, har bir vaqt seriyasi nom va barcha kalit-qiymat belgilarining noyob birikmasidir.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Shuning uchun, biz ma'lum bir odamni tanlashimiz kerak. Biz Jeyni tanlaymiz.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va yana chizamiz. Endi grafik haqiqatga o'xshaydi. Endi bu oddiy jadval va hamma narsa yaxshi ishlaydi.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va, ehtimol, siz taxminan bir xil narsani qanday qilishni bilasiz, lekin Prometeyda PromQL orqali. Shunga o'xshash narsa. Bir oz oddiyroq. Va keling, hammasini parchalab olaylik. Biz qadam tashladik. Va Jey tomonidan filtrlang. Bu erda biz qiymat olishimiz kerakligini va vaqtni tanlamaymiz.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Endi Jey yoki Silent Bobning harakat tezligini hisoblashga harakat qilaylik. ClickHouse-da biz runDifference-ni bajarishimiz kerak bo'ladi, ya'ni aniq tezlikni olish uchun juft nuqtalar orasidagi farqni hisoblab, ularni vaqtga bo'linadi. So'rov shunday ko'rinishga ega bo'ladi.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va u taxminan bu qiymatlarni ko'rsatadi, ya'ni Silent Bob yoki Jay soniyada taxminan 1,8 qadamni oladi.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va Prometeyda buni qanday qilishni bilasiz. Avvalgidan ancha oson.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkriptiGrafana-da buni ham oson qilish uchun men PromQL-ga juda o'xshash bo'lgan ushbu o'ramni qo'shdim. U Rate makroslari yoki siz uni nima deb atamoqchi bo'lsangiz, deyiladi. Grafana-da siz oddiygina “stavka” deb yozasiz, lekin chuqur qayerdadir bu katta talabga aylanadi. Va hatto unga qarashning hojati yo'q, u bir joyda bor, lekin siz ko'p vaqtni tejaysiz, chunki bunday katta SQL so'rovlarini yozish har doim qimmat. Siz osongina xato qilishingiz mumkin va keyin uzoq vaqt davomida nima bo'layotganini tushunmaysiz.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va bu hatto bitta slaydga to'g'ri kelmaydigan so'rov va men uni ikkita ustunga bo'lishga majbur bo'ldim. Bu, shuningdek, ClickHouse-dagi so'rov bo'lib, u bir xil stavkani amalga oshiradi, lekin ikkala vaqt seriyasi uchun: Silent Bob va Jay, shuning uchun panelda ikkita vaqt seriyasi mavjud. Va bu, mening fikrimcha, allaqachon juda qiyin.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va Prometeyga ko'ra bu summa (stavka) bo'ladi. ClickHouse uchun men Prometeydagi so'rovga o'xshab ko'rinadigan RateColumns deb nomlangan alohida makro yaratdim.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Biz buni ko'rib chiqdik va PromQL juda zo'r ko'rinadi, lekin u, albatta, cheklovlarga ega.

Ular quyidagilardir:

  • Cheklangan SELECT.
  • Borderline JOINs.
  • HAVING qo'llab-quvvatlashi yo'q.

Va agar siz u bilan uzoq vaqt ishlagan bo'lsangiz, bilasizki, ba'zida PromQL-da biror narsa qilish juda qiyin, ammo SQL-da siz deyarli hamma narsani qilishingiz mumkin, chunki biz hozirgina aytib o'tgan barcha variantlarni SQL-da bajarish mumkin edi. . Ammo undan foydalanish qulay bo'ladimi? Va bu meni eng kuchli til har doim ham eng qulay bo'lishi mumkin emas deb o'ylaydi.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Shuning uchun, ba'zan siz vazifa uchun tilni tanlashingiz kerak. Bu Betmen Supermenga qarshi kurashga o'xshaydi. Supermen kuchliroq ekanligi aniq, ammo Betmen uni engishga muvaffaq bo'ldi, chunki u amaliyroq va nima qilayotganini aniq bilardi.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va keyingi qism - PromQL-ni kengaytirish.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Yana bir bor VictoriaMetrics haqida. VictoriaMetrics nima? Bu vaqt seriyali ma'lumotlar bazasi, u OpenSource-da, biz uning yagona va klaster versiyalarini tarqatamiz. Bizning ko'rsatkichlarimizga ko'ra, u hozir bozorda mavjud bo'lgan har qanday narsadan tezroq va siqilish o'xshash, ya'ni haqiqiy odamlar har bir nuqta uchun taxminan 0,4 bayt siqilish haqida xabar berishadi, Prometeyniki esa 1,2-1,4.

Biz Prometeydan ko'proq narsani qo'llab-quvvatlaymiz. Biz InfluxDB, Graphite, OpenTSDB-ni qo'llab-quvvatlaymiz.

Siz bizga "yozishingiz" mumkin, ya'ni eski ma'lumotlarni uzatishingiz mumkin.

Va biz Prometey va Grafana bilan mukammal ishlaymiz, ya'ni biz PromQL dvigatelini qo'llab-quvvatlaymiz. Grafana-da siz Prometey so'nggi nuqtasini oddiygina VictoriaMetrics-ga o'zgartirishingiz mumkin va sizning barcha boshqaruv panellaringiz xuddi shunday ishlaydi.

Lekin siz VictoriaMetrics taqdim etgan qo'shimcha funktsiyalardan ham foydalanishingiz mumkin.

Biz qo'shgan xususiyatlarni tezda ko'rib chiqamiz.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Interval parametrini o'tkazib yuborish - Grafana'da interval parametrlarini o'tkazib yuborishingiz mumkin. Panelni kattalashtirish/kichraytirishda g'alati grafiklarni olishni istamasangiz, o'zgaruvchidan foydalanish tavsiya etiladi. $__interval. Bu ichki Grafana o'zgarishi va u ma'lumotlar oralig'ini o'zi tanlaydi. Va VictoriaMetricsning o'zi bu diapazon nima bo'lishi kerakligini tushunishi mumkin. Va barcha so'rovlaringizni yangilashingiz shart emas. Bu ancha oson bo'ladi.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Ikkinchi funktsiya - intervalli havola. Ushbu intervalni ifodalaringizda ishlatishingiz mumkin. Siz ko'paytirishingiz, bo'lishingiz, o'tkazishingiz, unga murojaat qilishingiz mumkin.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Keyingi - yig'ish funktsiyalari oilasi. Rollup funksiyasi har qanday vaqt seriyasini uchta alohida vaqt seriyasiga aylantiradi. Bular min, maks va oʻrtacha. Men buni juda qulay deb bilaman, chunki ba'zida u ba'zi bir chet va noaniqliklarni ko'rsatishi mumkin.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va agar siz shunchaki g'azablansangiz yoki baho bersangiz, vaqt seriyasi siz kutgandek ishlamaydigan ba'zi holatlarni o'tkazib yuborasiz. Bu funksiya yordamida buni ko'rish ancha oson, deylik, maks o'rtachadan ancha yuqori.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Keyingi - standart o'zgaruvchi. Standart - agar bizda hozirda vaqt seriyasi bo'lmasa, Grafana-da qanday qiymatni chizishimiz kerakligini anglatadi. Bu qachon sodir bo'ladi? Aytaylik, siz xato koʻrsatkichlarini eksport qilyapsiz. Va sizda shunday ajoyib dastur borki, siz boshlaganingizda, keyingi uch soat yoki hatto bir kun davomida sizda hech qanday xato va hatto xato bo'lmaydi. Va sizda muvaffaqiyatdan xatogacha bo'lgan munosabatlarni ko'rsatadigan asboblar paneli mavjud. Va ular sizga hech narsa ko'rsatmaydi, chunki sizda xato ko'rsatkichi yo'q. Va sukut bo'yicha siz har qanday narsani belgilashingiz mumkin.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Keep_last_Value - agar u etishmayotgan bo'lsa, ko'rsatkichning oxirgi qiymatini saqlaydi. Agar Prometey uni keyingi qirib tashlashdan keyin 5 minut ichida topa olmasa, bu erda biz uning oxirgi qiymatini eslaymiz va sizning jadvallaringiz yana buzilmaydi.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Scrape_interval - Prometey sizning ko'rsatkichingiz bo'yicha ma'lumotlarni qanchalik tez-tez va qaysi chastotada to'plashini ko'rsatadi. Bu erda, masalan, o'tishni ko'rishingiz mumkin.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti
Yorliqlarni almashtirish mashhur xususiyatdir. Ammo biz buni biroz murakkab deb hisoblaymiz, chunki u butun dalillarni talab qiladi. Va siz nafaqat 5 ta argumentni eslab qolmasdan, balki ularning ketma-ketligini ham eslab qolishingiz kerak.
"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti
Shuning uchun, nega ularni soddalashtirmaysiz? Ya'ni, uni tushunarli sintaksis bilan kichik funktsiyalarga bo'ling.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va endi qiziqarli qism. Nima uchun biz bu kengaytirilgan PromQL deb o'ylaymiz? Chunki biz umumiy jadval ifodalarini qo'llab-quvvatlaymiz. QR kodini kuzatishingiz mumkin (https://github.com/VictoriaMetrics/VictoriaMetrics/wiki/ExtendedPromQL), o'yin maydonchasidagi misollar bilan havolalarni ko'ring, bu erda siz so'rovlarni oddiygina brauzerda o'rnatmasdan to'g'ridan-to'g'ri VictoriaMetrics-da bajarishingiz mumkin.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va bu nima? Yuqoridagi so'rov juda mashhur. O'ylaymanki, ko'pgina kompaniyalarning har qanday asboblar panelida siz hamma narsa uchun bir xil filtrdan foydalanasiz. Odatda shunday. Lekin siz yangi filtr qo'shishingiz kerak bo'lganda, har bir panelni yangilashingiz yoki asboblar panelini yuklab olishingiz, JSON-da ochishingiz, almashtirishni topishingiz kerak, bu ham vaqt talab etadi. Nima uchun bu qiymatni o'zgaruvchida saqlamaslik va uni qayta ishlatmaslik kerak? Bu, mening fikrimcha, ancha sodda va tushunarli ko'rinadi.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Misol uchun, men barcha so'rovlarda Grafana filtrlarini yangilashim kerak bo'lganda va asboblar paneli juda katta bo'lishi mumkin yoki hatto ulardan bir nechtasi bo'lishi mumkin. Grafana-da bu muammoni qanday hal qilishni xohlayman?

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Men bu muammoni shunday hal qilaman: men umumiy Filtrni yarataman va unda ushbu filtrni aniqlayman va keyin uni so'rovlarda qayta ishlataman. Agar hozir ham xuddi shunday qilsangiz, u ishlamaydi, chunki Grafana so‘rov o‘zgaruvchilari ichida o‘zgaruvchilardan foydalanishga ruxsat bermaydi. Va bu biroz g'alati.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Va shuning uchun men sizga buni amalga oshirishga imkon beradigan variantni yaratdim. Va agar siz bunday xususiyatga qiziqsangiz yoki xohlasangiz, uni qo'llab-quvvatlang yoki bu fikr sizga yoqmasa, uni yoqtirmang. https://github.com/grafana/grafana/pull/16694

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

PromQL kengaytirilganligi haqida batafsil. Bu erda biz nafaqat o'zgaruvchini, balki butun funktsiyani aniqlaymiz. Va biz buni ru (resursdan foydalanish) deb ataymiz. Va bu funksiya bepul resurslarni, resurslarni cheklashni va filtrni qabul qiladi. Sintaksis oddiy ko'rinadi. Va bu funksiyadan foydalanish juda oson va bizda mavjud bo'lgan bo'sh xotira foizini hisoblash. Ya'ni, bizda qancha xotira bor, qanday cheklov va qanday filtrlash kerak. Agar siz hammasini bir xil filtrlardan qayta ishlatib yozsangiz, bu ancha qulayroq ko'rinadi, chunki u katta va katta so'rovga aylanadi.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Mana shunday katta, katta iltimosga misol. Bu Grafana uchun rasmiy NodeExporter boshqaruv panelidan. Ammo men bu erda nima bo'layotganini deyarli tushunmayman. Bu, albatta, agar siz diqqat bilan qarasangiz, tushunaman, lekin qavslar soni bu erda nima sodir bo'layotganini tushunish uchun motivatsiyani darhol kamaytirishi mumkin. Va nega buni sodda va tushunarli qilmaysiz?

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Masalan, muhim narsalarni yoki qismlarni o'zgaruvchilarga ajratish kabi. Va keyin asosiy matematikangizni bajaring. Bu allaqachon dasturlashga o'xshaydi, men kelajakda Grafana'da ko'rishni xohlayman.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Mana, agar bizda ru funksiyasi allaqachon mavjud bo'lsa va u to'g'ridan-to'g'ri VictoriaMetrics-da mavjud bo'lsa, buni qanday qilib osonroq qilishimiz mumkinligiga ikkinchi misol. Va keyin siz CTE da e'lon qilgan keshlangan qiymatdan o'tasiz.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

To'g'ri dasturlash tilidan foydalanish qanchalik muhimligi haqida yuqorida aytib o'tdim. Va, ehtimol, Grafanadagi har bir kompaniyada boshqacha narsa bor. Va, ehtimol, siz Grafana-ga dasturchilaringizga ruxsat berasiz va ishlab chiquvchilar o'zlarining ishlarini qilishadi. Va ularning barchasi buni qandaydir tarzda boshqacha qilishadi. Lekin men qandaydir tarzda bir xil bo'lishini, ya'ni umumiy standartga tushirishni xohlardim.

Aytaylik, sizda hatto tizim muhandislari ham yo'q, ehtimol sizda hatto mutaxassislar, devoplar yoki SRE ham bor. Balki sizda monitoring nimaligini biladigan, Grafana nima ekanligini biladigan, ya'ni u bilan yillar davomida ishlagan va buni qanday qilib to'g'ri bajarishni aniq biladigan mutaxassislaringiz bordir. Va ular buni allaqachon 100 marta yozib, hammaga tushuntirishdi, lekin negadir hech kim eshitmaydi.

Boshqa foydalanuvchilar funksiyalardan qayta foydalanishlari uchun ular ushbu bilimlarni to'g'ridan-to'g'ri Grafana-ga qo'yishsa nima bo'ladi? Va agar ular bo'sh xotira foizini hisoblashlari kerak bo'lsa, ular shunchaki funktsiyani qo'llashadi. Agar eksportchilarni yaratuvchilar o'z mahsuloti bilan bir qatorda o'z ko'rsatkichlari bilan qanday ishlash bo'yicha funktsiyalar to'plamini ham taqdim qilsalar, chunki ular bu ko'rsatkichlar nima ekanligini va ularni qanday to'g'ri hisoblashni yaxshi bilishadi?

Bu haqiqatan ham mavjud emas. Bu men o'zim qilgan ishim. Bu Grafana kutubxonasi yordami. Aytaylik, NodeExporter-ni yaratgan bolalar men aytgan narsani qilishdi. Va ular shuningdek, funktsiyalar to'plamini taqdim etdilar.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Ya'ni, shunga o'xshash narsa ko'rinadi. Siz ushbu kutubxonani Grafana-ga ulaysiz, siz tahrirlashga o'tasiz va JSON-da bu ko'rsatkich bilan qanday ishlash juda oddiy yozilgan. Ya'ni, ba'zi funktsiyalar to'plami, ularning tavsifi va ular nimaga aylanadi.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Menimcha, bu foydali bo'lishi mumkin, chunki Grafana'da siz xuddi shunday yozasiz. Va Grafana sizga falon kutubxonadan falon funksiya borligini "aytadi" - keling, undan foydalanaylik. Menimcha, bu juda zo'r bo'lar edi.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

VictoriaMetrics haqida bir oz. Biz juda ko'p qiziqarli narsalarni qilamiz. Siqish haqidagi maqolalarimizni, boshqa vaqt seriyali ma'lumotlar ilovalari bilan musobaqalarimizni, PromQL bilan qanday ishlashni tushuntirishimizni o'qing, chunki bu borada hali ko'plab yangi boshlanuvchilar bor, shuningdek vertikal miqyoslilik va Thanos bilan qarama-qarshilik haqida.

"ExtendedPromQL" - Roman Xavronenko hisobotining transkripti

Savollar:

Savolimni oddiy hayotiy voqeadan boshlayman. Men Grafana-dan birinchi marta foydalanishni boshlaganimda, men 5 qator uzunlikdagi juda jozibali so'rov yozdim. Yakuniy natija juda ishonchli grafikdir. Ushbu jadval deyarli ishlab chiqarishga kirdi. Ammo diqqat bilan o'rganib chiqqach, bu grafik haqiqatga hech qanday aloqasi bo'lmagan mutlaqo bema'nilikni ko'rsatayotgani ma'lum bo'ldi, garchi raqamlar biz kutgan diapazonga to'g'ri keladi. Va mening savolim. Bizda kutubxonalar bor, funktsiyalarimiz bor, lekin Grafana uchun testlarni qanday yozamiz? Siz biznes qaroriga bog'liq bo'lgan murakkab so'rov yozdingiz - serverlarning haqiqiy konteyneriga buyurtma berish yoki buyurtma bermaslik. Va biz bilganimizdek, grafikni chizadigan bu funktsiya haqiqatga o'xshaydi. Rahmat.

Savol uchun rahmat. Ikki qism mavjud. Birinchidan, men o'z tajribamga asoslanib, ko'pchilik foydalanuvchilar o'zlarining jadvallarini ko'rganlarida, ular nimani ko'rsatayotganini tushunmaydilar. Ba'zi sabablarga ko'ra, odamlar grafiklarda yuzaga keladigan har qanday anomaliya uchun bahona topishda juda yaxshi, hatto bu funktsiya ichidagi xato bo'lsa ham. Va ikkinchi qism - menimcha, har bir ishlab chiquvchi o'z imkoniyatlarini rejalashtirish va ba'zi bir ehtimollik bilan xato qilish o'rniga, bunday funktsiyalardan foydalanish muammoingizni hal qilishda ancha yaxshi yondashuv bo'ladi.

Qanday tekshirish kerak?

Qanday tekshirish kerak? Balki yo'q.

Grafanada test sifatida.

Grafananing bunga nima aloqasi bor? Grafana ushbu so'rovni to'g'ridan-to'g'ri DataSource-ga tarjima qiladi.

Parametrlarga bir oz qo'shiladi.

Yo'q, Grafana-ga hech narsa qo'shilmaydi. GET parametrlari bo'lishi mumkin, masalan, qadam. Bu aniq ko'rsatilmagan, lekin siz uni bekor qilishingiz mumkin yoki uni bekor qilmasligingiz mumkin, lekin u avtomatik ravishda qo'shiladi. Siz bu yerda testlarni yozmaysiz. Bu erda haqiqat manbai sifatida Grafanaga tayanmasligimiz kerak deb o'ylamayman.

Hisobot uchun rahmat! Siqish uchun rahmat! Grafanada o'zgaruvchini o'zgaruvchida ishlata olmasligingiz haqida grafikda o'zgaruvchini xaritalash haqida gapirdingiz. Nima demoqchi ekanligimni bilasizmi?

Ha.

Grafana'da ogohlantirish yaratmoqchi bo'lganimda, bu dastlab bosh og'rig'i edi. Va u erda siz har bir xost uchun alohida ogohlantirish qilishingiz kerak. Siz yaratgan bu narsa Grafana'da ogohlantirishlar uchun ishlaydimi?

Agar Grafana o'zgaruvchilarga boshqacha kirishmasa, ha, u ishlaydi. Lekin mening maslahatim: Grafana'da ogohlantirishni umuman ishlatmang, siz alertmanagerdan foydalanganingiz ma'qul.

Ha, men undan foydalanaman, lekin Grafana-da sozlash osonroq tuyuldi, lekin maslahat uchun rahmat!

Manba: www.habr.com

a Izoh qo'shish