GH GambleHub

Сигналдар мен метриканы бөлу

(Бөлім: Экожүйе және Желі)

1) Мақсаты және саласы

Сигналдар мен метриктерді бөлу - бұл телеметрияны (оқиғалар, метриктер, логтер, трассировкалар, денсаулық мәртебелері) барлық мүдделі қатысушыларға: операторларға, контент провайдерлеріне, төлемдік/ҚҰС-сервистеріне, көпірлерге, желі тораптарына, SRE/BI/аффилиаттарына және командаларына жинаудың, қалыпқа келтірудің және жеткізудің келісілген тәсілі Compliance. Мақсаттары:
  • Телеметрияның бірыңғай тілі және деректер келісімшарттары.
  • Басқарылатын QoS арналары: сындарлы сигналдардың басымдығы.
  • Мөлдір SLI/SLO және болжамды алертинг.
  • Жекешелендiру, оқшаулау және бюджеттi үнемдеу Өлшемдер.

2) Сигналдардың таксономиясы

1. Бизнес-оқиғалар: онбординг, депозиттер/төлемдер, ойын оқиғалары, атрибуция.
2. Техникалық өлшемдер: latency/throughput/қате коды, кезек, CPU/RAM/IO пайдалану.
3. Логи: операциялар мен қателер туралы құрылымдалған жазбалар.
4. Трассировкалар: сұраулар/топиктер, hop-to-hop корреляциясы.
5. Денсаулық мәртебесі: synthetic probes, readiness/liveness, heartbeat түйіндері.
6. Тәуекел/комплаенс сигналдары: KYC/KYB/AML хит, санкциялық оқиғалар.

Әрбір сыныптың өзінің сындылық деңгейі және сақтау/жеткізу саясаты бар.

3) Бөлу архитектурасы (референс)

Edge-коллекторлар (SDK/агенттер) → Ingress (HTTP/OTLP/gRPC/QUIC) → Шина (Kafka/Pulsar) → Өңдеушілер (stream-jobs) → Сақтау орындары (TSDB метриктер үшін, объектілік/баған - үшін → Сөрелер/дашбордтар/алерта.
Көп теңгерімділік: кілттердегі namespace/tenant-id, жеке quota/limits/ACL.
QoS бойынша сегментация: сыни (P0), маңызды (P1), фондық (P2).
Egress: жазылушылар (Ops/BI/Third-party) топиктер мен materialized views жазылымдары арқылы.

4) Келісімшарттар мен схемалар (оқиғалар/метрика/трейстер)

4. 1 оқиғалар (оңайлатылған, YAML)

yaml event:
id: uuid kind: business    ops    risk ts: timestamp    # ISO8601 tenant: string    # org_id/namespace source: string    # service/peer-id trace_id: string type: string     # deposit. created    payout. failed    probe. ok...
attrs: object # semantic fields (no PII)
severity: info    warn    error    critical qos: P0    P1    P2

4. 2 өлшемдері (OpenMetrics/OTLP)

Тұрақты лейблдері бар Gauge/Counter/Histogram (шектелген түбегейлілік).
Идентификаторлар: 'metric _ name {service, region, tenant, version, route}'.
Кодтағы p99 орнына латенттілік/өлшемдерге арналған гистограммалар.

4. 3 Трейдерлер

Міндетті өрістер: 'trace _ id', 'span _ id', 'parent _ id', 'service', 'peer', 'route', 'qos'.
Домендер (consumer/producer) мен желілік хоптар (relay/bridge) арасындағы сілтемелер.

5) QoS және басымдылығы

P0 (критикалық): төлемдер/төлемдер SLI, көпірлер/тораптар мәртебесі, burn-rate SLO → қатаң жеткізу (acks, retries, теңсіздік), ең аз таймауттар.
P1 (маңызды): азық-түлік оқиғалар/негізгі өлшемдер → SLO шегінде кепілдендірілген жеткізу.
P2 (фон): егжей-тегжейлі логтар, баптау → best-effort, артық жүктеу кезінде шашуға болады.

Саясаткерлер: әр түрлі кезектер, продюсерлерге quota, backpressure, rate-limits, дедуп бойынша 'idempotency _ key'.

6) Метриканың түбегейлілігі және бюджеті

6-ереже: метрикаға 6 кілттен артық емес, белгіленген мағынадағы сөздіктер.
Түбегейлі ≤ 10k уақыт қатары/метрика/тенант.
Семплеу: трассалау үшін head-/tail-based; downsampling метрик 10s → 1m → 5m → 1h.
Quotas: тентантқа және QoS класына нүктелер/сек және байттар/сек лимиттері.
Сызбалар линтері: «жарылғыш» лейблдері бар метриктерді қабылдамайды (id, email, ip және т.б.).

7) Жинау және жеткізу: push vs pull

Push (OTLP/StatsD/HTTP): икемділік, мобильді/edge-клиенттер, P0 арналары.
Pull (Prometheus): ішкі инфрақұрылым, болжамды таргеттер.
Гибрид: exporters → gateway → TSDB; аймақтар үшін federated scrapes.
Көлік: QUIC/HTTP/2, компрессия, батчинг, TLS/mTLS, джиттермен ретра.

8) SLI/SLO және алертинг

8. 1 Негізгі SLI

Availability% эндпоинттер/шлюздер,

Критикалық бағыттар бойынша Latency p50/p95/p99,

Error-rate (5xx/timeout/abort),

Шина бойынша Delivery lag, Queue depth,

Freshness витриналар (ingest → serve кідірісі).

8. 2 SLO мысалдары

P0 pipelines: Availability ≥ 99. 95%, p99 latency ≤ 400 мс, Delivery lag p95 ≤ 2 с.
P1: Availability ≥ 99. 9%, Freshness p95 ≤ 3 мин.
P2: Freshness p95 ≤ 15 мин, no-page.

8. 3 Burn-rate алерта (мысал)

2 сағаттық терезе: 'error _ budget _ burn ≥ 2 ×' → пейдж.
6 сағаттық терезе: 'error _ budget _ burn ≥ 1 ×' → пейдж/эскалация.
'queue _ lag' және 'drop _ rate' P0.

9) Сақтау орындары мен ретенциялар

TSDB метрик: жоғары жиілікті - 7-14 күн; агрегаттар - 6-12 ай.
Оқиғалар/оқиғалар: ыстық сақтау орны 7-30 күн, суық (объектілік) 6-24 ай.
Трейдерлер: сэмплинг 1-10%; «баяу/қате» спандарды сақтау (tail-based).
PII және деректер субъектілерінің сұраулары үшін жою/редакциялау саясаты.

10) Жекелік, қауіпсіздік және оқшаулау

PII-минимизация: өрістерді токенизациялау/псевдонимизациялау, метрикадағы «шикі» сәйкестендіргіштерге тыйым салу.
mTLS/оқиға қолтаңбалары, продюсерлердің кілттерінің пиннингі.
Тақырыптарға арналған ACL/ABAC/сервистер/тенанттар, write/read үшін жеке кілттер.
Tenant sandboxing: логикалық/физикалық бөліну, лимиттер және rate-limit per tenant.
Audit trail: өзгертілмейтін қатынау/пішім өзгертулер журналы.

11) Өңдеу ағындары (stream jobs)

Enrich: қалыпқа келтіру, гео/нұсқа/трафик класы.
Aggregate: терезелер 10s/1m/5m, гистограммалар, квантильді нобайлар.
Detect: аномалиялар (EWMA/ESD), бөлу дрейфі, кезектердің жарылысы.
Route: витриналарға/алертерлерге/серіктестердің вебхоктарына фан-аут.
Guard: «қызыл түймешік» - көз/тақырып бойынша throttling/kill-switch.

12) Дашбордтар (референс-макеттер)

Ops Core (сағат/нақты-уақыт): p95 latency, error-rate, delivery lag, queue depth, success-rate ingest.
Pipelines Health: freshness per pipeline, drop-rate, backpressure, burn-rate SLO.
Tenant Usage: қатарлар/сек, байты/сек, түбегейлілік, top-labels.
Security/Compliance: mTLS мәртебесі, аяқталу кілті, қолжетімділік, PII редакциясы.
Business Lens: конверсия/төлемдер/техметрлердің жанында SLI көпірлері.

13) Конфигурация мысалдары

QoS кластары және лимиттер (YAML)

yaml telemetry:
qos:
P0:
topics: [payout. sli, bridge. finality, gateway. availability]
delivery: guaranteed retry:
attempts: 3 backoff_ms: [100, 400, 800]
max_queue_lag_ms: 2000
P1:
topics: [product. events, api. metrics]
delivery: at-least-once sampling: 1. 0
P2:
topics: [debug. logs, verbose. traces]
delivery: best-effort sampling: 0. 1 quotas:
tenant_default:
metrics_points_per_sec: 50_000 logs_mb_per_hour: 500 traces_spans_sampled_pct: 5

Метрик (саясат) лейблдері

yaml metrics_policy:
allowed_labels: [service, route, code, region, tenant, version]
forbidden_labels: [user_id, email, ip, session_id]
max_label_value_count: 1000

Burn-rate алерттері

yaml alerts:
- name: "p0_error_burn_2h"
expr: burn_rate_p0_2h > 2 action: [page_oncall, open_incident]
- name: "queue_lag_p0"
expr: queue_lag_ms_p95 > 2000 action: [page_oncall]

14) Деректер схемалары және сұрау салулар

Метриктер тіркелгісі (каталог)

sql
CREATE TABLE metric_catalog(
name TEXT PRIMARY KEY,
unit TEXT, description TEXT,
labels JSONB, owner TEXT, qos TEXT, sla JSONB
);

Кезектер мен артта қалу

sql
SELECT topic,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY lag_ms) AS lag_p95,
SUM(dropped) AS drops
FROM queue_metrics
WHERE ts >= now() - INTERVAL '24 hours'
GROUP BY topic;

Тентант бойынша түбегейлі

sql
SELECT tenant, metric_name, COUNT(DISTINCT series_id) AS series
FROM tsdb_series
WHERE day = current_date
GROUP BY tenant, metric_name
ORDER BY series DESC
LIMIT 50;

15) Процестер мен рөлдер

Telemetry Owner - схемалар/саясат/квоталар, түбегейлілікті бақылау.
SRE/Ops - SLO, тәуекелдер, оқиғалар, масштабтау.
Security/Compliance - кілттер, рұқсаттар, PII, аудиттер.
Product/BI - KPI, аналитика, A/B-метрика витриналары.
Tenants (серіктестер) - SDK дұрыс интеграциясы, келісімшарттарды сақтау.

16) Playbook оқиғалар

A. түбегейлі жарылысы

1. Продюсер/метриктің авто-блогы; 2) «нашар» лейблдерді кесіп тастаймыз; 3) ретро-агрегация; 4) пост-мортем және линтер-ережелер.

B. queue lag P0 өсуі

1. Басымдықты қосу; 2) партияларды/консьюмерлерді кеңейту; 3) P2 sampling уақытша төмендету; 4) тар орындарды талдау.

C. Freshness витриналарының құлауы

1. Резервтік коннекторға ауысу; 2) тозу режимін қосу («соңғы аяқталған»); 3) көздердің иелерін хабардар ету.

D. метрде PII ағуы

1. Ағынды дереу бұғаттау; 2) ыстық қабатта redaction; 3) DPO/Compliance хабарламасы; 4) таспаларды/SDK жаңарту.

E. Массалық 5хх/трассировка қателері

1. Пейдж, 2) сэмплинг tail-based ↑ қателер үшін; 3) критикалық маршрутты трейс-диагностикалау; 4) релизді/фича-жалауды қайтару.

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

1. Оқиғалар/метриктер/трейстер келісімшарттары және рұқсат етілетін лейблдер тізімі бекітілсін.
2. QoS-сыныптарын, топиктерді/кезектерді, quotas және бюджет метрикаларын құру.
3. ingest (push/pull), TLS/mTLS, ретра және іспеттілікті баптау.
4. Метрика/оқиға каталогтарын және схемалар линтерін қосу.
5. SLI/SLO, burn-rate алерты мен эскалациясын анықтау.
6. Ops/Pipelines/Tenant/Security дашбордтарын құру.
7. Телеметрия (жоғалту/джиттер/дәнекерлеу) chaos-тесттерін іске қосу.
8. Кардиналдылықты, ретенцияны және сақтау құнын үнемі тексеріп отыру.

18) Глоссарий

QoS - сапа сыныбы/жеткізу басымдығы.
Freshness - витринада деректердің пайда болуын кідірту.
Burn-rate - SLO-ға қатысты қателер бюджетін жұмсау жылдамдығы.
Cardinality - метрикалардың (лейбл-комбинацияларының) бірегей қатарларының саны.
Tail-based sampling - «баяу/қате» трассировкаларды таңдау.
Idempotency key - оқиғаның қайталануын қайталаудың кілті.

Қорытынды: сигналдар мен метриктерді бөлу - жай ғана «кестелерді жинау және көрсету» емес, келісім-шарттардың, QoS-арналар мен бюджеттердің тәртібі. Осы фреймворкқа сүйене отырып, экожүйе жарылысқа төзімді, деректерге жеке және операциялық және бизнес-контурдағы шешімдер үшін пайдалы болжамды бақылауға ие болады.

Contact

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

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

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

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

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

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