Logo GH

Müşahidə və telemetriya

(Bölmə: Texnologiya və Infrastruktur)

Qısa xülasə

Müşahidə: «Niyə belə işləyir?» yeni binaların buraxılışı olmadan. iGaming-də bu kritikdir: pik turnirlər, ödəniş zirvələri, çoxregionallıq və məsuliyyətli gambling/PII tələbləri. Bazis - ümumi identifikatorlar və standartlarla (OpenTelemetry) birləşdirilmiş metriklər, loqlar, izlər, SLO müqavilələri, səs-küyə davamlı alertinq və dəyər nəzarəti.

1) Müşahidə çərçivəsi: nədən ibarətdir

Metriklər (zaman sayları): RED/USE, biznes-KPI, SLI. TSDB-də saxlanılır.
Loqi (mətn hadisələri/JSON): audit, səhvlər, biznes faktları, təhlükəsizlik.
Tracking (spen): xidmətlər vasitəsilə sorğu yolu, gizlilik, gecikmələrin səbəbləri.
Profil: CPU/yaddaş/eBPF axınları, heap/lock contenshn.
RUM və sintetika: real istifadəçilər (web/app) + robot yoxlama.
Telemetriya kataloqu: sxemlər, PII siyasəti, saxlama müddəti, dəyər etiketləri.

2) Siqnalların taksonomiyası və prinsipləri

RED для API: Rate, Errors, Duration.
Infrastruktur üçün USE: Utilization, Saturation, Errors (CPU, disklər, şəbəkə, növbələr).
SLI/SLO: ölçülən göstəricilər (məsələn, uğurlu sorğular/hamısı, p95 latency), əlçatanlıq hədəfləri (məsələn, "99. 9% 30 gün"), büdcə səhvləri → proseslərin tetikləyiciləri.
Ağıllı High-cardinality: etiketlər kəsiklərdə faydalı olmalıdır (region/tenant/provayder), lakin TSDB-ni partlatmayın.

3) Standartlar və korrelyasiya

OpenTelemetry (OTel): metrlər, qeydlər və izlər üçün vahid SDK/protokol.
Identifikatorları: 'trace _ id', 'span _ id', 'correlation _ id', 'player _ id' (təxəllüslü), 'payment _ route'.
ID sızması: giriş şluzu → bütün mikroservislər → ödənişlər/PSP → növbələr/joblar → qeydlər/metriklər/spenler.

Nümunə: korrelyasiya başlıqları


traceparent: 00-<trace_id>-<span_id>-01 x-request-id: <correlation_id>

4) Metriklər: nəyi və necə ölçürük

Adları/etiketləri

`service="payments-api"`, `env="prod"`, `region="eu-west"`, `tenant`, `provider="pspX"`.

Prometheus nümunələri

prometheus
RED http_requests_total{service="api",route="/deposit",method="POST",status="200"}
http_request_duration_seconds_bucket{service="api",le="0. 25",route="/deposit"} 1234 http_request_errors_total{service="api",route="/deposit"}

USE cpu_utilization_ratio{node="n1"} 0. 71 queue_depth{queue="withdrawals"} 128

Бизнес payments_success_total{psp="X",currency="EUR"} 4521 payment_conversion_ratio{route="pspX"} 0. 948

Histoqramlar və exemplars

Latentlik histoqramlarını (native-histograms/ β uckets) saxlayın və "yavaş backet 'dən xüsusi bir yola tullanmaq üçün 'trace _ id' ilə exempları bağlayın.

5) Log: strukturlu və təhlükəsiz

Yalnız JSON (prodda «free-form» yoxdur).
Поля: `timestamp`, `severity`, `service`, `trace_id`, `correlation_id`, `player_id_hash`, `event`, `amount`, `currency`, `ip_hash`.
Maska/Hash PII, həssas üçün ayrı-ayrı indekslər/retention.
Payplays log: parsing → normallaşma → zənginləşdirmə (geo/ASN) → redaktə PII → indeksləşdirmə.

JSON-hadisə nümunəsi

json
{
"ts":"2025-11-05T10:42:31Z",
"sev":"ERROR",
"service":"payments-api",
"event":"psp_timeout",
"trace_id":"9c5e...e2",
"route":"pspX",
"duration_ms": 3100,
"attempt":2,
"player_id_hash":"p:1b7f...",
"pii_redacted":true
}

6) Tracking: harada vaxt itir

Spins: giriş sorğusu, provayder zəngləri (PSP/oyun provayderləri), BD/cache, servislərarası RPC.
Atributlar: 'db. system`, `net. peer. name`, `messaging. system`, `psp. route`, `game. provider`.

Sampling:
  • həcm üçün head-based (ehtimal),
  • tail-based (şərtlərə görə: səhvlər, p95 +, VIP seqment),
  • guaranteed-keep üçün ödəniş/PII-kritik.

7) Ön və mobil müşahidə

RUM: TTFB, FCP/LCP/CLS/INP, JS səhvləri, şəbəkələr və SPA-routing.
Qəza Reports: simvolizasiya, deobfuskasiya, bild versiyası, cihaz/OS.
Sintetika: giriş/depozit ssenariləri/dərəcələri; geoayrılmış yoxlamalar.

8) SLO, SLI və büdcə səhvləri

SLO nümunəsi (psevdo-YAML)

yaml service: payments-api sli:
- name: availability expr: sum(rate(http_requests_total{status=~"2..    3.."}[5m]))
/ sum(rate(http_requests_total[5m]))
- name: latency_p95 expr: histogram_quantile(0. 95, rate(http_request_duration_seconds_bucket[5m]))
targets:
availability: "99. 9%/30d"
latency_p95: "<=250ms/30d"
error_budget_policy:
fast_burn: 5% for 1h -> page, freeze deploy slow_burn: 20% for 24h -> incident, improvement plan

Səhvlərin büdcəsi ilə alertinq, «hər metrika» ilə deyil.
Büdcənin yanması zamanı Freeze prosedurları: buraxılışları/kanareyanı məhdudlaşdırın.

9) Səs-küy olmadan Alerting

Multi-window, multi-burn qaydaları: qısa/uzun pəncərə.
Deduplikasiya/rutinq: xidmətlər/regionlar/on-call-da kritik.
Runbook URL və kontekstin avtomatik toplanması (son deploes, konfiqurasiya dəyişiklikləri, asılılıq qrafiki).
Planlı iş zamanı sakit saatlar və sıxışdırma.

Nümunə qaydaları (PromQL ideyası)

promql alert: PaymentsSLOFastBurn expr: slo_error_rate_5m > 2 slo_budget_rate for: 15m labels: { severity="page", service="payments-api" }
annotations:
summary: "SLO fast burn"
runbook: "https://runbooks/payments/slo"

10) Profilinq və eBPF

eBPF/profillər: CPU/alloc flame qrafları, I/O gecikmə, şəbəkə damcıları, Syscall anomaliyaları.
Dar yerlər p99, «jitter» və nadir asılmalar üçün faydalıdır.

11) Biznes müşahidə (product & risk)

Maliyyə/monetizasiya: depozitlərin konvertasiyası, TTW (time-to-wallet), avtoriz ./settl, ləğv/çarjbeklər.
Oyun fəaliyyəti: retenshn/strik, canlı bahislərin payı, provayderlərin «yapışqanlığı».
Antifrod/sui-qəsd: hərəkət sürəti, cihaz/IP uyğunluğu, korrelyasiya.
RG göstəriciləri: uzun sessiyalar, «doqon», biftek böyüməsi.
Biznes metriklər texniki və relizlərlə (annotation events) əlaqələndirilir.

12) Təhlükəsizlik, PII və uyğunluq

Data-zones: dataset/log etiketləri ('pii = true', 'region = EU').
Indeksləşdirmədən əvvəl maskalama, identifikatorların təxəllüsləşdirilməsi.
audit üçün WORM-saxlama; log roll giriş.
Saxlama müddəti: texniki loqlar/audit/biznes üçün fərqlidir.
Log-da xam sirlərin qadağan edilməsi; CI-də skan yoxlamaları.

13) Dəyər İdarəetmə (FinOps)

Kardinallıq limiti: diqqətlə 'user _ id', 'session _ id'.
Partizan/retenshn: isti (7-14 gün), isti (30-90), soyuq (arxiv).
Sampling trass (tail-based) və downsampling metrik.
'team', 'service', 'tenant' etiketləri ilə billing: «Müşahidə qabiliyyətini yandıran» hesabatlar.

14) Alətlər (istinad yığını)

Metrik: Prometheus/metrik lake, Grafana dashboard.
Loki: Loki/ELK; ingestion qaydaları, reduction/parsing.
Treys: Tempo/Jaeger/OTel-kollektorlar; metrik exemplars-links.
Sintetik: Blackbox ixracatçısı, brauzer robotları.
Alerting: Alertmanager/chat inteqrasiya, on-call rotasiya.
Profilinq: eBPF/continuous profiling.

15) Nümunələr: tez baza tətbiq

(a) API üçün RED ixracatçısı (psevdokod):
python from prometheus_client import Counter, Histogram, start_http_server reqs = Counter('http_requests_total','', ['route','method','status'])
lat = Histogram('http_request_duration_seconds','', ['route'])
def handle(req):
with lat. labels(route=req. route). time():
status = app(req)
reqs. labels(route=req. route,method=req. method,status=str(status)). inc()
(b) Log trace_id inteqrasiya (middleware fikir):
go tid:= ctx. Value("trace_id")
logger = logger. With("trace_id", tid)
logger. Info("deposit-accepted", "amount", amt, "route", route)
(c) Metriklərdə (exemplars) nümunələri:
prometheus http_request_duration_seconds_bucket{..., le="0. 25"} 1023 # exemplar: trace_id=9c5e...

16) Proseslər və əməliyyat

Metrik/etiketlərin vahid lüğəti (naming-guide) və dashboard şablonu.
Release-annotations qraflarda avtomatik.
Hadisələr: kart, time line, RCA ittihamsız, action items.
Təlim həyəcanları («game-day»): düşmə imitasiyası, PSP gecikmələri, cache həddindən artıq istiləşməsi.
Runbooks: addım-addım təlimatlar və avtomatik bağlantılar.

17) Yetkinlik yoxlama siyahısı

1. OTel SDK/kollektor → vahid ixrac metrik/log/treys.
2. RED/USE açar API ilə + SLI/SLO xidmətlərini əhatə edir.
3. 'trace _ id' korrelyasiyası ⇄ metrika ⇄ (exemplars, jump-links).
4. Multi-burn və Runabook-linkləri ilə səhv büdcə alertləri.
5. RUM + sintetik «depozit/bahis/çıxarış».
6. Ağ siyahıda profil (eBPF).
7. PII siyasətləri: maskalanma, zonalar, giriş, saxlama müddəti.
8. Telemetriya dəyəri üzrə maliyyə hesabatı (tags 'team/service').
9. «Pik yükə hazırlıq»: test planı, cache qızdırılması, alert şablonları.
10. Müntəzəm RCA və SLO/eşiklərin yenidən baxılması.

18) Antipattern

Struktursuz «çarşaf» və 'trace _ id' lər.
Hər metrika üzrə alertlər → alert-fetIq.
Düzgün baketsiz histoqramlar → «düz» p95.
Limitsiz etiket kardinallığı → dəyər partlayışı.
RUM/sintetikanın olmaması «hər şey qaydasındadır», lakin istifadəçi yoxdur.
PII-nin texniki loqlarla qarışdırılması, müddətsiz retensiya.
Telemetriyanın biznes KPI-dən təcrid edilməsi - «gecikmə düşür, gəlir də düşür».

Nəticələr

Güclü müşahidə məhsul, SRE, təhlükəsizlik və ödənişlər arasında ortaq bir dildir. OTEL-in altındakı metrləri, logləri, marşrutları birləşdirərək, SLO-nu səhv büdcəsi ilə daxil edərək, alertinqi ağıllı və xərcləri idarə edilə bilən hala gətirərək, əvvəllər problemlərin fərqinə varan, daha sürətli bərpa olunan və proqnozlaşdırıla bilən trafik zirvələrindən və turnir yüklərindən keçən bir sistem əldə edirsiniz.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.