Grafana — metric, log, trace va boshqa ma’lumot manbalarini dashboard hamda vizual panel ko‘rinishida tahlil qilishga mo‘ljallangan observability platformasi.
Grafana odatda ma’lumotning asosiy nusxasini o‘zi yig‘maydi. U Prometheus, Elasticsearch, Loki, SQL database va boshqa data source’lardan query qilib natijani ko‘rsatadi.
Data source
Data source Grafana va tashqi ma’lumot tizimi orasidagi integratsiya.
- connection;
- authentication;
- query language;
- timeout;
- default database;
- access policy
ga ega.
Bir dashboard bir nechta data source’dan ma’lumot olishi mumkin.
Dashboard
Dashboard bir mavzu yoki service holatini ko‘rsatadigan panellar to‘plami.
Yaxshi dashboard aniq savolga javob beradi:
Barcha metricni bitta ekranga joylash dashboardni o‘qishni qiyinlashtiradi.
Panel
Panel bitta query yoki ma’lumot guruhini ko‘rsatadi.
Vizual turlar:
- time series;
- stat;
- gauge;
- bar chart;
- table;
- heatmap;
- histogram;
- log panel;
- geomap;
- text.
Vizual tur ma’lumot semantikasiga mos tanlanadi.
Query
Panel data source querysini bajaradi.
- time range;
- variable;
- filter;
- aggregation;
- transformation
dan foydalanishi mumkin.
Og‘ir query ko‘p foydalanuvchi dashboardni yangilaganda backendga katta yuk beradi.
Time range
Dashboard global vaqt oralig‘iga ega.
Masalan:
- oxirgi 15 daqiqa;
- oxirgi 24 soat;
- aniq incident oynasi.
Panel kerak bo‘lsa global vaqtni override qilishi mumkin.
Time zone user yoki tashkilot settingiga bog‘liq.
Refresh interval
Dashboard avtomatik yangilanadi.
Juda qisqa interval:
Metric scrape intervaldan tezroq refresh yangi ma’lumot bermasligi mumkin.
Variable
Variable dashboardni qayta ishlatishga yordam beradi.
Misollar:
Variable qiymati data source query orqali olinishi mumkin.
Yuqori cardinality variable dropdown va query performance’ini pasaytiradi.
Template
Dashboard query va title ichida variable ishlatadi.
Masalan:
service = $service
Bir dashboard ko‘p service yoki environment uchun ishlaydi.
Variable escaping query injection va noto‘g‘ri filterdan himoya qiladi.
Annotation
Annotation time series ustida muhim hodisani ko‘rsatadi.
Misollar:
- deployment;
- incident;
- config update;
- maintenance;
- feature flag.
Metricdagi o‘zgarishni release va boshqa hodisa bilan bog‘lash osonlashadi.
Alerting
Grafana query asosida alert rule ishlatishi mumkin.
Alert:
- evaluation interval;
- condition;
- pending duration;
- label;
- annotation;
- contact point;
- notification policy
ga ega.
Dashboard paneli va alert query’i bir xil ko‘rinsa ham alohida execution contextga ega bo‘lishi mumkin.
Contact point
Alert notification:
ga yuboriladi.
Routing label va policy orqali boshqariladi.
Secret webhook URL va tokenlar himoyalanadi.
Folder
Dashboard va alertlar folderlarga guruhlanadi.
Folder:
- team;
- project;
- environment;
- domain
bo‘yicha tashkil qilinishi mumkin.
Folder permissioni dashboardga accessni boshqaradi.
Organization va tenant
Grafana instance bir nechta tashkilot yoki tenantni mantiqiy ajratishi mumkin.
Data source credential va dashboardlar alohida saqlanadi.
Bu to‘liq fizik isolation emas; administrator huquqlari ehtiyotkor boshqariladi.
Provisioning
Dashboard, data source va alertlar fayl yoki API orqali avtomatik provision qilinishi mumkin.
Afzalliklari:
- version control;
- review;
- takroriy environment;
- qo‘lda driftni kamaytirish.
UI’da qo‘lda o‘zgartirilgan dashboard provisioning bilan qayta yozilishi mumkin.
Dashboard as code
Dashboard JSON yoki boshqa declarative formatda saqlanadi.
Generated dashboard library yoki template orqali yaratilishi mumkin.
Juda abstrakt generator oddiy panel o‘zgarishini qiyinlashtiradi. Kod va UI workflow o‘rtasida aniq ownership belgilanadi.
Transformation
Grafana query natijalarini panel darajasida:
qilishi mumkin.
Katta data processingni dashboardga yuklash o‘rniga data source’da aggregation qilish ko‘pincha samaraliroq.
Permissions
Role va permission:
bo‘yicha boshqariladi.
Viewerga data source orqali kutilmagan query bajarish imkoniyati berilmasligi kerak.
Public dashboard
Ayrim dashboard authentication’siz share qilinishi mumkin.
Unda:
oshkor bo‘lmasligi tekshiriladi.
Snapshot ham static ma’lumotni tashqi joyga chiqarishi mumkin.
Plugin
Plugin yangi data source, panel yoki application imkoniyatini qo‘shadi.
Plugin server yoki browser kontekstida code bajarishi mumkin.
Source, signature, version va security update nazorat qilinadi.
Library panel
Bir xil panel ko‘p dashboardda ishlatilsa library panel sifatida boshqarilishi mumkin. Markaziy o‘zgarish barcha bog‘langan dashboardlarga tarqaladi.
Dashboard UID
Dashboard nomi o‘zgarishi mumkin, UID esa barqaror identifikator beradi. Link, provisioning va API aynan UIDga tayanishi mumkin.
Query caching
Gateway yoki data source query natijasini cache qilishi mumkin. Cache key time range, variable va permission contextini hisobga oladi.
Drill-down
Yuqori darajali paneldan tegishli log, trace yoki batafsil dashboardga data link beriladi. Linkda service, vaqt oralig‘i va trace ID kabi context saqlanadi.
Audit
Dashboard, data source va alert o‘zgarishlari kim tomonidan bajarilgani qayd etilishi mumkin. Bu incident paytida konfiguratsiya o‘zgarishini aniqlashga yordam beradi.
Bog‘liq tushunchalar
Dashboard, Data source, Panel, Visualization, Variable, Annotation, Alerting, Prometheus, Loki, Elasticsearch, Observability