GH GambleHub

Воридшавӣ ва пайгирии рӯйдодҳо

Воридшавӣ ва пайгирии рӯйдодҳо

1) Мақсад ва чаҳорчӯба

Журналҳо ва роҳҳо асоси мушоҳида мебошанд.
Гузоришҳо ба "чӣ рӯй дод" ва "бо кадом контекст" посух медиҳанд.
Нишонаҳо ба "дар куҷо ва чаро оҳиста/хато" дар роҳи дархости тақсимшуда посух медиҳанд.

Принсипҳои асосӣ:
  • Сохтор бо нобаёнӣ (JSON); Пайгирӣ-аввал: ҳар як сабти роҳи гарм ба 'trace _ id '/' span _ id' вобаста аст.
  • Ҳадди аққали садо, ҳадди аксар сигнал: сатҳҳо, интихоб, анти-кардинализм.
  • Амният ва махфият: ниқоб, таҳрир, назорати дастрасӣ.
  • Диаграммаҳои боэътимоди гузоришҳо ва рӯйдодҳо.

2) Таксономияи рӯйдодҳо

Ҷараёнҳо ва индексатсияҳоро аз рӯи таъинот ҷудо кунед:

1. Гузоришҳои техникӣ (вақти корӣ, хатогиҳо, танаффуси шабака, бозсозӣ).

2. Чорабиниҳои корӣ (бақайдгирӣ, амонат, меъёри пардохт, марҳилаи KYC) - барои таҳлили маҳсулот ва ҳодисаҳо дар масирҳои "пул" мувофиқанд.

3. Аудит (кӣ/ҳангоми тағир додани он: конфигуратсияҳо, дастрасӣ, парчамҳо, маҳдудиятҳо) маҷаллаи тағйирнопазир аст.

4. Амният (аутентификатсия, густариши имтиёз, санксия/парчамҳои PEP).

5. Инфраструктура (K8s ҳодисаҳо, автоскалинг, HPA/VPA, гиреҳҳо/диск/шабака).

Барои ҳар як ҷараён - қоидаҳои алоҳида барои нигоҳдорӣ, индексатсия ва дастрасӣ.


3) Сабти сохторӣ (стандарти JSON)

json
{
"ts": "2025-11-03T14:28:15.123Z",
"level": "ERROR",
"service": "payments-api",
"env": "prod",
"region": "eu-central-1",
"trace_id": "8a4f0c2e9b1f42d7",
"span_id": "c7d1f3a4b8b6e912",
"parent_span_id": "a1b2c3d4e5f60789",
"logger": "withdraw.handler",
"event": "psp_decline",
"msg": "PSP declined transaction",
"http": { "method": "POST", "route": "/withdraw", "status": 502, "latency_ms": 842 },
"user": { "tenant_id": "t_9f2", "user_key": "hash_0a7c", "vip_tier": 3 },
"payment": { "psp": "acme", "amount": 120.50, "currency": "EUR", "idempotency_key": "u123:wd:7845" },
"safe": true,         // пройдена проверка на секреты
"version": "1.14.2",     // версия сервиса (SemVer)
"build": "sha-1f2a3b4",
"kubernetes": { "pod": "payments-7cbdf", "node": "ip-10-0-2-41" }
}

Талабот: нақшаи ҳамвор + замимаҳо аз рӯи домен, майдонҳои зарурӣ ('ts, сатр, хидмат, env, trace_id, msg'), арзишҳои ададӣ - рақамҳо, на сатрҳо.


4) Сатҳҳо, кардиналӣ ва миқёс

Сатҳҳо: 'DEBUG' (на дар фурӯш), 'INFO' (далелҳои корӣ), 'WARN' (аномалияҳо), 'Хато' (хатогиҳо), 'FATAL' (садамаҳо).
Кардинал: аз калидҳои ихтиёрӣ/тамғакоғазҳои динамикӣ худдорӣ кунед. Не "id-in-key".
Гузоришҳои интихоб: паёмҳои такрории суръат; фаъол кардани 'DEBUG' танҳо миқёс ва дар вақташ (парчами хос).
Idempotency: Log 'idempotency _ key' барои пешгирӣ кардани рӯйдодҳои такрорӣ аз ҷониби истеъмолкунандагон.


5) Махфият ва амният

Маска PII/асрори агентҳо (Fluent Bit/Vector): кортҳои ниқоби калидӣ ('почтаи электронӣ', 'корт', 'токен', 'авторизатсия').
Hash 'user _ key', танҳо контексти заруриро нигоҳ доред (кишвар, сатҳи KYC, VIP-сатҳ).
Анборҳои алоҳида: гарм (ҷустуҷӯи онлайн) ва хунук (бойгонӣ бидуни PII/бо контексти кашидашуда).
Аудит - танҳо замима, нигоҳдории WORM, дастрасӣ танҳо аз рӯи принсипи камтарин имтиёз.


6) Пайгирӣ: стандартҳо ва контекст

Контексти W3C Trace: сарлавҳаҳои 'traceparent '/' tracestate', инчунин бағоҷ барои калидҳои бехатар (масалан. 'иҷорагир _ ид', 'минтақа').
Нишондиҳандаҳо ва пайҳои пайванд: Намунаҳо - 'пайгирӣ _ id' -ро ба нуқтаҳои интихобшудаи гистограмма мегузаранд (RCA-ро суръат мебахшад).
Интихоб: интихоби асосии 1-5% + динамикӣ "дар хатогӣ/суст p95" то 100% барои дархостҳои мушкилот.
Истинодҳо: Барои навбатҳои асинхронӣ/сагҳо, пайванд тавассути "пайвандҳо" мегузарад, на танҳо "волидайн".


7) Ҷамъоварӣ ва масир

Агент: Бит/Вектори озод барои гузоришҳо; Содироти OTLP ба коллектори Open-Telemetry.
Коллектор: дарвозаи марказӣ (партия/трансформ/филтр/масир).

Конвейери тавсияшуда:

App → (OTLP logs/traces/metrics) → OTel Collector
→ logs: redact → route(security    audit    tech    biz) → hot index / cold archive
→ traces: tail_sampling(errors    p95>threshold) → APM backend
→ metrics: Prometheus exporter (for SLO/alerts)
Коллективи ОТ (порча):
yaml processors:
batch: {}
attributes:
actions:
- key: env value: prod action: insert filter/logs:
logs:
include:
match_type: strict resource_attributes:
- key: service.name value: payments-api exporters:
otlp/traces: { endpoint: "apm:4317", tls: { insecure: true } }
loki: { endpoint: "http://loki:3100/loki/api/v1/push" }
prometheus: {}
service:
pipelines:
logs: { receivers: [otlp], processors: [attributes,batch], exporters: [loki] }
traces: { receivers: [otlp], processors: [batch], exporters: [otlp/traces] }
metrics: { receivers: [otlp], processors: [batch], exporters: [prometheus] }

8) Асбобҳо: намунаҳои SDK

8. 1 гиреҳ. js (Пино + ОТ бел)

js import pino from "pino";
import { context, trace } from "@opentelemetry/api";

const logger = pino({ level: process.env.LOG_LEVEL          "info" });

function log(info) {
const span = trace.getSpan(context.active());
const base = span? { trace_id: span.spanContext().traceId, span_id: span.spanContext().spanId }: {};
logger.info({...base,...info });
}

// пример log({ event: "deposit.created", amount: 50, currency: "EUR", user: { user_key: "hash_0a7c" } });

8. 2 Java (SLF4J + OT bel)

java
MDC.put("trace_id", Span.current().getSpanContext().getTraceId());
MDC.put("span_id", Span.current().getSpanContext().getSpanId());
log.info("psp_response status={} latency_ms={}", status, latency);

8. 3 Python (структлог + OT bel)

python import structlog from opentelemetry import trace log = structlog.get_logger()

def log_json(event, kwargs):
span = trace.get_current_span()
ctx = {}
if span and span.get_span_context().is_valid:
ctx = {"trace_id": span.get_span_context().trace_id, "span_id": span.get_span_context().span_id}
log.msg(event=event, ctx, kwargs)

8. 4 пайгирии NGINX → сарлавҳа

nginx proxy_set_header traceparent $http_traceparent;
proxy_set_header tracestate $http_tracestate;

9) Гузоришҳо ҳамчун сигнал барои огоҳиҳо ва амалҳои худкор

Намунаҳои хато ('psp _ drest', 'қаллобӣ _ парчам') якҷоя ва бо SLO робита доранд.

Огоҳиҳо дар бораи меъёри намуна: "5xx by/бозхонд> 0. 5% ба 10м", "fraud_flag хӯшае> + 200% пойгоҳ"

Амалҳои худкор: агар журнал 'withdrawals _ manual _ mode = true' бошад, тавассути платформаи парчам гузаришро кушед.

Қоидаи намуна (ифодаи псевдо-ифода):

rate(count_over_time({service="payments-api", level="ERROR", event="psp_decline"}[5m])) > 5

10) Нигоҳдорӣ, индексатсия, нигоҳдорӣ

Гарм: 7-14 рӯз (тафтишоти амалиётӣ).
Гарм: 30-90 рӯз (тамоюлҳо, RCA).
Сард: 180-365 + (бойгонӣ, аудит) - фишурдасозӣ, синфҳои арзон, эҳтимолан бидуни ҷустуҷӯи пурраи матн.
Индексатсия: калидҳои собит ('хидмат, env, сатҳ, ҳодиса, trace_id, корбар. tenant_id'), манъи шохиси "ҳама чиз дар як саф".
Ҳудуди андозаи ҳодиса (масалан, ≤ 32КБ), trim/поёни: "иловагӣ дар нигаҳдорӣ душмани MTTR аст".


11) Аудит ва тағйирнопазирӣ

Рӯйдодҳои аудиториро дар ҷараёни алоҳида бо имзоҳо/hashes, вақти сервер, 'кӣ/чӣ/кай/чаро', пайванд ба чипта нависед.
"Кӣ парчами бонусро 100% дар DE дохил кард?" - ҷавоб бояд дар 1-2 дархост бошад.

Намунаи аудит:
json
{
"ts": "2025-11-03T14:00:00.000Z",
"actor": "alice@company",
"action": "feature_flag.update",
"target": "bonus.enable_vip",
"old": {"rollout": 10},
"new": {"rollout": 100},
"reason": "campaign_2311",
"ticket": "OPS-3481",
"trace_id": "cf12ab.."
}

12) Чорабиниҳои корӣ ва модели маълумот

Чорабиниҳои корӣ на "матн дар гузоришҳо", балки шартнома мебошанд:
  • 'event _ type', 'event _ id', 'happened _ at', 'актёр', 'мавзӯъ', 'миқдор', 'асъор', 'status', 'idempotency _ key'.
  • Бо истеъмолкунандагони idempotent Outbox ва "ҳадди аққал як бор" -ро истифода баред.

13) Кубернетҳо ва лӯлаҳои қубур

Агентҳои Sidecar/Daemonset бо буфер ба диск (ҳангоми қатъ шудани шабака).
Эзоҳҳои ҷойпӯшҳо барои масир ('журнал. навъи ',' нигоҳдорӣ. сатҳ ').
Гузоришҳои контроллерҳои K8s алоҳида ҷамъ кунед (индекси кластер).

Бити озод:
ini
[FILTER]
Name     modify
Match
Remove    authorization, password, card_number

14) Анти-намунаҳо

Гузоришҳои сатр "дар ҳолати зарурӣ", набудани 'trace _ id'.
PII/асрори гузоришҳо, партовгоҳҳои боркаш пурра.
Миллионҳо калидҳои беназир → индексатсияро "тарконданд".
DEBUG дар фурӯш 24/7.
Омезиши аудит, амният ва технологҳо ба як шохис.
Сиёсати нигоҳдорӣ ва санҷиши барқарорсозии нусхабардорӣ вуҷуд надорад.


15) Рӯйхати назорати амалисозӣ (0-45 рӯз)

0-10 рӯз

Даргиронидани контексти W3C дар дарвоза/мизоҷон, фиристодани сарлавҳаҳо.
Гузоришҳои барномаро ба JSON тарҷума кунед, 'trace _ id '/' span _ id' -ро илова кунед.
Рад кардани PII/асрҳо (ниқоб дар агент), рӯйхати майдонҳоро тасдиқ кунед.

11-25 рӯз

Ҷараёнҳои ҷудогона: tech/biz/audit/security/infra, нигоҳдорӣ ва ACL.
Фаъол кардани OTEel Collector, хатогиҳои интихоби дум/дархостҳои суст.
Панели панелҳои "Меъёри журнал/Хатогӣ дар масир" + Ҷаҳиш ба пайгирӣ (Намунаҳо).

26-45 рӯз

Огоҳии намунаи ҳодиса ва робита бо SLO.
Бойгонӣ/барқароркунӣ (санҷиши DR) барои гузоришҳои хунук.
Линтер диаграммаҳои журнал дар СИ, шартнома барои чорабиниҳои корӣ.


16) Нишондиҳандаҳои камолот

'Фарогирии Trace _ id' request ≥ 95%.
Ҳиссаи гузоришҳои JSON 99% -ро ташкил медиҳад.
Ҳодисаҳое, ки тавассути "ҷаҳидан ба пайгирӣ" пайдо шуданд, <15 дақиқа (саҳ.) Ҳал шуданд.
0 ҳолатҳои PII дар гузоришҳо (сканер ихроҷ).
Нигоҳдорӣ барои ҳама ҷараёнҳо мушоҳида карда мешавад (мо аудитро ба таври худкор исбот мекунем).


17) Барномаҳо: Снайперҳои хурд

Насли traceparent W3C (псевдо)

txt traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

PromQL - як хӯшаи гузоришҳо ва SLO (мисол)


high_error_logs = rate(log_events_total{service="payments-api",level="ERROR"}[5m])
5xx_rate = sum(rate(http_requests_total{service="payments-api",status=~"5.."}[5m])) / sum(rate(http_requests_total{service="payments-api"}[5m]))
alert if high_error_logs > 10 and 5xx_rate > 0.005

Кушодани API - сарлавҳаҳои коррелятсия

yaml components:
parameters:
Traceparent:
name: traceparent in: header required: false schema: { type: string }

18) Хулоса

Схемаи қавии воридшавӣ ва пайгирӣ ин созишнома + интизом аст: гузоришҳои сохтории JSON, як 'пайгирӣ _ ид', коркарди PII, масир ва нигоҳдории ҷараёнҳо, инчунин алоқаи наздик бо SLO, ҳушдор ва гардишҳо. Гузариш аз "партофтани матнҳо" ба шартномаҳо ва пайгирии ҳодисаҳо ва ташхиси ҳодисаҳои истеҳсолӣ зуд, пешгӯишаванда ва санҷидашаванда мегардад.

Contact

Тамос гиред

Барои саволҳо ё дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Оғози интегратсия

Email — муҳим аст. Telegram ё WhatsApp — ихтиёрӣ.

Номи шумо ихтиёрӣ
Email ихтиёрӣ
Мавзӯъ ихтиёрӣ
Паём ихтиёрӣ
Telegram ихтиёрӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиёрӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.