GH GambleHub

Grafana және деректерді көрсету

(Бөлім: Технологиялар және Инфрақұрылым)

Қысқаша түйіндеме

Grafana - барлық бақыланатын витрина: метрика, логи, трассировка, бизнес-көрсеткіштер және бір орында алерта. iGaming үшін бұл: p95/p99 мониторингі, төлем конверсиясы, Time-to-Wallet, ойын провайдерлерінің қолжетімділігі, оқыс оқиғаларды гео-бөлу және релиздерді салыстыру (stable vs canary). Табысқа жету: үлгілер (айнымалы), түсінікті панельдер, релиздер аңдатпалары, SLO-дашбордтар және кіру құқығы тәртібі.

1) Қосылым архитектурасы

Datasources: Prometheus (метриктер), Loki/ELK (логтар), Tempo/Jaeger (трейдерлер), ClickHouse/BigQuery/PG (бизнес деректер), Gateway арқылы OTLP.
Негізгі байланыстар: метрикадан → exemplar → trace → байланысты логтар бойынша 'trace _ id'.
Қалталар және RBAC: жеке қалталар 'SRE', 'Payments', 'Risk', 'Games', 'BizOps'; роли `Viewer/Editor/Admin` и granular permissions.

2) Дашбордтар дизайны: қағидаттар

1. 1-2 нұқу үшін сұраққа жауап: SLO-картадан егжей-тегжейлі.
2. Әрбір сервис + домендік карточкалар бойынша RED/USE (TTW, депозиттер конверсиясы).
3. Тұрақты тор: 24-бағаналы, үстінен ірі KPI, астынан бөлшектер.
4. Түстер мен табалдырықтар: ең аз, тек SLA/SLO бойынша.
5. Шығарылым аңдатпалары: Git SHA, нұсқасы, шығарылым түрі (canary/blue-green).

3) Ауыспалы және темплейттер (templating)

Айнымалылар бір дашбордты көп дашбордқа айналдырады.

Мысал (Prometheus query-variable):
  • Name: `service`
  • Query: `label_values(up, service)`
  • Multi-select + include all - агрегаттар үшін ыңғайлы.
Каскадты айнымалылар:
  • `region` → `env` → `service` → `instance`.
  • UX үшін 'regex '/' sort' және 'refresh: On dashboard load' дегенді пайдаланыңыз.

4) Панельдер және визуализация түрлері

Time series: p50/p95/p99, error-rate, throughput.
Stat/Gauge: мақсатты KPI (availability, TTW p95).
Bar gauge/Table: Top-N маршруттары/PSP/ойын провайдерлері.
Geomap: елдер/РОР бойынша оқыс оқиғалардың/жасырындылықтың жылу карталары.
Canvas: сызбалық ағындар (Player → API → PSP → Bank).
Node graph: сервистерге тәуелділік, қателер бойынша бояу.

Түрлендіру:
  • Labels to fields, Outer join (метриктер мен бизнес-кестелерді желімдеу), Reduce (мин/макс/avg), Add field from calculation (конверсия).

5) Сұраулар мен панельдер мысалдары

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 Сұраулардың табысты болуы (SLO proxy)

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

5. 3 Төлем конверсиясы (PromQL агрегаты)

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

5. 4 Трассаға жылдам секіру (exemplars)

'Time series' панелінде Exemplars → түймешігін қосыңыз → Tempo с 'trace _ id' ашылады.

5. 5 trace_id логтары (Loki)

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

6) Аңдатпалар мен оқиғалар

Release annotations: деплой кезінде оқиғаны авто-қосу (нұсқа, автор, канарейка салмағы).
Incident/Freeze: оқиғаның басталу/аяқталу белгілері және релиздерді қатыру терезелері.
Бизнес-оқиғалар: ірі науқандар/турнирлер - кестелерде белгілеңіз.

7) Графанадағы алерттар

Alert rules орталықтандырылған (Prometheus/Loki/Cloud базисінде).
Contact points: PagerDuty/Slack/Email; Notification policies (қалта/тегтер бойынша рутинг).
Multi-window burn-rate: бюджетті жылдам және баяу күйдіру.
Silences: жоспарлы терезелерде және қайталауларда.

p95 өрнек үлгісі:
promql histogram_quantile(0. 95,
sum by (le, service) (rate(http_request_duration_seconds_bucket{service="$service"}[5m]))
) > 0. 25

8) Провижининг код ретінде (IaC)

Git ішіндегі көздерді/дашбордтарды/алерталарды сақтаңыз.

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 (үзік)

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

9) Қауіпсіздік және қол жетімділік

SSO (OIDC/SAML), топтар → рөлдер → қалталар.
datasources құқықтары: тек қажетті қалталарға, Viewer үшін read-only.
PII-гигиена: алаңдарды PII-ден панельге тартпау; логтар үшін - сүзіңіз/жасырыңыз.
Құпиялар: тек Vault/secure JSON fields арқылы, дашбордтарда «плэйн-мәтінсіз».

10) Өнімділік және құн

Ауыр өрнектер үшін Prometheus-те Recording rules.
Ұзақ сақталатын бэкендтерде Downsampling/Retention.
Дашборд кэші және адал аралықтар (барлық жерде «1s» емес).
Айнымалылардың түбегейлілігін шектеу ('user _ id '/' session _ id' дегенді қоймаңыз).
Қайта бөлу: шулы командалар үшін жеке инстанциялар/фолдер.

11) iGaming үшін мамандандырылған дашбордтар

Payments: әрекеттер/сәттілік/TTW p95, PSP/маршрут қатесі, гео-карта ауытқулары.
Games/Providers: latency және error-rate бойынша студиялар/ойындар, іске қосу конверсиясы.
Тәуекел/Fraud: әрекет жылдамдығы, құрылғылардың жарылысы/IP, корреляциялар (кесте + бар-гейдж).
RG/Compliance: сессиялар> табалдырық, стейктердің өсуі, аномалиялар бойынша алерталар.
Release Compare: тұрақты vs p95/error/бизнес-метриктер бойынша канареялық.
Infra/USE: Utilization/Saturation/Errors кластерлер мен кезектер бойынша.

12) JSON-дашборд мысалы (фрагмент)

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 және UX жақсарту

Әрбір алерт - Runbook URL (әрекеттер нұсқаулығы).
Байланысты дашбордтарға Links (Payments, Infra, PSP).
Drilldown: → сүзгілер (region/psp/route).
Variables defaults: 'env = prod', 'region = eu' - басталуды жылдамдатады.

14) Енгізу чек-парағы

1. datasources баптау: Prometheus/Loki/Tempo/SQL.
2. Қалталар мен RBAC енгізіңіз; құқықтар аудиті.
3. Үлгі айнымалыларын (region/env/service) жасаңыз.
4. SLO-дашборд жасаңыз (availability, p95, error-rate, қателер бюджеті).
5. Релиздер аңдатпасын және stable/canary салыстыруын қосыңыз.
6. exemplars бағдарламасын қосыңыз және басыңыз.
7. Алертты (multi-window burn-rate) және рутингті теңшеңіз.
8. Бәрін код ретінде провизиялаңыз, Git-те сақтаңыз, ыза жасаңыз.
9. Өнімділікті оңтайландыру: recording rules, интервалдар, кэш.
10. Бизнес-дашбордтарды енгізіңіз (TTW, төлем конверсиясы, GGR-карточкалар).

15) Антипаттерндер

«Зообақ» ауыспалы және стандарттары жоқ келісілмеген дашбордтар.
Ауыр PromQL бар панельдер recording rules → баяу UI.
Түстер/аңыз/білік-Y шамадан тыс көп.
Көрініс үшін ашық панелге PII қосу.
Релиздердің аннотациясының жоқтығы - жарыстың қайдан келетіні түсініксіз.
Фолдер құрылымының орнына бір «моновью» дашборд.

Grafana - техника өніммен кездесетін интерфейс: метрика, логи және трассалар бизнес-картиналармен қосылады. Үлгілер, дұрыс панельдер, аннотациялар және алерттар деректерді шешімдерге айналдырады: жылдам диагноз, болжамды релиздер және бақылаудың басқарылатын құны.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Telegram
@Gamble_GC
Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.