Grafana we maglumatlary wizuallaşdyrmak
(Bölüm: Tehnologiýalar we infrastruktura)
Gysgaça gysgaça
Grafana - ähli syn edilişiň vitrinasy: metrika, loglar, yzarlamalar, işewürlik görkezijileri we bir ýerde alertler. iGaming üçin bu: p95/p99 gözegçilik, töleg öwrülişigi, Time-to-Wallet, oýun üpjün edijileriniň elýeterliligi, wakalaryň geo-paýlanyşy we relizleri deňeşdirmek (stable vs canary). Üstünlik: şablonlar (üýtgeýjiler), düşnükli paneller, neşirleriň düşündirişleri, SLO-daşbordlar we giriş hukuklarynyň tertibi.
1) Birikdirmegiň arhitekturasy
Datasources: Prometheus (metrikler), Loki/ELK (logler), Tempo/Jaeger (söwda), ClickHouse/BigQuery/PG (iş maglumatlary), Gateway arkaly OTLP.
Esasy baglanyşyklar: metrikadan → exemplar → trace → 'trace _ id' boýunça baglanyşyk ýazgylary.
Bukjalar we RBAC: aýry-aýry bukjalar 'SRE', 'Payments', 'Risk', 'Games', 'BizOps'; роли `Viewer/Editor/Admin` и granular permissions.
2) Daşbordlaryň dizaýny: ýörelgeler
1. Soraga jogap 1-2 gezek basmak üçin: SLO-kartadan jikme-jikliklere.
2. Her hyzmat üçin RED/USE + domen kartoçkalary (TTW, goýumlaryň konwersiýasy).
3. Durnukly tor: 24 sütünli, ýokardan uly KPI, aşakdan jikme-jiklikler.
4. Reňkler we bosagalar: iň az, diňe SLA/SLO boýunça.
5. Relizleriň düşündirişleri: Git SHA, wersiýa, reliziň görnüşi (canary/blue-green).
3) Üýtgeýjiler we templatlar (templating)
Üýtgeýjiler bir dashboard köp bolýar.
Mysal (Prometheus query-variable):- Name: `service`
- Query: `label_values(up, service)`
- Multi-select + include all - agregatlar üçin amatly.
- `region` → `env` → `service` → `instance`.
- UX üçin 'regex '/' sort' we 'refresh: On dashboard load' ulanyň.
4) Wizualizasiýa panelleri we görnüşleri
Time series: p50/p95/p99, error-rate, throughput.
Stat/Gauge: Maksatly KPI (availability, TTW p95).
Bar gauge/Table: Top-N marşrutlar/PSP/oýun üpjün edijileri.
Geomap: ýurtlar/ROR boýunça hadysalaryň/gizlinligiň ýylylyk kartalary.
Kanwalar: shematiki akymlar (Player → API → PSP → Bank).
Node graph: hyzmatlara garaşlylyk, ýalňyşlyk bilen reňk.
- Labels to fields, Outer join (metrikleri we iş tablisalaryny ýelimlemek), Reduce (min/maks/avg), Add field from calculation (öwrülişik).
5) Haýyşlaryň we panelleriň mysallary
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 Soraglaryň üstünligi (SLO proxy)
promql sum(rate(http_requests_total{service="$service",status=~"2.. 3.."}[5m]))
/
sum(rate(http_requests_total{service="$service"}[5m]))
5. 3 Töleg öwrülişigi (PromQL agregaty)
promql sum(rate(payments_success_total{psp=~"$psp",currency=~"$currency"}[15m]))
/
sum(rate(payments_attempt_total{psp=~"$psp",currency=~"$currency"}[15m]))
5. 4 Trasa çalt bökmek (exemplars)
"Time series" panelinde "Exemplars" -i açyň → nokada basyň → Tempo 'trace _ id' açylýar.
5. 5 trace_id (Loki)
logql
{service="$service"} = "$traceID"
6) Düşündirişler we wakalar
Release annotations: deploýda hadysanyň awto goşulmagy (wersiýa, awtor, kanar agramy).
"Incident/Freeze": wakanyň başlanýan/gutarýan bellikleri we goýberilişleri doňdurýan penjireler.
Işewürlik wakalary: iri kampaniýalar/ýaryşlar - grafiklerde bellik ediň.
7) Grafana alertleri
Alert rules merkezleşdirildi (Prometheus/Loki/Cloud bazasynda).
Contact points: PagerDuty/Slack/Email; Notification policies (jild/taglar boýunça ruting).
Multi-window burn-rate: býudjetiň çalt we haýal bişirilmegi.
Silences: meýilleşdirilen penjirelerde we dublikatlarda.
promql histogram_quantile(0. 95,
sum by (le, service) (rate(http_request_duration_seconds_bucket{service="$service"}[5m]))
) > 0. 25
8) Kod hökmünde provizing (IaC)
Git-de çeşmeleri/dashbordlary/alertleri saklaň.
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 (bölek)
ini
[auth]
disable_login_form = false
[users]
viewers_can_edit = false
[alerting]
enabled = true
[unified_alerting. screenshots]
capture = true
9) Howpsuzlyk we elýeterlilik
SSO (OIDC/SAML), toparlar → rollar → bukjalar.
datasources hukuklary: diňe zerur bukjalar, Viewer üçin read-only.
PII-arassaçylyk: meýdanlary PII-den panele çekmezlik; bloglar üçin - süzüň/maskala.
Syrlar: diňe Vault/secure JSON fields arkaly, dashbordlarda "plain-tekstsiz".
10) Öndürijiligi we bahasy
Agyr sözler üçin Prometheusda Recording rules.
Downsampling/Retention uzak möhletli saklaýyş arkalarynda.
Dashboard keş we dogruçyl aralyklar (hemme ýerde "1s" däl).
Üýtgeýjileriň kardinallygyny çäklendirmek ('user _ id '/' session _ id' -ni çalyşmaň).
Gaýtadan paýlamak: şowhunly toparlar üçin aýry-aýry ýagdaýlar/folderler.
11) iGaming üçin ýöriteleşdirilen daşbordlar
Payments: synanyşyklar/üstünlik/TTW p95, PSP/marşrut ýalňyşlygy, geo-kartoçka gyşarmalar.
"Games/Providers: latency" we "error-rate" studiýalar/oýunlar boýunça, başlangyç öwrülişigi.
Töwekgelçilik/Fraud: hereketleriň tizligi, enjamlaryň partlamalary/IP, korrelýasiýa (tablisa + bar-geýj).
RG/Compliance: sessiýalar> bosagasy, biftekleriň beýikligi, anomaliýalar boýunça aladalar.
Release Compare: durnukly vs p95/error/iş metrleri boýunça kanareýka.
Infra/USE: Utilization/Saturation/Errors toparlar we nobatlar boýunça.
12) JSON-daşbordyň mysaly (bölek)
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 we UX-gowulaşmalar
Her bir alert - Runbook URL (hereket görkezmesi).
Baglanyşyklar birikdirilen daşbordlara (Payments, Infra, PSP).
Drilldown: belliklere basmak → süzgüçler (region/psp/route).
Variables defaults: 'env = prod', 'region = eu' - başlamagy çaltlaşdyrýar.
14) Girizmegiň çek-sanawy
1. datasources: Prometheus/Loki/Tempo/SQL.
2. Bukjalary we RBAC giriň; hukuklaryň auditi.
3. Şablon üýtgewlerini dörediň (region/env/service).
4. SLO dashbordlaryny guruň (availability, p95, error-rate, ýalňyşlyklar býudjeti).
5. Relizleriň düşündirişlerini we stable/canary deňeşdirmesini goşuň.
6. Exemplars -y açyň we basmak arkaly ýollara/ýazgylara geçiň.
7. Alertleri (multi-window burn-rate) we rutingleri sazlaň.
8. Hemme zady kod ýaly üpjün ediň, Git-de saklaň, gygyryň.
9. Öndürijiligi optimize ediň: recording rules, aralyklar, nagt pul.
10. Biznes-daşbordlary (TTW, töleg öwrülişigi, GGR-kartoçkalar) giriziň.
15) Antipatternler
Üýtgewsiz we standartsyz utgaşdyrylmadyk daşbordlaryň "haýwanat bagy".
Rulonsyz agyr PromQL panelleri → haýal UI.
Dürli şkalalar bilen gülleriň/rowaýatlaryň/Y okunyň köp bolmagy.
"Viewer" üçin açyk panelde PII birikdiriň.
Relizleriň düşündirişleriniň ýoklugy - böküşleriň nireden gelendigi belli däl.
Folder gurluşynyň ýerine bir "monow" dashbord.
Netijeler
Grafana - tehnika önüm bilen duş gelýän interfeýs: metrikler, loglar we ýollar işewürlik suratlary bilen birleşdirilýär. Şablonlar, dogry paneller, düşündirişler we alertler maglumatlary çözgütlere öwürýär: çalt diagnoz, öňünden aýdyp boljak goýberişler we gözegçilik edilýän çykdajylar.