Synlamak we telemetriýa
(Bölüm: Tehnologiýalar we infrastruktura)
Gysgaça gysgaça
Syn etmek "näme üçin beýle işleýär?" Diýip jogap bermek ukybydyr täze binalary çykarman. "iGaming" -de bu möhüm: iň ýokary ýaryşlar, töleg iň ýokary derejeleri, köp sebitlilik we jogapkär gambling/PII boýunça talaplar. Bazis - umumy kesgitleýjiler we standartlar (OpenTelemetry), SLO-şertnamalar, seslere çydamly alerting we baha gözegçiligi bilen birleşdirilen metrikler, loglar, yzarlamalar.
1) Gözegçilik ediliş çarçuwasy: ol näme
Metrikler: RED/USE, KPI, SLI. TSDB-de saklanylýar.
Loglar (tekstdäki wakalar/JSON): audit, ýalňyşlyklar, işewürlik faktlary, howpsuzlyk.
Yzarlamalar (spenler): hyzmatlaryň üsti bilen soramagyň ýoly, gizlinlik, gijikdirmegiň sebäpleri.
Profil: CPU/ýat/eBPF-akymlar, heap/lock-kontenşn.
RUM we sintetika: hakyky ulanyjylar (web/app) + robot barlaglary.
Telemetriýanyň katalogy: shemalar, PII syýasaty, saklanyş möhletleri, baha bellikleri.
2) Signallaryň taksonomiýasy we ýörelgeleri
RED для API: Rate, Errors, Duration.
Infrastruktura üçin USE: Utilization, Saturation, Errors (CPU, diskler, tor, nobatlar).
SLI/SLO: ölçenen görkezijiler (mysal üçin, üstünlikli soraglar/hemme zat, p95 latency), elýeterlilik maksatlary (mysal üçin, "99. 9% 30 gün"), ýalňyşlyklaryň býudjeti → prosesleriň triggeri.
Akylly ýokary-cardinality: bellikler (sebit/tenant/üpjün ediji) böleklerinde peýdaly bolmaly, ýöne TSDB-ni partlatmaly däldir.
3) Standartlar we ahyrky baglanyşyk
OpenTelemetry (OTel): Metrikler, bloglar we yzarlamalar üçin ýeke-täk SDK/protokol.
Identifikatorlary: 'trace _ id', 'span _ id', 'correlation _ id', 'player _ id' (lakamly), 'payment _ route'.
ID akymy: giriş şlýuzy → ähli mikroservisler → tölegler/PSP → nobatlar/joblar → girişler/metrikler/spenler.
Mysal: Baglanyşyk sözbaşylary
traceparent: 00-<trace_id>-<span_id>-01 x-request-id: <correlation_id>
4) Metrikler: nämäni we nädip ölçeýäris
At/bellikler
`service="payments-api"`, `env="prod"`, `region="eu-west"`, `tenant`, `provider="pspX"`.
Prometheus mysallary
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
Gistogrammalar we exemplars
Gizlinlik gistogrammalaryny (native-histograms/ β uckets) saklaň we "haýal baketden" belli bir trasa bökmek üçin exemplary 'trace _ id' bilen baglanyşdyryň.
5) Logi: gurluş we ygtybarly
Diňe JSON (prodda "free-form" ýok).
Поля: `timestamp`, `severity`, `service`, `trace_id`, `correlation_id`, `player_id_hash`, `event`, `amount`, `currency`, `ip_hash`.
PII gizlemek/kesmek, duýgur üçin aýratyn indeksler/retention.
Sahypalaryň paýlaýjylary: parsing → normalizasiýa → baýlaşdyrmak (geo/ASN) → redaktirlemek PII → indeksirlemek.
JSON wakasynyň mysaly
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) Ýollar: wagt ýitirilýän ýerde
Spenler: giriş soragy, üpjün edijileriň çagyryşlary (PSP/oýun üpjün edijileri), BD/nagt pul, hyzmatara RPC.
Atributlar: 'db. system`, `net. peer. name`, `messaging. system`, `psp. route`, `game. provider`.
- göwrümi üçin head-based,
- tail-based (şertlere görä: ýalňyşlyklar, p95 +, VIP-segment),
- töleg/PII-kritiki üçin guaranteed-keep.
7) Frontuň we mobaýlyň syn edilmegi
RUM: TTFB, FCP/LCP/CLS/INP, JS ýalňyşlyklary, torlar we SPA-routing.
Crash-reports: simwolizasiýa, deobfuskasiýa, bild wersiýasy, enjam/OS.
Sintetika: giriş/goýum/stawka ssenarileri; geo-paýlanan barlaglar.
8) SLO, SLI we ýalňyşlyklaryň býudjeti
SLO mysaly (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
"Her metrika" boýunça däl-de, ýalňyşlyklaryň býudjeti boýunça alerting.
Býudjet ýakylanda freeze-proseduralar: goýberilişleri/kanareýany çäklendirmek.
9) Sessiz alerting
Multi-window, multi-burn düzgünleri: gysga/uzyn penjire.
De-duplikasiýa/ruting: hyzmatlara/sebitlere/on-call-daky kritiklige görä.
Runbook URL we kontekstiň awto-ýygnalmagy (soňky deploes, konfigurasiýa üýtgemeleri, garaşlylyk grafikasy).
Meýilleşdirilen iş wagtynda asuda sagatlar we basyş.
Düzgüniň mysaly (PromQL pikiri)
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) Profiling we eBPF
eBPF/profiller: CPU/alloc flame-grafalary, I/O-gizlinlik, tor damjalary, Syscall-anomaliýalary.
Dar ýerlerde p99, "jitter" we seýrek asylmak üçin peýdalydyr.
11) Işewürlige gözegçilik etmek (product & risk)
Maliýe/monetizasiýa: goýumlaryň konwersiýasy, TTW (time-to-wallet), awtoriz ./settl, ýatyryşlar/çarjbekler.
Oýun işjeňligi: retenşn/strik, live-stawkalaryň paýy, üpjün edijileriň "ýelmeşmegi".
Antifrod/gabaw: hereketleriň tizligi, enjamlaryň/IP gabat gelmegi, korrelýasiýa.
RG-görkezijiler: uzyn sessiýalar, "dogon", biftekleriň ösüşi.
Iş metrikleri tehnometrikler we relizler (annotation events) bilen baglanyşyklydyr.
12) Howpsuzlyk, PII we laýyklyk
Data-zones: dataset/log bellikleri ('pii = true', 'region = EU').
Indekslemezden öň gizlemek, kesgitleýjileri lakamlaşdyrmak.
audit üçin WORM-ammar; Blogyň roly.
Saklamak möhletleri: tehnloglar/audit/biznes üçin dürli.
Loglarda çig syrlary gadagan etmek; CI-de skan barlagy.
13) Gymmaty dolandyrmak (FinOps)
Kardinallyk çägi: seresap boluň 'user _ id', 'session _ id'.
Partiýa/retenşn: gyzgyn (7-14 gün), ýyly (30-90), sowuk (arhiw).
Sampling trass (tail-based) we downsampling metrik.
Billing 'team', 'service', 'tenant': "syn edilişini kim ýakýar".
14) Gurallar (salgylanma-stek)
Metrikler: Prometheus/Metrikler üçin leýk, Grafana daşbordlary.
Logy: Loki/ELK; ingestion düzgünleri, reduction/parsing.
Söwda: Tempo/Jaeger/OTel-kollektorlar; metrlerden exemplars-linkler.
Sintetika: Blackbox-eksport, brauzer robotlary.
Alerting: Alertmanager/chat-integrasiýa, on-call rotasiýa.
Profiling: eBPF/continuous profiling.
15) Mysallar: binýady çalt ornaşdyrmak
(a) API üçin RED eksport ediji (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) Logda trace_id goýmak (middleware-ideýa):
go tid:= ctx. Value("trace_id")
logger = logger. With("trace_id", tid)
logger. Info("deposit-accepted", "amount", amt, "route", route)
(c) Metriklerdäki nusgalar (exemplars):
prometheus http_request_duration_seconds_bucket{..., le="0. 25"} 1023 # exemplar: trace_id=9c5e...
16) Prosesler we amallar
Metrik/bellikleriň bitewi sözlügi (naming-guide) we dashbord şablony.
Release-annotations grafalarda awtomatiki usulda.
Wakalar: kartoçka, wagtlaýyn, RCA aýyplamasyz, action items.
Okuw duýduryşlary ("game-day"): ýykylmagyna, PSP gijikdirilmegine, kesiň aşa gyzmagyna öýkünmek.
Runbooks: ädimme-ädim görkezmeler we alertlerden awto baglanyşyklar.
17) Kämillik ýaşyna ýetmegiň çek-sanawy
1. OTel SDK/kollektor → metrikler/bloglar/söwdalaryň ýeke-täk eksporty.
2. RED/USE esasy API-ler boýunça ähli SLI/SLO hyzmatlaryny ýapýar.
3. 'trace _ id' arabaglanyşygy ⇄ metrika ⇄ (exemplars, jump-links).
4. Multi-burn we runabuk-baglanyşyklar bilen ýalňyşlyklaryň býudjeti boýunça alertler.
5. RUM + sintetika "depozit/stawka/çykarmak".
6. Ak sanawda profil (eBPF).
7. PII-syýasatlar: maskalanmak, zolaklar, elýeterlilik, saklanyş möhletleri.
8. Telemetriýanyň bahasy boýunça maliýe hasabaty (bellikler 'team/service').
9. "Iň ýokary ýüke taýynlyk": synag-meýilnama, keşleri gyzdyrmak, alert-şablonlar.
10. Yzygiderli RCA we SLO/bosagalara täzeden garamak.
18) Antipatternler
Gurluşsyz we 'trace _ id'.
Her metrika boýunça alertler → alert-fetIg.
Dogry baketsiz gistogrammalar → "tekiz" p95.
Bellikleriň çäksiz kardinallygy → bahanyň partlamasy.
RUM/sintetikanyň ýoklugy - "hemme zat gowy", ýöne ulanyjy ýok.
PII-iň tehnloglar bilen garyşmagy, möhletsiz retensiýa.
Telemetriýanyň KPI-den izolýasiýasy - "gizlinlik pese gaçýar, girdeji hem".
Netijeler
Güýçli gözegçilik önümiň, SRE-iň, howpsuzlygyň we tölegleriň arasyndaky umumy dildir. OTel-iň aşagyndaky metrikleri, ýazgylary, ýollary birleşdirip, SLO-ny ýalňyşlyklaryň býudjeti bilen girizip, alertingiň akylly we dolandyrylýan bahasyna öwrüp, ozal problemalary duýýan, has çalt dikeldýän we traffigiň iň ýokary derejelerinden we ýaryş ýüklerinden geçip bilýän ulgam alarsyňyz.