GH GambleHub

Grafana va ma’lumotlarni vizualizatsiya qilish

(Bo’lim: Texnologiyalar va infratuzilma)

Qisqacha xulosa

Grafana - barcha kuzatiluvchanlik vitrinasi: metrika, loglar, trastirovkalar, biznes ko’rsatkichlar va bir joyda alertalar. iGaming uchun bu: p95/p99 monitoringi, to’lovlarni konvertatsiya qilish, Time-to-Wallet, o’yin provayderlarining mavjudligi, hodisalarni geo-taqsimlash va relizlarni taqqoslash (stable vs canary). Muvaffaqiyat: shablonlar (o’zgaruvchan), tushunarli panellar, relizlarning izohlari, SLO-dashbordlar va kirish huquqining tartibi.

1) Ulanish arxitekturasi

Datasources: Prometheus (metriklar), Loki/ELK (loglar), Tempo/Jaeger (treyslar), ClickHouse/BigQuery/PG (biznes maʼlumotlari), Gateway orqali OTLP.
Asosiy aloqalar: metrikadan → exemplar → trace → bog’langan loglar’trace _ id’.
Jildlar va RBAC: alohida jildlar’SRE’,’Payments’,’Risk’,’Games’,’BizOps’; роли `Viewer/Editor/Admin` и granular permissions.

2) Dashbordlar dizayni: tamoyillar

1. 1-2 ta bosish uchun savolga javob: SLO-kartadan tafsilotlarga.
2. RED/USE + domen kartochkalari (TTW, depozitlar konvertatsiyasi).
3. Barqaror to’rlar: 24 ustunli, yuqoridan katta KPI, pastdan qismlar.
4. Ranglar va chegaralar: minimal, faqat SLA/SLO bo’yicha.
5. Reliz izohlari: Git SHA, versiya, reliz turi (canary/blue-green).

3) Oʻzgaruvchilar va templeytlar (templating)

Oʻzgaruvchilar bitta dashbordni koʻpchilikka aylantiradi.

Misol (Prometheus query-variable):
  • Name: `service`
  • Query: `label_values(up, service)`
  • Multi-select + include all - agregatlar uchun qulay.
Kaskad oʻzgaruvchilar:
  • `region` → `env` → `service` → `instance`.
  • UX uchun’regex ’/’ sort’dan foydalaning va’refresh: On dashboard load’.

4) Vizualizatsiya panellari va turlari

Time series: p50/p95/p99, error-rate, throughput.
Stat/Gauge: maqsadli KPI (availability, TTW p95).
Bar gauge/Table: top-N yo’nalish/PSP/o’yin provayderlari.
Geomap: mamlakatlar/XTR bo’yicha hodisalar/yashirin issiqlik xaritalari.
Canvas: sxematik oqimlar (Player → API → PSP → Bank).
Node graph: xizmatlarga bogʻliqlik, xato bilan boʻyash.

Transformatsiyalar:
  • Labels to fields, Outer join (metrik va biznes jadvallarni yopishtirish), Reduce (min/maks/avg), Add field from calculation (konvertatsiya).

5) So’rovlar va panellar namunalari

5. 1 p95 latency (PromQL)

promql histogram_quantile(0. 95,
sum by (le, route) (rate(http_request_duration_seconds_bucket{service="$service",region="$region"}[5m]))
)

5. 2 So’rovlarning muvaffaqiyati (SLO proxy)

promql sum(rate(http_requests_total{service="$service",status=~"2..    3.."}[5m]))
/
sum(rate(http_requests_total{service="$service"}[5m]))

5. 3 To’lovlarni konvertatsiya qilish (PromQL agregati)

promql sum(rate(payments_success_total{psp=~"$psp",currency=~"$currency"}[15m]))
/
sum(rate(payments_attempt_total{psp=~"$psp",currency=~"$currency"}[15m]))

5. 4 Trassaga tez sakrash (exemplars)

’Time series’ panelida Exemplars → tugmasini kiriting → Tempo s’trace _ id’ochiladi.

5. 5 trace_id (Loki)

logql
{service="$service"}     = "$traceID"

6) Izohlar va voqealar

Release annotations: deploydagi voqeani avto-qoʻshish (versiya, muallif, kanar ogʻirligi).
Incident/Freeze: hodisaning boshlanish/tugash belgilari va relizlarni muzlatish oynalari.
Biznes-tadbirlar: yirik kampaniyalar/turnirlar - jadvallarda belgilang.

7) Grafanadagi alerta

Alert rules markazlashtirilgan holda (Prometheus/Loki/Cloud bazasida).
Contact points: PagerDuty/Slack/Email; Notification policies (jild/teglar boʻyicha ruting).
Multi-window burn-rate: byudjetni tez va sekin pishirish.
Silences: reja oynalarida va dublikatlarda.

p95 uchun ibora namunasi:
promql histogram_quantile(0. 95,
sum by (le, service) (rate(http_request_duration_seconds_bucket{service="$service"}[5m]))
) > 0. 25

8) Provijining kod sifatida (IaC)

Manbalarni/dashbordlarni/alertlarni Git’da saqlang.

datasource. yaml

yaml apiVersion: 1 datasources:
- name: Prometheus type: prometheus access: proxy url: http://prometheus:9090 isDefault: true
- name: Loki type: loki url: http://loki:3100
- name: Tempo type: tempo url: http://tempo:3100

dashboard. yaml

yaml apiVersion: 1 providers:
- name: sres folder: SRE type: file disableDeletion: false options:
path: /var/lib/grafana/dashboards/sre

grafana. ini (parcha)

ini
[auth]
disable_login_form = false
[users]
viewers_can_edit = false
[alerting]
enabled = true
[unified_alerting. screenshots]
capture = true

9) Xavfsizlik va foydalanish

SSO (OIDC/SAML), guruhlar → rollar → jildlar.
datasources uchun huquqlar: faqat kerakli jildlar, Viewer uchun read-only.
PII-gigiyena: maydonlarni PII dan panelga tortmaslik; log uchun - filtrlang/maskalang.
Sirlar: faqat Vault/secure JSON fields orqali, dashbordda «plain-matnsiz».

10) Unumdorlik va qiymat

Og’ir iboralar uchun Recording rules in Prometheus.
Downsampling/Retention uzoq muddat saqlangan.
Dashbord kesh va halol oraliqlar (hamma joyda «1s» emas).
Oʻzgaruvchining kardinalligini cheklash (’user _ id ’/’ session _ id’ni almashtirmang).
Qayta taqsimlash: shovqinli buyruqlar uchun alohida instansiyalar/folderlar.

11) iGaming uchun ixtisoslashtirilgan dashbordlar

Payments: urinishlar/muvaffaqiyat/TTW p95, PSP/yo’nalish xatosi, og’ishlar geo-xaritasi.
Games/Providers: latency va error-rate studiyalar/o’yinlar bo’yicha, ishga tushirish konvertatsiyasi.
Risk/Fraud: harakat tezligi, qurilmalar/IP portlashlari, korrelyatsiyalar (jadval + bar-geyj).
RG/Compliance: sessiyalar> chegara, biftek o’sishi, anomaliyalar bo’yicha alertlar.
Release Compare: barqaror vs p95/error/biznes metriklar bo’yicha kanareyochka.
Infra/USE: Utilization/Saturation/Errors klaster va navbatlar bo’yicha.

12) JSON-dashbord misoli (parcha)

json
{
"title": "Payments SLO",
"tags": ["slo","payments"],
"time": {"from":"now-6h","to":"now"},
"panels": [
{
"type":"stat",
"title":"Availability",
"targets":[{"expr":"sum(rate(http_requests_total{service=\"payments-api\",status=~\"2..    3..\"}[5m]))/sum(rate(http_requests_total{service=\"payments-api\"}[5m]))"}],
"thresholds":{"mode":"absolute","steps":[{"color":"red","value":0},{"color":"green","value":0. 999}]}
},
{
"type":"timeseries",
"title":"p95 latency",
"exemplars": {"color":"rgba(31,120,193,0. 6)"},
"targets":[{"expr":"histogram_quantile(0. 95,sum by (le) (rate(http_request_duration_seconds_bucket{service=\"payments-api\"}[5m])))"}]
}
]
}

13) Runbooks va UX-yaxshilanishlar

Har bir alertga - Runbook URL (harakat koʻrsatmasi).
Links ulangan dashbordlarga (Payments Infra PSP).
Drilldown: → filterlar (region/psp/route).
Variables defaults:’env = prod’,’region = eu’- ishga tushirishni tezlashtiradi.

14) Joriy etish chek-varaqasi

1. datasources: Prometheus/Loki/Tempo/SQL.
2. Jildlar va RBACni kiriting; huquqlar auditi.
3. Namuna oʻzgaruvchilarini yarating (region/env/service).
4. SLO-dashbordlar quring (availability, p95, error-rate, xatolar byudjeti).
5. Reliz izohlarini va stable/canary taqqoslashni qoʻshing.
6. exemplars’ni yoqing va bosilgan trassalarga oʻting.
7. Alerta (multi-window burn-rate) va rutingni moslash.
8. Hamma narsani kod sifatida bering, Git-da saqlang, qichqiriq qiling.
9. Ish qobiliyatini optimallashtirish: recording rules, intervallar, kesh.
10. Biznes-dashbordlarni (TTW, to’lov konvertatsiyasi, GGR-kartochkalar) kiriting.

15) Antipatternlar

«Hayvonot bog’i» o’zgaruvchisiz va standartlarsiz kelishilmagan dashbordlar.
Og’ir PromQL bilan panellar recording rules → sekin UI.
Turli shkalali gullar/afsonalar/o’q-Y ortiqcha.
Viewer uchun ochiq panellarga PII ulanish.
Relizlarning izohlari yo’qligi - poyga qayerdan kelgani aniq emas.
Folder tuzilishi o’rniga bitta «monovyu» dashbord.

Yakunlar

Grafana - texnika mahsulot bilan uchrashadigan interfeys: metrika, loglar va trassalar biznes-rasmlar bilan bog’lanadi. Shablonlar, to’g "ri panellar, izohlar va alertlar ma’lumotlarni yechimlarga aylantiradi: tezkor tashxis, bashorat qilinadigan relizlar va kuzatishning boshqariladigan qiymati.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Telegram
@Gamble_GC
Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.