Variable — dastur yoki konfiguratsiyada nom bilan murojaat qilinadigan qiymat saqlash yoki parametr uzatish tushunchasidir. Dashboard kontekstida variable foydalanuvchiga service, region, namespace yoki boshqa o‘lchamni tanlab, bir nechta panel querysini birgalikda o‘zgartirish imkonini beradi. Termin umumiy dasturlash ma’nosiga ega bo‘lsa-da, bu qo‘llanishda u interaktiv query parametridir.
Dashboarddagi turlari
Query variable monitoring manbasidan label yoki field qiymatlarini oladi. Custom variable oldindan yozilgan ro‘yxatdan, constant variable yashirin yoki o‘zgarmas qiymatdan foydalanadi. Text box foydalanuvchiga erkin satr kiritish imkonini beradi. Interval variable aggregation oynasini tanlashi mumkin.
Data source variable bir dashboardni bir nechta Prometheus yoki log backend bilan ishlatadi. Ad hoc filter esa barcha mos querylarga label filtri qo‘shishi mumkin. Qaysi tur mavjudligi dashboard platformasi va pluginiga bog‘liq.
Interpolatsiya
Variable qiymati query matniga qo‘shilganda data source sintaksisiga mos escaping talab qiladi. Bitta qiymat equality matcherga, ko‘p qiymat regex yoki ro‘yxatga aylanishi mumkin. Xom formatda qo‘shish maxsus belgilarni operator sifatida talqin qildiradi.
Masalan, PromQLda ko‘p service tanlovi service=~"api|worker" shakliga kelishi mumkin. SQLda esa parametr bindingi ishlatiladi; qiymatni satr concatenation bilan qo‘shish injection xavfini tug‘diradi. Dashboard tool interpolatsiya formatini bilsa ham query muallifi kerakli formatni aniq tanlaydi.
All va ko‘p tanlov
Multi-value variable bir nechta muhitni taqqoslashga yordam beradi. “All” barcha mavjud qiymatlarni uzun regexga aylantirishi yoki maxsus wildcard ishlatishi mumkin. Minglab qiymat query URL, parser va backendga katta yuk beradi.
All qiymatining semantikasi “filtr yo‘q” va “hozir ro‘yxatda mavjud barcha qiymat” orasida farq qiladi. Yangi label paydo bo‘lganda natija qanday o‘zgarishi dashboard hujjatida tushunarli bo‘lishi kerak.
Chained variable
Bir variable boshqasiga bog‘lanishi mumkin: cluster tanlangach namespace ro‘yxati faqat shu clusterdan olinadi. Bu variantlar sonini kamaytiradi. Parent o‘zgarganda childning eski qiymati yangi ro‘yxatda bo‘lmasa reset qilinadi.
Ko‘p zanjir har refreshda ketma-ket metadata querylar yaratib dashboard ochilishini sekinlashtiradi. Variable refresh qachon — load, time range change yoki qo‘lda — bajarilishi belgilanadi. Static ro‘yxat keraksiz ravishda har vaqt oynasida qayta so‘ralmaydi.
Default va URL holati
Dashboard linki variable qiymatlarini URLda saqlashi mumkin. Bu incidentdagi aynan service va region ko‘rinishini ulashishga qulay. Secret yoki access token variablega qo‘yilmaydi, chunki URL browser history, proxy va screenshotda qoladi.
Default qiymat eng ko‘p ishlatiladigan tor scope bo‘lishi ma’qul. “Barcha production service” defaulti qimmat query va chalkash grafik hosil qiladi. Provisioned dashboardda variable nomi API kontrakti kabi barqaror saqlanadi, chunki tashqi linklar unga tayanishi mumkin.
Takrorlanuvchanlik
Incident screenshotida variable tanlovi ko‘rinmasa grafikni qayta tiklash qiyin. Dashboard export yoki URL service, region, datasource va time range holatini saqlaydi. Dynamic variable ro‘yxati keyinchalik o‘zgarsa eski URLdagi qiymat mavjud bo‘lmasligi mumkin; platforma invalid qiymatni aniq ko‘rsatadi, jim defaultga qaytmaydi.
Variable display text va query value ni ajratishi mumkin. Foydalanuvchi “Production”ni ko‘radi, backend esa barqaror prod-eu-1 identifikatorini oladi. Tarjima yoki ko‘rinadigan nom o‘zgarsa query kontrakti buzilmaydi.
Bog‘liq tushunchalar
Dashboard, Query parameter, Template variable, Interpolation, PromQL, Grafana, Data source