Мушоҳида ва телеметрия
(Қисм: Технология ва инфрасохтор)
Хулосаи мухтасар
Мушоҳида қобилияти посух додан ба "чаро ин чунин кор мекунад?" бидуни нашри биноҳои нав. Дар IGaming, ин хеле муҳим аст: мусобиқаҳои қуллаҳо, қуллаҳои пардохт, бисёрфарҳангӣ ва талаботи масъули қимор/PII. Асос - ченакҳо, гузоришҳо, пайҳо, ки аз ҷониби идентификаторҳо ва стандартҳои умумӣ муттаҳид карда шудаанд (Open-Telemetry), бо шартномаҳои SLO, ҳушдордиҳӣ ба садо ва назорати хароҷот.
1) Чаҳорчӯбаи мушоҳида: он аз чӣ иборат аст
Нишондиҳандаҳо (рақамҳо бо мурури замон): RED/USE, business KPI, SLI. Дар TSDB нигоҳ дошта мешавад.
Гузоришҳо (рӯйдодҳо дар матн/JSON): аудит, хатогиҳо, далелҳои корӣ, амният.
Нишонаҳо (фосилаҳо): роҳи дархостро тавассути хидматҳо, таъхирҳо, сабабҳои таъхир.
Профил: ҷараёнҳои CPU/хотира/eBPF, мундариҷа/қулф.
RUM ва синтетика: корбарони воқеӣ (веб/барнома) + санҷиши робот.
Каталоги телеметрия: схемаҳо, сиёсати PII, мӯҳлати нигоҳдорӣ, барчаспҳои хароҷот.
2) Таксономия ва принсипҳои сигнал
RED dlya API: Нарх, хатогиҳо, давомнокӣ.
ИСТИФОДА барои инфрасохтор: Истифода, қаноатмандӣ, хатогиҳо (CPU, дискҳо, шабака, навбатҳо).
SLI/SLO: нишондиҳандаҳои ченшаванда (масалан, дархостҳои бомуваффақият/ҳама, таъхири p95), ҳадафҳои дастрасӣ (масалан, "99. 9% дар 30 рӯз"), триггерҳои буҷаи хатогӣ
Кардинализатсияи баланд оқилона аст: тамғакоғазҳо бояд дар буридан (минтақа/иҷорагир/провайдер) муфид бошанд, аммо TSDB-ро таркиш накунанд.
3) Стандартҳо ва таносуби ниҳоӣ
Open-Telemetry (OTEl): як SDK/протоколи ягона барои ченакҳо, гузоришҳо ва пайҳо.
Идентификаторҳо: 'trace _ id', 'span _ id', 'correlation _ id', 'player _ id' (тахаллус), 'pay _ route'.
ID-и ҷараён: воридкунии дарвоза → ҳамаи microservices → пардохт/PSP → навбатҳо/ҷойҳои корӣ → гузоришҳо/ченакҳо/фосилаҳо.
Мисол: Сарлавҳаҳои коррелятсия
traceparent: 00-<trace_id>-<span_id>-01 x-request-id: <correlation_id>
4) Нишондиҳандаҳо: чӣ ва чӣ гуна мо чен мекунем
Номгузорӣ/Тамғакоғазҳо
'service = "payments-api"', 'env = "prod"', 'region = "eu-west"', 'иҷорагир', 'провайдер = "psp
Намунаҳои Прометей
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
Гистограмма ва намунаҳо
Гистограммаҳои таъхирнопазирро (модарӣ-гистограмма/ β uckets) нигоҳ доред ва намунаҳоро бо 'trace _ id' пайваст кунед, то аз "сатили суст" ба роҳи муайян гузаред.
5) Гузоришҳо: сохторӣ ва бехатар
Танҳо JSON (нест "шакли озод" дар prod).
Поля: 'timestamp', 'вазнинӣ', 'хидмат', 'trace _ id', 'correlation _ id', 'player _ id _ hash', 'ҳодиса', 'маблағ', 'асъор', 'ip _ hash'.
PII ниқоб/хэш, индексатсияҳои алоҳида/нигоҳдорӣ барои ҳассос.
Лӯлаҳои лӯлаҳо: таҳлили → нормализатсия → ғанисозӣ (гео/ASN) → таҳрири PII → индексатсия.
Намунаи як чорабинии JSON
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) Нишонаҳо: дар куҷо вақт гум мешавад
Фосила: дархости вуруд, зангҳои провайдер (PSP/провайдерҳои бозӣ), пойгоҳи додаҳо/кэш, RPC-ҳои байнишаҳрӣ.
Атрибутҳо: 'db. система ',' холис. ҳамсолон. ном ',' паёмнависӣ. система ',' psp. масири ',' бозӣ. провайдер '.
- сарварӣ барои ҳаҷм,
- дум (аз рӯи шартҳо: хатогиҳо, p95 +, VIP-сегмент),
- кафолати нигоҳдории пардохт/PII-интиқодӣ.
7) Риояи пеши ва мобилӣ
RUM: TTFB, FCP/LCP/CLS/INP, хатогиҳои JS, шабакаҳо ва масири SPA.
Ҳисоботҳо дар бораи садама: символизм, деобфуссия, версияи сохтан, дастгоҳ/ОС.
Синтетика: сенарияҳои вуруд/пасандоз/меъёри; чекҳои геодезишуда.
8) SLO, SLI ва буҷаи хато
Намунаи SLO (Псевдо-ЯМЛ)
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
Огоҳӣ аз рӯи буҷаи хатогӣ, на аз рӯи "ҳар як ченак".
Тартиби сӯзондани буҷа: маҳдудиятҳои релизҳо/канарейкаҳо.
9) Ҳушдор бидуни садо
Қоидаҳои бисёр тиреза, бисёр сӯзондан: тирезаи кӯтоҳ/дароз.
Deduplication/rooting: аз рӯи хидмат/минтақа/танқид дар занг.
URL Runbook ва автоколлексияи контекст (диспетчерҳои охирин, тағиротҳои конфигуратсия, графикаи вобастагӣ).
Соатҳои ором ва фишор ҳангоми кори нақшавӣ.
Қоидаи намунавӣ (идеяи Prom
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) Профилактика ва электронии BPF
EBPF/профилҳо: Графҳои алангаи CPU/alloc, таъхири I/O, тарки шабака, аномалияҳои Syscall.
Барои зарфҳои p99, ҷиттер ва яхҳои нодир муфид аст.
11) Мушоҳидаи тиҷорат (маҳсулот ва хатар)
Молия/монетизатсия: табдили пасандоз, TTW (вақт ба ҳамён), муаллиф ./ҳал, бекоркунӣ/пардохт.
Фаъолияти бозӣ: нигоҳдорӣ/рахҳо, ҳиссаи гаравҳои зинда, "часпидан" -и провайдерҳо.
Антифрауд/сӯиистифода: суръати амал, мувофиқати дастгоҳ/IP, таносуб.
Нишондиҳандаҳои RG: ҷаласаҳои тӯлонӣ, "догон", афзоиши стейк.
Нишондиҳандаҳои корӣ бо ченакҳои техникӣ ва рӯйдодҳои эзоҳӣ алоқаманданд.
12) Бехатарӣ, PII ва риояи
Минтақаҳои маълумот: барчаспҳои маҷмӯӣ/журнал ('pii = ҳақиқӣ', 'минтақа = EU').
Ниқоб пеш аз индексатсия, бегона кардани идентификаторҳо.
Мағозаҳои WORM барои аудит; дастрасӣ ба сабти нақш.
Давраҳои нигоҳдорӣ: барои техноглогҳо/аудитҳо/корхонаҳо фарқ мекунанд.
Манъи сирри хом дар гузоришҳо; скан чекҳо дар CI.
13) Идоракунии арзиш (FIN Ops)
Маҳдудияти кардиналӣ: бодиққат бо 'user _ id', 'session _ id'.
Иштирок/нигоҳдорӣ: гарм (7-14 рӯз), гарм (30-90), хунук (бойгонӣ).
Ченакҳои интихобӣ ва пастсифат дар асоси дум.
Ҳисобкунӣ аз рӯи барчаспҳои 'гурӯҳ', 'хидмат', 'иҷорагир': гузориш медиҳад, ки "кӣ мушоҳидаҳоро сӯзондааст".
14) Воситаҳо (стек истинод)
Метрҳо: Прометей/кӯл барои ченакҳо, панели панели Графана.
Гузоришҳо: Loki/ELK; қоидаҳои воридшавӣ, коҳиш/таҳлил.
Роҳҳо: коллекторҳои Tempo/Jaeger/OT bel; намунаҳо-пайвандҳо аз ченакҳо.
Синтетика: Содиркунандаи Blackbox, роботҳои браузер.
Огоҳӣ: Ҳамгироии Alertmanager/чат, гардиши занг.
Профилактика: EBPF/профили доимӣ.
15) Намунаҳо: таҳкурсӣ зуд татбиқ кунед
(a) Содиркунандаи RED барои API (рамзи псевдо):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()
(б) Ҷобаҷогузории trace_id дар гузоришҳо (идеяи миёнаравӣ):
go tid:= ctx. Value("trace_id")
logger = logger. With("trace_id", tid)
logger. Info("deposit-accepted", "amount", amt, "route", route)
(c) Намунаҳо дар ченакҳо:
prometheus http_request_duration_seconds_bucket{..., le="0. 25"} 1023 # exemplar: trace_id=9c5e...
16) Равандҳо ва системаи амалиётӣ
Луғати ягонаи ченакҳо/тамғакоғазҳо (номгузорӣ-дастур) ва қолаби панел.
Нашри эзоҳҳо ба таври худкор дар сутунҳо.
Ҳодисаҳо: корт, ҷадвал, RCA ҳеҷ гуна пардохт, ашёи амал.
Ҳушдорҳои омӯзишӣ ("рӯзи бозӣ"): қатраҳои шабеҳ, таъхири PSP, аз ҳад зиёд гарм кардани кэш.
Китобҳои корӣ: дастурҳои зина ба зина ва истинодҳои худкор аз огоҳиҳо.
17) Рӯйхати санҷиши камолот
1. OTel SDK/коллектор → содироти ягонаи ченакҳо/гузоришҳо/роҳҳо.
2. RED/USE ҳамаи хидматҳоро + SLI/SLO-ро бо калиди API фаро мегирад.
3. Таносуби 'trace _ id' ⇄ ⇄ ченакҳо (намунаҳо, ҷаҳишҳо-пайвандҳо).
4. Огоҳӣ дар бораи хатогиҳои буҷа бо пайвандҳои бисёрқабата ва runabook.
5. RUM + синтетика барои "амонат/меъёри/бозхонд".
6. Профилизатсия (EBPF) дар фурӯши рӯйхати сафед.
7. Сиёсати PII: ниқоб, минтақаҳо, дастрасӣ, мӯҳлати нигоҳдорӣ.
8. Ҳисоботи молиявӣ дар бораи арзиши телеметрия (барчаспҳои 'гурӯҳ/хидмат').
9. "Омодагӣ ба сарбории баландтарин": нақшаи санҷиш, кэшҳои гарм, қолабҳои ҳушдор.
10. Нусхаҳои мунтазами RCA ва SLO/ҳадди ниҳоӣ.
18) Антипаттернҳо
Гузоришҳои "варақҳо" бе сохтор ва 'trace _ id'.
Огоҳиҳо барои ҳар як метрика → ҳушдор FAT.
Гистограмма бе сатилҳои дуруст → "ҳамвор" p95.
Кардиналии номаҳдуди тамғакоғазҳо → таркиши арзиш.
Набудани RUM/синтетика "ҳама хуб аст", аммо корбар чунин нест.
Омезиши PII бо технологҳо, нигоҳдории номуайян.
Ҷудокунии телеметрӣ аз тиҷорати KPI - "таъхир коҳиш меёбад, даромад низ".
Хулоса
Риояи қавӣ як забони маъмул байни маҳсулот, SRE, амният ва пардохтҳо мебошад. Бо пайваст кардани ченакҳо, гузоришҳо, роҳҳо барои OT-el, ҷорӣ кардани SLO бо буҷаи хатогиҳо, огоҳ кардани оқилона ва хароҷоти идорашаванда, шумо системаеро мегиред, ки мушкилотро қаблан пайхас мекунад, тезтар барқарор мешавад ва ба таври пешгӯишаванда қуллаҳои ҳаракат ва бори мусобиқаро мегузарад.